世界上最好的編程語(yǔ)言PHP和Facebook的感情經(jīng)歷
今天講一段情史,是關(guān)于世界上最好的編程語(yǔ)言PHP和Facebook的感情經(jīng)歷。
戀愛
PHP能和Facebook談戀愛,主要?dú)w功于創(chuàng)始人扎克伯格。
小扎這個(gè)哈佛的學(xué)生,很不安分,鬼點(diǎn)子很多,很喜歡整一些快餐式的Web項(xiàng)目。
而PHP的特點(diǎn)就是快速開發(fā)、快速上線,被小扎一眼相中,直接拋棄了Java,C#,Python,Perl,用它開發(fā)了好多小項(xiàng)目,隨便挑幾個(gè)大家看看:
課程配對(duì)(Course Match):
在這個(gè)網(wǎng)站上,可以選出他們想上的課程。也可以看到其他選擇了這門課程的人,當(dāng)然也可以通過(guò)輸入人名查看別人上了什么課。
網(wǎng)站非常簡(jiǎn)陋,就是純文本,但是讓小扎驚奇的是,很多人喜歡在上面點(diǎn)來(lái)點(diǎn)去。
網(wǎng)站部署在他的個(gè)人筆記本中,網(wǎng)站很受歡迎,訪問量巨大,很快筆記本就癱瘓了。
Facemash:
電影《社交網(wǎng)絡(luò)》中描述了這一幕,小扎約會(huì)失敗,回到公寓,一邊喝啤酒一邊寫代碼。
他未經(jīng)許可,入侵哈佛各個(gè)學(xué)院的服務(wù)器,從通訊錄上把照片“偷”下來(lái),上傳到自己的網(wǎng)站上,兩個(gè)一組顯示,讓用戶去評(píng)比誰(shuí)更Hot。
凌晨4點(diǎn),F(xiàn)acemash在哈佛大學(xué)像病毒一樣迅猛傳播,流量之大,IT部門不得不給它斷網(wǎng)。
Facemash也引發(fā)了大量投訴,扎克伯格被哈佛的管理委員會(huì)傳喚,差點(diǎn)兒因此被開除。
奧古斯都的羅馬
這是一門課,但是扎克伯格忙于編程,根本沒上。
快到期末考試時(shí)他傻眼了,考試要求奧古斯都統(tǒng)治時(shí)期的圖片和工藝品進(jìn)行分析。
于是他決定用編程來(lái)解決問題,他把這門課網(wǎng)站上所有圖片都扒下來(lái),傳到自己網(wǎng)站,讓其他同學(xué)一起學(xué)習(xí),大家可以在上面記筆記,查看別人的筆記。
最后,小扎這門課得了一個(gè)“優(yōu)”。
結(jié)婚
這些小網(wǎng)站充分體現(xiàn)了小扎的特點(diǎn):想法很多,并且喜歡快速實(shí)現(xiàn)。
PHP雖然會(huì)產(chǎn)生臟代碼,但這都不重要,關(guān)鍵是快速實(shí)現(xiàn),它成了小扎的最佳工具。
通過(guò)Course Match,讓小扎認(rèn)識(shí)到人們有強(qiáng)烈的渴望去了解周圍的人。
通過(guò)Facemash,他知道了人們很喜歡看朋友和熟人的圖片,喜歡窺探別人的隱私。
通過(guò)《奧古斯都的羅馬》小扎意識(shí)到:人們樂意共享免費(fèi)的內(nèi)容。
一切準(zhǔn)備停當(dāng),只差一個(gè)引爆點(diǎn)。
這時(shí)候雙胞胎溫克萊沃斯兄弟出現(xiàn)了,讓他做一個(gè)叫做ConnectU的社交產(chǎn)品。
小扎滿口答應(yīng),但是卻不斷拖延,最終用PHP推出了自己的社交網(wǎng)站:Thefacebook。
Thefacebook一開始并沒有任何內(nèi)容,它的內(nèi)容需要用戶去填充。
在網(wǎng)站上用戶可以上傳自己的圖片,寫下自己的興趣愛好,選修的課程等等。
用戶之間可以通過(guò)Poke的方式做簡(jiǎn)單的互動(dòng),更重要的是可以瀏覽其他人的內(nèi)容,滿足了一個(gè)人的“窺探”欲望。
PHP和Facebook結(jié)婚了。
蜜月
《亮劍》中趙剛說(shuō):一個(gè)軍隊(duì)的氣質(zhì)和性格是首任軍事長(zhǎng)官?zèng)Q定的。這個(gè)觀點(diǎn)用到公司上也是合適的 。
小扎給Facebook創(chuàng)建的風(fēng)格就是打破常規(guī),快速行動(dòng),完成比完美更重要。
外界看Facebook的團(tuán)隊(duì),經(jīng)常覺得他們就是黑客,一群人在一起不斷嘗試,瘋狂迭代,這種風(fēng)格和PHP實(shí)在太搭配了。
在PHP的幫助下,快速迭代的Facebook迅速?zèng)_出哈佛,進(jìn)入美國(guó)所有大學(xué)。
然后沖出美國(guó),走向全世界。
2012年,F(xiàn)acebook的用戶數(shù)量已經(jīng)達(dá)到驚人的10億。
這里必須提一下,F(xiàn)acebook當(dāng)然也想進(jìn)入中國(guó),只是沒有成功,小扎也從“對(duì)華友好”的人設(shè),迅速成為反華急先鋒,公然抹黑中國(guó),還試圖用地緣政治手段“殺死”競(jìng)爭(zhēng)對(duì)手TikTok,真是聞所未聞,此處暫時(shí)不表,下次再說(shuō)。
分手
Facebook一旦變得財(cái)大氣粗,就開始嫌棄PHP了。
他經(jīng)常諷刺PHP“動(dòng)態(tài)一時(shí)爽,重構(gòu)火葬場(chǎng)”。
還拿著各種圖片對(duì)PHP的性能進(jìn)行百般羞辱。
說(shuō)什么用戶體驗(yàn)差,需要更多的服務(wù)器(也就意味著需要花更多的錢在PHP身上),等等。
還威脅PHP說(shuō)要重寫!
面對(duì)指責(zé)和威脅,PHP都是一笑而過(guò),因?yàn)樗溃現(xiàn)acebook規(guī)模龐大,內(nèi)容復(fù)雜,再加上配套的生態(tài)系統(tǒng),想要重寫整個(gè)系統(tǒng),怎么可能嘛!
Facebook沒辦法,又沒法休掉PHP,只能想辦法去改進(jìn)PHP的執(zhí)行引擎Zend,但是也沒有得到想要的性能提升。
2010年,F(xiàn)acebook痛定思痛,終于放了一個(gè)大招:HipHop,它可以把PHP代碼轉(zhuǎn)換成高度優(yōu)化的C++代碼,編譯后以本地代碼來(lái)執(zhí)行。
經(jīng)過(guò)轉(zhuǎn)換后,執(zhí)行效率提升了6倍之多,相當(dāng)了不起的成就。
但是,HipHop想在性能上更近一步很難了,它也無(wú)法完整支持PHP的特性,如create_function() 和 eval(),在編譯和部署上也難以滿足Facebook快速行動(dòng)的要求。
2011年,F(xiàn)acebook干脆搞了一個(gè)PHP的虛擬機(jī)HipHop VM(HHVM),HHVM能把PHP轉(zhuǎn)成字節(jié)碼,然后在運(yùn)行時(shí)動(dòng)態(tài)編譯成機(jī)器碼執(zhí)行,這和JVM就很像了。
與HHVM一起到來(lái)的,還有一個(gè)新歡:Hack語(yǔ)言。
Hack相當(dāng)于PHP的一個(gè)方言,不過(guò)它允許程序員同時(shí)使用動(dòng)態(tài)類型和靜態(tài)類型。
這對(duì)于PHP是個(gè)超級(jí)打擊,PHP一哭二鬧三上吊,也沒什么作用,畢竟性能和類型安全對(duì)一個(gè)超大型系統(tǒng)是非常重要的。
Facebook的系統(tǒng)逐漸采用Hack這個(gè)新歡,PHP沒有辦法,只有黯然離開。
后續(xù)
不過(guò)PHP的娘家人表示不服,他們推出了PHP7,性能大幅提升,性能逼近了Facebook的HHVM,在這種情況下,程序員還是選擇PHP,畢竟這是開源社區(qū)的產(chǎn)品。
縱觀PHP和Facebook的這段情史,我們注意到:PHP對(duì)于2000年初的創(chuàng)業(yè)公司吸引力非常大,因?yàn)樗偸悄芸焖俚匕丫W(wǎng)站開發(fā)出來(lái)。
在這個(gè)時(shí)候PHP可以說(shuō)是魅力四射。
等到網(wǎng)站規(guī)模擴(kuò)大,用戶量增多,PHP的缺點(diǎn)就暴露無(wú)遺,會(huì)被人嫌棄。
嗯,剛收到PHP娘家人的抗議,他們說(shuō)這篇文章不客觀,從PHP7 開始,性能就大幅提升了,都逼近Facebook的HHVM+Hack了,更不用說(shuō)PHP8了.....
好吧,祝愿世界上最好的編程語(yǔ)言越來(lái)越好!