爲什麼Quora選擇Python作爲它的開發環境?

为什么Quora选择Python作为它的开发环境?

自從Facebook的創始人Adam D'Angelo開始效力於這個大量使用了PHP的網站,我就一直在想他要用Python而不是PHP來創造Quora所遇到的技術挑戰。

Adam D'Angelo,Quora創始人:

我們非常確定我們不會用PHP。Facebook因為歷史遺留原因而使用PHP,並不是因為它是最好的選擇。

從以往的經驗看來,編程語言的選擇是非常重要的,並且會付出非常昂貴的代價來改變它。

Python是一個Charlie和我都非常瞭解的語言(儘管我現在比剛開始的時候瞭解的更多了)。我們也簡單地考慮過C#、Java和Scala,Python最大的問題是運行速度和缺少數據類型檢查。

C#似乎是很有前途,作為一個編程語言,它很偉大,但是:

  • 我們不想在微軟架構上,我們是為了學習新東西的,MS SQL 確實是非常不錯的,但是我們知道我們需要為.NET集成很多有二等支持的開源代碼,如果它支持的話。並且,現在大部分的工程師都習慣開源資源。

  • 我們不會在Mono(C#/.NET的一個開源代碼的實現)上冒險。還不清楚這個項目會用多長時間,並且我還聽說了不少已經表現出來的問題。總之,似乎一切在C#生態系統中的東西都表現出我們會在微軟架構下。

‘另外兩個我們簡要考慮了的語言還有OCaml和Haskkell(沒有一個有足夠大的生態系統或足夠好的標準庫,可能對於需要寫代碼的設計師/數據分析師/非工程師來說太難了)。

我們決定,對於大多數我們要做的事情來說,Python已經足夠快了(因為我們儘可能的把我們的後端服務的關鍵代碼用C++來寫)。至於類型檢查,我們寫了完善的單元測試,它值得寫,並且實現了大部分相同的目標。從它過去的5年發展來看,Python會繼續向著好的方向發展。

所以,我們對於這個選擇感到非常開心。雖然其中有一些小的分歧,但是之前使用其他語言的早期的員工非常高興的過渡到了Python,特別是之前使用PHP的。自從下面這些事情開始發生:

  • Python2.6是一個轉折點,它有了足夠多的庫進行兼容,我們很容易過渡到它

  • Tornado(web框架)被髮布為開源,我們把實時更新網絡服務遷移到它上面

  • PyPy看起來最終是可用的,並且會給我們一個顯著的加速

總之,這些給了我們信心,讓我們相信這個語言和生態系統正向著好的方向發展。

Charlie Cheever,Quora的一個創建者

給Adam的答案補充幾件事情:

  • Python有一堆相當好的提供了良好的調試器和重載的框架(Django,Pylons和其他一些),這些大部分都被很好的支持並且也變得越來越好。由於我們的主要工作是建設網站,這是很有吸引力的。

  • Python數據機構很好的匹配JS數據結構,所以處理瀏覽器和服務器之間的數據非常直接和簡單。這真是太好了,因為Quora中涉及到大量的客戶端和服務端之間的不加載頁面的交互。

  • Python代碼往往可讀性很強,因為我們希望能在網站上和一幫人工作,這變得非常重要。

  • 有很多其他的Python寫的庫,所以很容易在我們的代碼中引入一些東西,比如:自定義郵件服務器、任務隊列,等等。

Ruby是另一個我認為比較合理的選擇,因為它和Python有很多相同的優點,但是Adam和我都對Python瞭解的更多一點。

英文原文: https://www.quora.com/Why-did-Quora-choose-Python-for-its-development

譯者: cmsl


分享到:


相關文章: