且說前一段時間聽淘寶的黃裳講解淘寶網站架構發展的時候,說起 2004 年底淘寶為何從 PHP 向 Java 轉移的事情。為何轉換,他闡述了幾個理由,其中一個是非常有趣的:當時的 PHP 缺少一個 IDE。而合適的 IDE 能夠有效提升規模化軟件開發的效率。
我們知道 eBay 在 2002 年的時候也在 Sun 技術團隊的幫助下,將整個應用架構從 C++ 遷移到 J2EE 。也就是 eBay 內部所說的 V3 版本(refer)。
最近一件有趣的事情是,據說騰訊的財付通在招聘 Java 方面的高手,"參與系統架構選型",要把底層架構從 C/C++ 遷移到 Java 架構上來。另外,百付寶的后臺技術據說也是基于 C++ 的(最開始的時候只是一兩個人寫核心代碼)。我相信,現在百付寶或許規模還比較小,總有一天,也要面臨向 Java 的遷移。這和阿姆達爾定律有點類似,要得到更大的計算能力,就要盡量減少整個系統中的非并行的環節。只是一兩個人能搞定的地方,再加入更多的開發人員也是無濟于事的,除非,改變協作的模式。
去年接觸到的一些國內的電子商務公司,有些已經在進行技術架構上的變遷,當然,多數是從 Windows 平臺遷移到 LAMP 平臺,究其原因,也無非是成本與效率,而后者,更為大家所看重。當然,也有一些頑固派,比如京東,仍然固守原來的手工作坊技術模式。
如果單兵作戰的話,很多程序高手會說,"用什么語言都是無所謂的"。但是如果是團隊協作開發的話,用什么語言,影響則是不一樣的。對于電子商務網站來說,語言的選擇意味著不同的架構路線、不同的開發框架、不同的測試框架、不同的部署流程,最后更為主要的是不同的開發效率,意味著可以把更多的開發資源并入到當前的環節中。
事實上,對于一個高速發展中的網站,每隔18 或 36 個月,幾乎總要有一次架構上變革的陣痛。沒有這種變革的勇氣,意味著以后也不會有人敢做這個嘗試。沒有這種陣痛,就不會有成長。
變化的節奏最后影響一切。編程語言的選擇并非無關緊要,短期看來似乎影響不大,從長期來看,決定最終的競爭結果。這就是我要說的。