今天講一段情史,是關於世界上最好的程式語言PHP和Facebook的感情經驗。
▲戀愛
#PHP能和Facebook談戀愛,主要歸功於創辦人祖克柏。
小札這個哈佛的學生,很不安分,鬼點子很多,很喜歡整一些速食式的Web專案。
而PHP的特點就是快速開發、快速上線,被小扎一眼相中,直接拋棄了Java,C#,Python,Perl,用它開發了很多小項目,隨便挑幾個大家看看:
課程配對(Course Match):
在這個網站上,可以選出他們想上的課程。也可以看到其他選擇了這門課的人,當然也可以透過輸入人名查看別人上了什麼課。
網站非常簡陋,就是純文本,但是讓小扎驚奇的是,很多人喜歡在上麵點來點去。
網站部署在他的個人筆記本中,網站很受歡迎,訪問量巨大,很快筆記本就癱瘓了。
Facemash:
電影《社群網戰》中描述了這一幕,小札約會失敗,回到公寓,一邊喝啤酒一邊寫程式碼。
他未經許可,入侵哈佛各學院的伺服器,從通訊錄上把照片「偷」下來,上傳到自己的網站上,兩個一組顯示,讓使用者去評比誰更Hot。
凌晨4點,Facemash在哈佛大學像病毒一樣迅猛傳播,流量之大,IT部門不得不給它斷網。
Facemash也引發了大量投訴,祖克柏被哈佛的管理委員會傳喚,差點兒因此被開除。
奧古斯都的羅馬
這是一門課,但是祖克柏忙於編程,根本沒上。
快到期末考時他傻眼了,考試要求奧古斯都統治時期的圖片和工藝品進行分析。
於是他決定用程式設計來解決問題,他把這門課網站上所有圖片都扒下來,傳到自己網站,讓其他同學一起學習,大家可以在上面記筆記,查看別人的筆記。
最後,小札這門課得了一個「優」。
▲結婚
這些小網站充分體現了小札的特點:想法很多,並且喜歡快速實現。
PHP雖然會產生髒程式碼,但這都不重要,關鍵是快速實現,它變成了小札的最佳工具。
透過Course Match,讓小札體認到人們有強烈的渴望去了解周遭的人。
透過Facemash,他知道了人們很喜歡看朋友和熟人的圖片,喜歡窺探別人的隱私。
透過《奧古斯都的羅馬》小札意識到:人們樂意分享免費的內容。
一切準備停當,只差一個引爆點。
這時候雙胞胎溫克萊沃斯兄弟出現了,讓他做一個叫做ConnectU的社交產品。
小札滿口答應,但卻不斷拖延,最後用PHP推出了自己的社群網站:Thefacebook。
Thefacebook一開始並沒有任何內容,它的內容需要使用者去填充。
在網站上使用者可以上傳自己的圖片,寫下自己的興趣與嗜好,選修的課程等等。
使用者之間可以透過Poke的方式做簡單的互動,更重要的是可以瀏覽其他人的內容,滿足了一個人的「窺探」慾望。
PHP和Facebook結婚了。
▲蜜月
《亮劍》中趙剛說:一個軍隊的氣質和性格是首任軍事長官決定的。這個觀點用到公司上也是適當的 。
小札給Facebook創造的風格就是打破常規,快速行動,完成比完美更重要。
外界看Facebook的團隊,常常覺得他們就是駭客,一群人在一起不斷嘗試,瘋狂迭代,這種風格和PHP實在太搭配了。
在PHP的幫助下,快速迭代的Facebook迅速衝出哈佛,進入美國所有大學。
然後衝出美國,走向全世界。
2012年,Facebook的用戶數已經達到驚人的10億。
這裡必須提一下,Facebook當然也想進入中國,只是沒有成功,小扎也從「對華友好」的人設,迅速成為反華急先鋒,公然抹黑中國,還試圖用地緣政治手段「殺死」競爭對手TikTok,真是聞所未聞,此處暫時不表,下次再說。
▲分手
Facebook一旦變得財大氣粗,就開始嫌棄PHP了。
他常諷刺PHP「動態一時爽,重建火葬場」。
還拿著各種圖片對PHP的表現進行百般羞辱。
說什麼使用者體驗差,需要更多的伺服器(也意味著需要花更多的錢在PHP身上),等等。
還威脅PHP說要重寫!
面對指責和威脅,PHP都是一笑而過,因為它知道,Facebook規模龐大,內容複雜,再加上配套的生態系統,想要重寫整個系統,怎麼可能嘛!
Facebook沒辦法,又沒辦法休掉PHP,只能想辦法去改進PHP的執行引擎Zend,但也沒有得到想要的效能提升。
2010年,Facebook痛定思痛,終於放了一個大招:HipHop,它可以把PHP程式碼轉換成高度優化的C 程式碼,編譯後以本地程式碼來執行。
經過轉換後,執行效率提升了6倍之多,相當了不起的成就。
但是,HipHop想在性能上更近一步很難了,它也無法完整支援PHP的特性,如create_function() 和eval(),在編譯和部署上也難以滿足Facebook快速行動的要求。
2011年,Facebook乾脆搞了一個PHP的虛擬機HipHop VM(HHVM),HHVM能把PHP轉成字節碼,然後在運行時動態編譯成機器碼執行,這和JVM就很像了。
與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影片教學》
以上是曝一段十多年前的「情史」:PHP和Facebook的感情經歷的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP中使用clone關鍵字創建對象副本,並通過\_\_clone魔法方法定制克隆行為。 1.使用clone關鍵字進行淺拷貝,克隆對象的屬性但不克隆對象屬性內的對象。 2.通過\_\_clone方法可以深拷貝嵌套對象,避免淺拷貝問題。 3.注意避免克隆中的循環引用和性能問題,優化克隆操作以提高效率。

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版