十年前,由于編程語言種類匱乏,開發(fā)人員不必苦惱自己應(yīng)該選擇哪一種編程語言;但是現(xiàn)在,世界上正在使用的編程語言超過500種,隨著人們的不斷交流,還會有更多的語言出現(xiàn)。對于開發(fā)人員而言,基于項(xiàng)目的特點(diǎn)等因素確定應(yīng)該使用哪一種編程語言成為了首要任務(wù)。
Python是一種通用編程語言,可用于開發(fā)web應(yīng)用程序、人工智能、機(jī)器學(xué)習(xí)、操作系統(tǒng)、移動(dòng)應(yīng)用程序和視頻游戲。
具備多功能性的Python是復(fù)雜web開發(fā)項(xiàng)目的理想解決方案:通過使用Python,開發(fā)人員能夠用相對簡單和容易的方式開發(fā)高級web應(yīng)用程序。雖然HTML和JavaScript是構(gòu)建前端或web瀏覽器的主要語言,但是開發(fā)人員可以使用基于Python的web框架(如Django)來簡化后端流程。
本文將討論Google、instagram或Netflix等技術(shù)巨頭偏好使用Python開發(fā)關(guān)鍵基礎(chǔ)設(shè)施的原因。
谷歌(Google)
在合并了Search、安卓、Youtube、Stadia等公司后,谷歌已經(jīng)成為世界上比較大的科技公司之一。谷歌使用多種中央語言開發(fā)其技術(shù)棧,包括Python、Java和Golang。
由于Python的簡單性和相對快速的維護(hù),谷歌公司剛剛建立時(shí)就使用了Python,并且沿用至今:谷歌的搜索引擎、YouTube、機(jī)器學(xué)習(xí)、人工智能、機(jī)器人項(xiàng)目等都是用Python開發(fā)的。
盡管Google可能會在其基礎(chǔ)設(shè)施中使用各種編程語言,但是Python作為其開發(fā)的核心語言的優(yōu)先性地位卻不會被動(dòng)搖。
由于Python的易訪問性和實(shí)用性,instagram目前正在使用Python編寫的Django Web框架,這與他們“先做簡單的事情”的公司理念非常吻合。在過去兩年里,instagram的規(guī)模翻了一番,全球已有5億用戶,因此他們需要最大限度地提高平臺的有效性,以保持其無縫擴(kuò)展。
instagram承認(rèn)他們想過改用Facebook的主要語言之一——PHP。但經(jīng)過一番比較,他們承認(rèn),這兩者沒有顯著的差異。考慮到每一個(gè)新版本都會變得更快,instagram同意使用Python這一快速發(fā)展的語言。
必須指出的是,instagram的開發(fā)團(tuán)隊(duì)花了十個(gè)月完成遷移過程,并將其分為以下幾步:首先是修改代碼,將不支持Python3的包替換為支持它的組件,其次是單元測試,最后是產(chǎn)品的最終發(fā)布。
Facebook一直在使用Python,也因此,Python成為了社交媒體開發(fā)的第三大常用語言(前兩種語言分別是C++以及他們專有的PHP語言HACK)。得益于簡單易用的Python庫,開發(fā)人員不必編寫大量代碼,而這使他們能夠集中精力進(jìn)行實(shí)時(shí)改進(jìn)。此外,它還提供了高效的Facebook基礎(chǔ)設(shè)施。
據(jù)Facebook稱,其開發(fā)人員使用Python完成許多基礎(chǔ)設(shè)施管理服務(wù),其中包括使用TORconfig來處理網(wǎng)絡(luò)交換機(jī)的設(shè)置和映像,將FBOSS運(yùn)用于白盒交換器CLIs,以及使用Dapper來調(diào)度和執(zhí)行維護(hù)工作。
Facebook已經(jīng)啟動(dòng)了許多為Py3編寫的開源Python項(xiàng)目,其中包括Facebook Ads API和Python Async IRC botframework。
Spotify
另一家將Python應(yīng)用于后端服務(wù)和數(shù)據(jù)分析的優(yōu)秀公司是Spotify。此外,Spotify還通過自行開發(fā)的消息傳遞協(xié)議將不同的服務(wù)連接起來。因此,其八成服務(wù)是基于Python的,而其余兩成主要基于java,以及C語言或C++語言。
Spotify公司的首要任務(wù)是快速發(fā)展和增長,而這就是Spotify使用Python創(chuàng)建流媒體服務(wù)的原因——它基本上滿足了Spotify對于開發(fā)速度的需求。
Gevent是一個(gè)能夠高性能地同步應(yīng)用程序接口的快速事件工具,而Spotify的新架構(gòu)更新都是使用它完成的。Spotify使用與Hadoop同步的Python模塊Luigi形成海量數(shù)據(jù),以便為用戶提供建議。
該開源項(xiàng)目管理著數(shù)據(jù)庫協(xié)同工作、編譯錯(cuò)誤日志的方式,以便支持軟件的重新發(fā)布和故障排除。Spotify通過Hadoop集群節(jié)點(diǎn)同時(shí)運(yùn)行了6000多個(gè)Python進(jìn)程。
Quora
Quora再三斟酌他們最終想要使用的語言。其創(chuàng)始人之一Charlie Cheever將選擇范圍縮小到Python、C#、Java和Scala。他們對Python的主要擔(dān)憂是類型檢查的缺失和相對緩慢的檢查速度。最終,Quora的創(chuàng)建者延續(xù)了谷歌使用Python的決定,這使它更加易于編寫和讀取,并提升了C++對性能的增強(qiáng)。
許多如Django和Pylons般相當(dāng)優(yōu)秀的框架也是Quora公司考慮使用Python的一個(gè)重要因素。此外,Quora的開發(fā)團(tuán)隊(duì)還考慮到了Quora主要涉及客戶機(jī)/服務(wù)器交互、不需要真正的頁面加載,所以這對于Python和JS之間的良好協(xié)作是一大優(yōu)勢。
Amazon
Amazon是另一個(gè)使用Python語言的優(yōu)秀公司。值得一提的是,在公司提出的眾多技術(shù)解決方案中,亞馬遜圍繞建議(即推薦交易)開發(fā)了一些功能:例如,Amazon分析顧客的購物習(xí)慣和使用模式,并為他們提供準(zhǔn)確的建議。這是通過Python學(xué)習(xí)引擎實(shí)現(xiàn)的,Python學(xué)習(xí)引擎與Hadoop數(shù)據(jù)庫連接,因此,它們并行處理工作,以便盡可能高效和準(zhǔn)確地提出建議。
Amazon團(tuán)隊(duì)之所以選擇Python,首先是因?yàn)樗钠占俺潭群退軌蛱峁┑暮A看髷?shù)據(jù)。其次,Python具有可擴(kuò)展性和便攜性,為Amazon提供了獨(dú)特的商業(yè)計(jì)劃。此外,Python實(shí)際上經(jīng)常與其他技術(shù)(如Hadoop或Apache)配合使用。
Netflix
Netflix使用Python的方式與Spotify非常相似。Netflix的軟件工程師能夠自由選擇編程語言,而這些工程師已經(jīng)看到了使用Python編寫應(yīng)用程序的前景。此外,由于Python非常容易構(gòu)建,它已經(jīng)成為Netflix其他服務(wù)的重要組成部分。
Central AlertGateway是使用Python的重要部分之一。這個(gè)RESTful式的網(wǎng)絡(luò)應(yīng)用向可能想要查看它們的個(gè)人和團(tuán)隊(duì)發(fā)出警報(bào)。此外,該應(yīng)用程序還可以刪除已處理的重復(fù)警報(bào),以及提供自動(dòng)解決方案,如重新啟動(dòng)或結(jié)束不穩(wěn)定的任務(wù)。由于警報(bào)的數(shù)量很多,這個(gè)應(yīng)用程序的編寫對Netflix來說是巨大的勝利——智能化的處理可確保開發(fā)人員和工程師不會因?yàn)槿哂嗪艚卸诡^爛額。
Stripe
眾所周知,Stripe是一家研究公司的在線支付可行性的金融科技初創(chuàng)公司。Stripe使用Python為移動(dòng)應(yīng)用和網(wǎng)站設(shè)計(jì)應(yīng)用程序接口,得益于此,Stripe管理在線業(yè)務(wù)(例如開發(fā)票、管理訂閱、預(yù)防欺詐)輕而易舉。
業(yè)內(nèi)的很多優(yōu)秀公司(如Salesforce、Lyft、Amazon等)都采用了Stripe研發(fā)的在線支付,其價(jià)值高達(dá)90億美元,而Python對于該平臺的成功至關(guān)重要。
由于其在金融工作中的高效,許多金融科技初創(chuàng)公司選擇了Python——它天生就適合與數(shù)據(jù)和計(jì)算相關(guān)的金融科技產(chǎn)品。此外,這背后的另一個(gè)原因是,Python是金融專家最容易學(xué)習(xí)的語言。
DropBox
Dropbox提供在線存儲文件并將其同步到設(shè)備上的云存儲服務(wù),它在大部分服務(wù)和桌面客戶端中使用Python。2012年,Python的創(chuàng)建者Guido van Rossum受邀加入Dropbox。在供職于Dropbox的第一年,他幫助Dropbox社區(qū)中的其他用戶共享數(shù)據(jù)存儲。
該公司還為開發(fā)者提供了可以整合到他們的Python應(yīng)用程序中的Python軟件開發(fā)工具包,加強(qiáng)了他們的歸屬感和價(jià)值感。Dropbox的開發(fā)人員也證實(shí),他們使用Python完成大部分服務(wù)器端的編碼。
盡管Dropbox的許多庫和內(nèi)部構(gòu)件都是專有的,不是開源的,但Dropbox已經(jīng)推出了一個(gè)非常強(qiáng)大的Python編碼應(yīng)用程序接口來展示軟件工程師的思考方式。
Reddit是一個(gè)社交新聞平臺,人們能夠通過Reddit討論和表決其他人提交的內(nèi)容。2017年,該網(wǎng)站每月訪問量為5.42億,是全球第四大訪問量網(wǎng)站,也是美國第七大比較受歡迎的網(wǎng)站。在2015年,Reddit上共有73.15億條內(nèi)容和8.254兆次頁面瀏覽量。而Python是所有這些軟件背后的支柱。
Reddit最初是用Lisp編寫的,但在2005年12月,也就是Reddit發(fā)布6個(gè)月后,他們發(fā)現(xiàn)Python有海量代碼庫并且在開發(fā)方面效率更高,于是轉(zhuǎn)而使用Python。
這10家公司只是冰山一角,使用Python的公司還有很多。Python語言簡單、開發(fā)速度快、可擴(kuò)展性強(qiáng),僅憑Python就能夠構(gòu)建幾乎一切廣泛體系的事實(shí),這些都是公司們偏愛Python的原因。