Quora創始人談:我們為什麼使用Python


不經意間在Quora看到這樣一個問題:Why did Quora choose Python for its development?2名Quora的創始人給出了答案,我覺得很有參考價值,所以摘錄在此。

首先,Adam D”Angelo曾就職於Facebook,而這家公司是大量使用PHP的。但Adam D”Angelo幾乎對PHP沒有好感,說Facebook使用PHP是歷史遺留原因(我可能佐伯格最初只想用PHP快速搭建一個網站吧),它存在太多缺點(原文給出了不少文章,我就不列出了)。

其次是C#,這是一門很有前途的語言,但是選擇它就意味著加入了Microsoft的陣營(燒錢啊),而很多開源軟體對.NET只有第2級的支持(比如更新太慢,或者性能較差之類的),甚至根本不支持。另外,他們也不能冒使用Mono的風險(性能,更新,甚至可能會被Microsoft扼殺)。

而Java和Python比起來,代碼寫起來太冗長和痛苦,且很難於非Java的(感覺確切來說應該是非JVM的)東西交互。Scala也有Java和JVM的很多缺點,盡管它沒有Java那麼糟糕。而且它有點新,可能會存在一些不必要的風險。

他們還考慮過OCaml和Haskell,也有著足夠的生態體系和標準庫,但是對可能要寫一些代碼的設計師、分析師來說太難了。

Ruby也是個選擇,但他和Charlie Cheever都更懂Python一些

Python最大的缺點是速度和類型檢查。對他們而言Python已經足夠快,而對性能有關鍵影響的部分都用C++寫了;對於類型檢查,他們寫了足夠多的單元測試來保證。

既然除去了這2個缺點,他們就很樂意選擇Python了:

通過對過去5年的觀察,他們確信Python將繼續朝著對他們有利的方向發展。

有很多用Python寫的庫,可以很容易地與郵件服務器和任務隊列等通信。他們採用了Python 2.6,這足夠支持他們的庫了。

Python有太多好框架(Django、Pylons等),且大都在不斷進步。他們選擇了Tornado(沒給原因,但可能是對長連接的支持。)

PyPy可以帶來顯著的速度提升。

Python的數據結構和JavaScript(JSON)映射得很好,所以瀏覽器和服務器之間的通信很輕鬆,而Quora大量採用了這種無需載入頁面的交互(還是長連接)。

Python的代碼很易讀(還應該加上表達能力強)。他們需要和很多人一起工作,這顯得非常重要。

順帶一提,知乎可能也是因為這些理由選擇Python和Tornado的。Quora Infrastructure這個標籤可以知道很多技術內幕,真希望知乎也能增加一個;但國內的技術氛圍似乎不方便透露,畢竟得考慮山寨的問題。

原文:http://www.keakon.net/2011/09/04/Quora%E4%B8%BA%E4%BD%95%E4%BD%BF%E7%94%A8Python

閱讀原文


關於作者:
專業的python學習公眾號,有資源下載,真人指導,定期推送,各類活動。幫助pythoner快速提升自己的能力。