自從Facebook的創(chuàng)始人Adam D'Angelo開始效力于這個大量使用了PHP的網(wǎng)站,我就一直在想他要用Python而不是PHP來創(chuàng)造Quora所遇到的技術(shù)挑戰(zhàn)。
Adam D'Angelo,Quora創(chuàng)始人:
我們非常確定我們不會用PHP。Facebook因?yàn)闅v史遺留原因而使用PHP,并不是因?yàn)樗亲詈玫倪x擇。
從以往的經(jīng)驗(yàn)看來,編程語言的選擇是非常重要的,并且會付出非常昂貴的代價來改變它。
Python是一個Charlie和我都非常了解的語言(盡管我現(xiàn)在比剛開始的時候了解的更多了)。我們也簡單地考慮過C#、Java和Scala,Python最大的問題是運(yùn)行速度和缺少數(shù)據(jù)類型檢查。
C#似乎是很有前途,作為一個編程語言,它很偉大,但是:
我們不想在微軟架構(gòu)上,我們是為了學(xué)習(xí)新東西的,MS SQL 確實(shí)是非常不錯的,但是我們知道我們需要為.NET集成很多有二等支持的開源代碼,如果它支持的話。并且,現(xiàn)在大部分的工程師都習(xí)慣開源資源。
我們不會在Mono(C#/.NET的一個開源代碼的實(shí)現(xiàn))上冒險。還不清楚這個項(xiàng)目會用多長時間,并且我還聽說了不少已經(jīng)表現(xiàn)出來的問題??傊?,似乎一切在C#生態(tài)系統(tǒng)中的東西都表現(xiàn)出我們會在微軟架構(gòu)下。
‘另外兩個我們簡要考慮了的語言還有OCaml和Haskkell(沒有一個有足夠大的生態(tài)系統(tǒng)或足夠好的標(biāo)準(zhǔn)庫,可能對于需要寫代碼的設(shè)計(jì)師/數(shù)據(jù)分析師/非工程師來說太難了)。
我們決定,對于大多數(shù)我們要做的事情來說,Python已經(jīng)足夠快了(因?yàn)槲覀儽M可能的把我們的后端服務(wù)的關(guān)鍵代碼用C++來寫)。至于類型檢查,我們寫了完善的單元測試,它值得寫,并且實(shí)現(xiàn)了大部分相同的目標(biāo)。從它過去的5年發(fā)展來看,Python會繼續(xù)向著好的方向發(fā)展。
所以,我們對于這個選擇感到非常開心。雖然其中有一些小的分歧,但是之前使用其他語言的早期的員工非常高興的過渡到了Python,特別是之前使用PHP的。自從下面這些事情開始發(fā)生:
Python2.6是一個轉(zhuǎn)折點(diǎn),它有了足夠多的庫進(jìn)行兼容,我們很容易過渡到它
Tornado(web框架)被發(fā)布為開源,我們把實(shí)時更新網(wǎng)絡(luò)服務(wù)遷移到它上面
PyPy看起來最終是可用的,并且會給我們一個顯著的加速
總之,這些給了我們信心,讓我們相信這個語言和生態(tài)系統(tǒng)正向著好的方向發(fā)展。
Charlie Cheever,Quora的一個創(chuàng)建者
給Adam的答案補(bǔ)充幾件事情:
Python有一堆相當(dāng)好的提供了良好的調(diào)試器和重載的框架(Django,Pylons和其他一些),這些大部分都被很好的支持并且也變得越來越好。由于我們的主要工作是建設(shè)網(wǎng)站,這是很有吸引力的。
Python數(shù)據(jù)機(jī)構(gòu)很好的匹配JS數(shù)據(jù)結(jié)構(gòu),所以處理瀏覽器和服務(wù)器之間的數(shù)據(jù)非常直接和簡單。這真是太好了,因?yàn)镼uora中涉及到大量的客戶端和服務(wù)端之間的不加載頁面的交互。
Python代碼往往可讀性很強(qiáng),因?yàn)槲覀兿M茉诰W(wǎng)站上和一幫人工作,這變得非常重要。
有很多其他的Python寫的庫,所以很容易在我們的代碼中引入一些東西,比如:自定義郵件服務(wù)器、任務(wù)隊(duì)列,等等。
Ruby是另一個我認(rèn)為比較合理的選擇,因?yàn)樗蚉ython有很多相同的優(yōu)點(diǎn),但是Adam和我都對Python了解的更多一點(diǎn)。
-
編程語言
+關(guān)注
關(guān)注
10文章
1964瀏覽量
39559 -
開源
+關(guān)注
關(guān)注
3文章
4204瀏覽量
46130 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90025
原文標(biāo)題:為什么Quora選擇Python作為它的開發(fā)環(huán)境?
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
企業(yè)擁有3C認(rèn)證有什么好處呢?
應(yīng)用全自動點(diǎn)膠機(jī)會給企業(yè)帶來什么好處?
企業(yè)實(shí)施活動目錄的好處
Instagram遷移到Python 的原因和好處
高新技術(shù)企業(yè)有什么價值有啥好處_高新技術(shù)企業(yè)申請條件
用Python編寫模塊有何技巧?
筆記本使用固態(tài)硬盤的好處有哪些
選擇完整的交鑰匙PCB組裝對于企業(yè)來說有什么好處
物聯(lián)網(wǎng)對企業(yè)有什么好處
大數(shù)據(jù)分析平臺能為企業(yè)帶來哪些好處
python人工智能難嗎
華為云 Flexus X 實(shí)例下的場景體驗(yàn)——小企業(yè)使用 Python 語言——超迅速搭建簡單公網(wǎng) API 接口服務(wù)
對大企業(yè)來說,python有什么好處?
評論