曝一段十多年前的「情史」:PHP和Facebook的感情經歷

2022-09-20 14:01:14
今天講一段情史,是關於世界上最好的程式語言PHP和Facebook的感情經歷。

php零基礎到就業直播視訊課:進入學習
程式設計師必備介面測試偵錯工具:

▲戀愛


PHP能和Facebook談戀愛,主要歸功於創始人扎克伯格。

小扎這個哈佛的學生,很不安分,鬼點子很多,很喜歡整一些快餐式的Web專案。

而PHP的特點就是快速開發、快速上線,被小扎一眼相中,直接拋棄了Java,C#,Python,Perl,用它開發了好多小專案,隨便挑幾個大家看看:

課程配對(Course Match):

在這個網站上,可以選出他們想上的課程。也可以看到其他選擇了這門課程的人,當然也可以通過輸入人名檢視別人上了什麼課。

2.jpg

網站非常簡陋,就是純文字,但是讓小扎驚奇的是,很多人喜歡在上面點來點去。

網站部署在他的個人筆電中,網站很受歡迎,存取量巨大,很快筆電就癱瘓了。

Facemash:

電影《社群網路》中描述了這一幕,小扎約會失敗,回到公寓,一邊喝啤酒一邊寫程式碼。

他未經許可,入侵哈佛各個學院的伺服器,從通訊錄上把照片「偷」下來,上傳到自己的網站上,兩個一組顯示,讓使用者去評比誰更Hot。

凌晨4點,Facemash在哈佛大學像病毒一樣迅猛傳播,流量之大,IT部門不得不給它斷網。

Facemash也引發了大量投訴,扎克伯格被哈佛的管理委員會傳喚,差點兒因此被開除。

奧古斯都的羅馬

這是一門課,但是扎克伯格忙於程式設計,根本沒上。

快到期末考試時他傻眼了,考試要求奧古斯都統治時期的圖片和工藝品進行分析。

於是他決定用程式設計來解決問題,他把這門課網站上所有圖片都扒下來,傳到自己網站,讓其他同學一起學習,大家可以在上面記筆記,檢視別人的筆記。

最後,小扎這門課得了一個「優」。

▲結婚


這些小網站充分體現了小扎的特點:想法很多,並且喜歡快速實現。

PHP雖然會產生髒程式碼,但這都不重要,關鍵是快速實現,它成了小扎的最佳工具。

通過Course Match,讓小扎認識到人們有強烈的渴望去了解周圍的人。

通過Facemash,他知道了人們很喜歡看朋友和熟人的圖片,喜歡窺探別人的隱私。

通過《奧古斯都的羅馬》小扎意識到:人們樂意共用免費的內容。

一切準備停當,只差一個引爆點。

這時候雙胞胎溫克萊沃斯兄弟出現了,讓他做一個叫做ConnectU的社交產品。

小扎滿口答應,但是卻不斷拖延,最終用PHP推出了自己的社群網站:Thefacebook。

3.jpg

Thefacebook一開始並沒有任何內容,它的內容需要使用者去填充。

在網站上使用者可以上傳自己的圖片,寫下自己的興趣愛好,選修的課程等等。

使用者之間可以通過Poke的方式做簡單的互動,更重要的是可以瀏覽其他人的內容,滿足了一個人的「窺探」慾望。

PHP和Facebook結婚了。

▲蜜月


《亮劍》中趙剛說:一個軍隊的氣質和性格是首任軍事長官決定的。這個觀點用到公司上也是合適的 。

小扎給Facebook建立的風格就是打破常規,快速行動,完成比完美更重要。

外界看Facebook的團隊,經常覺得他們就是駭客,一群人在一起不斷嘗試,瘋狂迭代,這種風格和PHP實在太搭配了。

在PHP的幫助下,快速迭代的Facebook迅速衝出哈佛,進入美國所有大學。

然後衝出美國,走向全世界。

2012年,Facebook的使用者數量已經達到驚人的10億。

這裡必須提一下,Facebook當然也想進入中國,只是沒有成功,小扎也從「對華友好」的人設,迅速成為反華急先鋒,公然抹黑中國,還試圖用地緣政治手段「殺死」競爭對手TikTok,真是聞所未聞,此處暫時不表,下次再說。

▲分手


Facebook一旦變得財大氣粗,就開始嫌棄PHP了。

他經常諷刺PHP「動態一時爽,重構火葬場」。

還拿著各種圖片對PHP的效能進行百般羞辱。

4.jpg

說什麼使用者體驗差,需要更多的伺服器(也就意味著需要花更多的錢在PHP身上),等等。

還威脅PHP說要重寫!

面對指責和威脅,PHP都是一笑而過,因為它知道,Facebook規模龐大,內容複雜,再加上配套的生態系統,想要重寫整個系統,怎麼可能嘛!

Facebook沒辦法,又沒法休掉PHP,只能想辦法去改進PHP的執行引擎Zend,但是也沒有得到想要的效能提升。

2010年,Facebook痛定思痛,終於放了一個大招:HipHop,它可以把PHP程式碼轉換成高度優化的C++程式碼,編譯後以原生程式碼來執行。

5.jpg

經過轉換後,執行效率提升了6倍之多,相當了不起的成就。

但是,HipHop想在效能上更近一步很難了,它也無法完整支援PHP的特性,如create_function() 和 eval(),在編譯和部署上也難以滿足Facebook快速行動的要求。

2011年,Facebook乾脆搞了一個PHP的虛擬機器器HipHop VM(HHVM),HHVM能把PHP轉成位元組碼,然後在執行時動態編譯成機器碼執行,這和JVM就很像了。

6.jpg

與HHVM一起到來的,還有一個新歡:Hack語言

Hack相當於PHP的一個方言,不過它允許程式設計師同時使用動態型別和靜態型別。

這對於PHP是個超級打擊,PHP一哭二鬧三上吊,也沒什麼作用,畢竟效能和型別安全對一個超大型系統是非常重要的。

Facebook的系統逐漸採用Hack這個新歡,PHP沒有辦法,只有黯然離開。

▲後續


不過PHP的孃家人表示不服,他們推出了PHP7,效能大幅提升,效能逼近了Facebook的HHVM,在這種情況下,程式設計師還是選擇PHP,畢竟這是開源社群的產品。

縱觀PHP和Facebook的這段情史,我們注意到:PHP對於2000年初的創業公司吸引力非常大,因為它總是能快速地把網站開發出來。

在這個時候PHP可以說是魅力四射。

等到網站規模擴大,使用者量增多,PHP的缺點就暴露無遺,會被人嫌棄。

嗯,剛收到PHP孃家人的抗議,他們說這篇文章不客觀,從PHP7 開始,效能就大幅提升了,都逼近Facebook的HHVM+Hack了,更不用說PHP8了.....

好吧,祝願世界上最好的程式語言越來越好!

推薦學習:《》

以上就是曝一段十多年前的「情史」:PHP和Facebook的感情經歷的詳細內容,更多請關注TW511.COM其它相關文章!