Quora創(chuàng)始人談:我們?yōu)槭裁词褂肞ython
不經(jīng)意間在Quora看到這樣一個問題:Why did Quora choose Python for its development?2名Quora的創(chuàng)始人給出了答案,我覺得很有參考價值,所以摘錄在此。
首先,Adam D'Angelo曾就職于Facebook,而這家公司是大量使用PHP的。但Adam D'Angelo幾乎對PHP沒有好感,說Facebook使用PHP是歷史遺留原因(我估計扎克伯格最初只想用PHP快速搭建一個網(wǎng)站吧),它存在太多缺點(原文給出了不少文章,我就不列出了)。
其次是C#,這是一門很有前途的語言,但是選擇它就意味著加入了Microsoft的陣營(燒錢啊),而很多開源軟件對.NET只有第2級的支持(比如更新太慢,或者性能較差之類的),甚至根本不支持。另外,他們也不能冒使用Mono的風(fēng)險(性能,更新,甚至可能會被Microsoft扼殺)。
而Java和Python比起來,代碼寫起來太冗長和痛苦,且很難于非Java的(感覺確切來說應(yīng)該是非JVM的)東西交互。Scala也有Java和JVM的很多缺點,盡管它沒有Java那么糟糕。而且它有點新,可能會存在一些不必要的風(fēng)險。
他們還考慮過OCaml和Haskell,也有著足夠的生態(tài)體系和標(biāo)準(zhǔn)庫,但是對可能要寫一些代碼的設(shè)計師、分析師來說太難了。
Ruby也是個選擇,但他和Charlie Cheever都更懂Python一些。
Python***的缺點是速度和類型檢查。對他們而言Python已經(jīng)足夠快,而對性能有關(guān)鍵影響的部分都用C++寫了;對于類型檢查,他們寫了足夠多的單元測試來保證。
既然除去了這2個缺點,他們就很樂意選擇Python了:
◆ 通過對過去5年的觀察,他們確信Python將繼續(xù)朝著對他們有利的方向發(fā)展。
◆ 有很多用Python寫的庫,可以很容易地與郵件服務(wù)器和任務(wù)隊列等通信。他們采用了Python 2.6,這足夠支持他們的庫了。
◆ Python有太多好框架(Django、Pylons等),且大都在不斷進(jìn)步。他們選擇了Tornado(沒給原因,但估計是對長連接的支持。)
◆ PyPy可以帶來顯著的速度提升。
◆ Python的數(shù)據(jù)結(jié)構(gòu)和JavaScript(JSON)映射得很好,所以瀏覽器和服務(wù)器之間的通信很輕松,而Quora大量采用了這種無需載入頁面的交互(還是長連接)。
◆ Python的代碼很易讀(還應(yīng)該加上表達(dá)能力強(qiáng))。他們需要和很多人一起工作,這顯得非常重要。
順帶一提,知乎可能也是因為這些理由選擇Python和Tornado的。Quora Infrastructure這個標(biāo)簽可以知道很多技術(shù)內(nèi)幕,真希望知乎也能增加一個;但國內(nèi)的技術(shù)氛圍似乎不方便透露,畢竟得考慮山寨的問題。
原文:http://www.keakon.net/2011/09/04/Quora%E4%B8%BA%E4%BD%95%E4%BD%BF%E7%94%A8Python
【編輯推薦】