回複內容:
因為PHP是指令碼語言,而Java是編譯型語言。
大型互連網系統核心問題是scale(擴充,尤其是水平擴充),scale不是一門語言解決的。所以我們會關注這些系統的架構。Facebook主要是一個內容型系統加上訊息型系統,它主要面臨的問題是資料存取和訊息傳遞,這些部分都和“前端(廣義)”無關。
因為核心的問題和“前端(廣義)”沒有直接關係,是一個獨立的問題。所以邏輯是:
- Founder使用什麼語言;Founder的關係網路裡使用哪種語言多。這兩個因素第一。
- 指令碼語言在測試和部署上面有更快速的周期,生態鏈更加簡單。
- Java的JDK雖然是火箭技術,不過它的授權從來就是問題,很大影響了整個技術桟的選擇。
這些因素考慮下來不用Java是理所應當的,使用其它指令碼語言是碰巧發生的一種可能。語言問題對facebook這種層級的公司,不能說不重要,但他們考量的標準肯定跟我們平常做個項目時不一樣。facebook有大量優秀的工程師,可以在語言層級改造php。並且,據說php對facebook來說就是膠水語言。
j2ee的優勢在於能讓大量低水平工程師協同開發出一個還能用的系統。其它語言沒在實際開發過項目,不好評論。
總的感覺是,facebook的水平導致了他們採用什麼語言都能完成開發目標,對於一般公司來說,做企業級開發用j2ee或者.net仍然是比較好的選擇。想敏捷的話,用php或python好一些。因為項目開始的時候作者擅長php,問問哪個項目不是這個原因,其他解釋說法都是自己意淫1. facebook 使用php
2. facebook 開發了HipHop,效能大大提高
3. 資料庫的分布式架構好,使用者登入驗證表就倆欄位,其他全部拆分出去了
4. 還有其他的 應該是用C/C++ 完成的
PHP本身就是為互連網開發而出現的語言,非常適合Web開發,且類庫非常豐富,開發效率非常高,且執行效率也非常不錯。
java本來是為嵌入式裝置設計的語言,開發Web還是略顯笨重,其實大多數的互連網公司都是用PHP的。這兩年Android開發又培養了不少做java開發的人。
相比較而言,java的可維護性要比PHP好,java代碼的可讀性也比PHP強,看到一堆的$符號實在有些暈啊。php架在前端 後端用了一些java和c++FB肯定不是PHP的,PHP最多算是個表皮