一個網站採用哪種開發語言的背後可能總有些很另類的原因。 其實用什麼語言只有技術人員比較關心,但也是個值得一說的話題。
回複內容:
這應該是曆史原因,任何巨頭都是從小長大的。
FaceBook 的 PHP 屬於粘結劑語言,並且轉成 C++ 執行。
並且正如 Facebook 工程師所言 架構,類庫 遠比用什麼語言重要。 1. PHP 是專門面向 HTTP Server Side 的語言
2. PHP 寫的不錯,文法解析器什麼的很精簡高效
3. PHP 開銷低,不像Java 每次必須弄個虛擬機器,非常適合HTTP.
4. 用的人多,開發人員好找 Flickr 的 Cal Henderson 這句話就能說明了: "Languages's don't Scale, Architecture Scale"
實際上選擇一門語言並沒有為什麼,再mark寫facebook的時候他最熟悉php,他能用php解決facebook所需要解決的一切問題,那麼就選擇它啊。
而且事實證明,php確實適合做webend開發。
當然更重要的是,在那個時代,geek們都是用php寫網站的。
至於編譯成c++什麼的,那是fb發展都後面效能要求越來越高才不得已發明出來的解決方案,跟選擇什麼語言沒有關係。
- 工程師好找
- 學習成本低
- 更靈活
FaceBook 的 PHP 其實主要用在前端表現層,應該不能簡單的說是主要開發語言。 我想FB最初並沒有多少選擇,選什麼語言取決於:1.創初人的技術背景2.可以快速高效搭建原型3.有後續技術跟進,例如:找PHP開發人員相對容易。當然FB走到一定規模,就算是想換也不是那麼容易了,更多的是妥協與折中吧。 FB之前確實是使用的HipHop 將 PHP 代碼在伺服器上被執行前轉化成 C++ 代碼,在網站原來的基礎上提升了 500% 至 600% 的流量處理,但這遠遠不夠,後來他們不再將 PHP 代碼轉變成 C++ 代碼,而是將它直接轉變為原生電腦代碼(伺服器晶片讀取的語言),而且在 PHP 代碼被執行時直接轉化。通過追蹤網站即時執行代碼的方式,他們可以用更好的方式將 PHP 代碼轉變成原生電腦代碼,最終提升網站的處理速度這是曆史遺留問題。Facebook是當年紮克伯格在大學時候用幾天寫出來的內部網站,肯定沒有考慮到幾十億人同時使用的問題。
在把PHP作為開發核心語言的問題上,Facebook吃盡了苦頭,PHP的架構問題已經不是Framework之類能夠解決的了。但是木已成舟,這麼龐大的系統,龐大的僱員,完全遷移到另外一種語言上已經不太可能。所以在Facebook做HipHop先行編譯的努力之後,又開始做HipHop JIT解析器的努力。這篇文章對於技術詳情介紹得很仔細 HHVM 是如何提升 PHP 效能的?
曆史原因! 曆史原因,他們後悔了。現在進去的都在用python呢 因為開源,LAMP是現在最流行的黃金搭配,因為php用起來簡單,不過越容易用的腳步就越耗記憶體,比如php,js這些遠沒有原生的C/C++啟動並執行快。facebook的php架構分了很多層,為了運行效率,他們也在php轉化為C這方面花了很多功夫。