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