為什么Quora選擇了Python語(yǔ)言?

來(lái)源: 編程派
作者:EarlGrey
時(shí)間:2021-03-10
16459
Quora是國(guó)外知名的問(wèn)答社區(qū),性質(zhì)與知乎類似。它的創(chuàng)始人Adam DAngelo曾是Facebook的員工,眾所周知,F(xiàn)acebook大量地使用了PHP,而Adam在開(kāi)發(fā)Quora時(shí),使用的卻是Python。

640.webp.jpg

Quora是國(guó)外知名的問(wèn)答社區(qū),性質(zhì)與知乎類似。它的創(chuàng)始人Adam D'Angelo曾是Facebook的員工,眾所周知,F(xiàn)acebook大量地使用了PHP,而Adam在開(kāi)發(fā)Quora時(shí),使用的卻是Python。這到底是為什么呢?有人在Quora上提出了這個(gè)問(wèn)題,而那個(gè)最佳答案自然就是來(lái)自Adam本人的了,對(duì)于那些猶豫要不要使用Python建站的開(kāi)發(fā)者應(yīng)該有一定的參考意義。

Adam在回答中很明確地表明了不希望使用PHP,提到Facebook由于歷史遺留原因而不得不使用PHP,并不是因?yàn)镻HP是目前最好的選擇。他從自己在Facebook供職的那段經(jīng)歷中,明白了一個(gè)道理:選擇哪個(gè)編程語(yǔ)言是非常重要的,變更的成本極其高昂。

640.webp (1).jpg

Adam和另外一名創(chuàng)始人當(dāng)時(shí)對(duì)Python語(yǔ)言都比較熟悉。但還是考察了C#、Java和Scala等其他語(yǔ)言。

C#

在Adam看來(lái),C#當(dāng)時(shí)是非常值得考慮的對(duì)象。作為編程語(yǔ)言來(lái)說(shuō),C#非常優(yōu)秀,但是選擇了C#,就意味著要被捆綁在微軟的技術(shù)棧上。而他們心里更傾向于嘗試新的技術(shù)方案。

另外,雖然微軟的SQL服務(wù)器也很好,但是考慮到他們要集成許多開(kāi)源代碼,而這些代碼對(duì)于.NET平臺(tái)的支持較差。而且,當(dāng)時(shí)大部分最有優(yōu)秀的工程師都已經(jīng)習(xí)慣于使用開(kāi)源的產(chǎn)品。

除此之外,他們還不愿意冒險(xiǎn)使用Mono(C#/.NET的開(kāi)源實(shí)現(xiàn)),因?yàn)椴恢肋@個(gè)項(xiàng)目能持續(xù)多長(zhǎng)時(shí)間,還存在一些性能問(wèn)題。

Java和Scala

由于許多原因,Java程序比相同功能的Python程序,代碼寫(xiě)起來(lái)更加冗長(zhǎng)、更加痛苦,而且很難與非Java的代碼進(jìn)行交互。另外,雖然Scala并沒(méi)有Java那么差,但是也有許多Java和JVM的缺點(diǎn)。Scala語(yǔ)言當(dāng)時(shí)也有點(diǎn)太新潮了,可能會(huì)帶來(lái)一些不必要的風(fēng)險(xiǎn),因?yàn)檎l(shuí)也不知道10年后對(duì)這個(gè)語(yǔ)言的支持會(huì)如何。

OCaml和Haskell

他們還考慮過(guò)OCaml和Haskell,但是二者都沒(méi)有足夠大的生態(tài)體系或是足夠優(yōu)秀的標(biāo)準(zhǔn)庫(kù),而且對(duì)可能要寫(xiě)一些代碼的設(shè)計(jì)師、分析師來(lái)說(shuō)太難了。

Python

Python最大的缺點(diǎn)是速度和類型檢查。經(jīng)過(guò)比較和分析,兩位創(chuàng)始人認(rèn)為Python對(duì)他們而言已經(jīng)足夠快,而對(duì)性能有關(guān)鍵影響的部分都用C++寫(xiě)了;對(duì)于類型檢查,他們最后編寫(xiě)了非常完善的單元測(cè)試,確保不會(huì)出現(xiàn)類型錯(cuò)誤。既然除去了這2個(gè)缺點(diǎn),他們就很樂(lè)意選擇Python了。另外,通過(guò)過(guò)去5年的觀察,他們確信Python將繼續(xù)朝著對(duì)他們有利的方向發(fā)展。

Adam在回答中指出,Quora的員工目前對(duì)選擇的這門(mén)編程語(yǔ)言還是十分滿意的。雖然當(dāng)初在選擇時(shí)有一些傾向性,但是公司的所有早期員工對(duì)于轉(zhuǎn)型到Python并沒(méi)有怨言,尤其是之前的PHP程序員。最后他還提到了當(dāng)時(shí)Python語(yǔ)言的幾個(gè)好的發(fā)展趨勢(shì)。

·Python 2.6發(fā)布后,Quora使用的大部分庫(kù)都對(duì)該版本兼容,因此很快就遷移到了新版本Python

·Tornado Web開(kāi)發(fā)框架正式開(kāi)源,Quora則將實(shí)時(shí)更新網(wǎng)絡(luò)服務(wù)遷移到了Tornado上

·PyPy發(fā)展迅速,最終應(yīng)該可以正式用于生產(chǎn),相信以后會(huì)大幅提高性能

回答的最后,Adam表示自己對(duì)Python語(yǔ)言和Python生態(tài)系統(tǒng)的未來(lái)充滿了信息。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于編程派,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家