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