1. 程式人生 > >Python的性能如何? 來看看全球都有哪些頂級的公司在使用Python

Python的性能如何? 來看看全球都有哪些頂級的公司在使用Python

Python用途 Python的未來 Python就業前景

大家可以關註公眾號:Python從程序猿到程序員

目前有超過500種編程語言,每天仍在新增更多新語言。雖然其中有大部分重疊的語言以及大量僅用於理論和試驗的編程語言。但你必須選擇一種作為日常工作生活常用的編程語言。你應該學習哪些語言,為什麽你應該花時間學習它們?由於這是一個致力於Python的網站,之前我們已經告訴過你為什麽Python是一門很好的學習語言。你可能知道Python可能是Raspberry Pi最受歡迎的語言(因為大多數開發板都預裝了Python)。只要你足夠聰慧就可以用樹莓派套件完成任何事情。雖然我們可以很容易看出Python簡單易用,但它在商業和軟件開發中又有哪些實際應用呢?我們現在就告訴你九個使用Python的頂級公司。通過這種方式,您可以看到Python在商業和軟件開發中的實際應用。

技術分享圖片

Industrial Light and Magic(工業光魔)

Industrial Light and Magic(ILM)是喬治盧卡斯於1975年創建的特效公司,為星球大戰創造了FX(電影特效)。從那時起,它們已經成為FX的代名詞,在電影和廣告中屢獲殊榮。在公司早期,ILM專註於通過道具實現效果,但它們很快意識到電腦特效才是是FX的未來。其CGI部門成立於1979年,CGI首個特效是“星際迷航II:汗的憤怒”中的創世紀爆炸特效。最初,ILM的CGI工作室使用了Unix shell,但這只用於處理相對較少的特效。由於工作室預見了CGI的未來,他們開始尋找一種能夠應對未來大型升級的系統。ILM選擇Python 1.4而非Perl和Tcl,是因為使用Python能夠快速的構建基礎構架。由於Python與C和C ++的良好交互性,ILM可以很簡單的將Python導入其專用的照明軟件。這讓它們在更多領域使用Python,用它來封裝組件和擴展其標準圖形應用程序。該工作室已將Python用於其工作的多個方面。開發人員使用Python來跟蹤和審核管道函數,將每部電影制作的每張圖像都保存一個數據庫。隨著越來越多的ILM程序由Python控制,它創建了一個更簡單的統一工具集,從而使得特效制作更為高效。比如,現在ILM使用的高清文件格式OpenEXR(http://www.openexr.com/index.html),其中就包含了Python的PyIlmBase(雖然其現在仍依賴於Boost)。盡管現在技術得到了極大發展,但ILM仍然認為Python是滿足其需求的最佳解決方案。通過Python開源代碼庫與後端端口變更功能相結合,可確保Python在很長一段時間內繼續滿足ILM的需求。

技術分享圖片

Google

Google幾乎從一開始就一直是Python的支持者。最開始,Google的創始人決定“除了一些必須使用C ++的關鍵部分之外,可以隨意使用Python.”。這意味著C ++被用於需要內存控制和低延遲的地方。Python用與易於維護的部分和快速交付的工程。Google經常使用Python重寫Perl和Bash腳本。因為Python部署和維護簡單。但事實上,根據“In the Plex”作者Steven Levy的說法,Google搜索早期有一個網絡爬蟲由Java 1.0編寫,由於寫到後期發現Java太難寫了,因此又用Python重寫了。Python現在是官方的Google服務器端語言之一,除此之外還有C ++,Java和Go三種語言用於生產環境中。如果現在你還不明白Python對谷歌的重要性,那麽我將告訴你Python之父Guido van Rossum(BDFL )從2005年到2012年都在Google工作。除此之外,Peter Norvig也說過:“Python從一開始就一直是Google的重要組成部分,並且隨著系統的不斷發展而發展,今天,很多Google工程師都使用Python,我們也正在尋找更多會使用Python的人。”

技術分享圖片

Facebook

Facebook的產品工程師非常熱衷於Python,把它作為這家社交媒體巨頭的第三大流行語言(僅次於C ++和他們專有的PHP語言Hack)。Facebook上有超過5,000項功能都是用Python完成的,它們包括管理基礎架構,二進制分發,硬件映像以及一些自動操作。使用Python庫的簡易性意味著產品工程師不必編寫和維護更多的代碼,從而使他們能夠專註於實時改進。Python還確保Facebook的基礎架構能夠實現高效擴展。根據Facebook發布的2016年發布的消息,Python目前負責基礎架構管理中的多項服務。其中包括使用TORconfig處理網絡交換機設置和映像,FBOSS用於交換機CLI,Dapper進行維護工作的調度和執行。Facebook已經發布了許多為Python3編寫的開源Python項目,其中包括Facebook Ads API(https://github.com/facebook/facebook-python-ads-sdk)和Python Async IRCbot框架(https://github.com/facebook/pyaib)。 Facebook目前正在將他們的基礎架構和處理程序從Python 2升級到Python3.4,AsyncIO正在幫助它們的工程師完成這一工作

技術分享圖片

Instagram

在2016年,Instagram工程團隊對外宣稱他們正在進行全球最大的Django Web框架部署,該框架完全由Python編寫。Instagram的一名軟件工程師Min Ni闡述了他們使用Python的情況:“我們最初選擇使用Python是因為它簡潔高效,這與我們‘首先做簡單的事情’的理念完全一致。”從那時起,Instagram的工程團隊投入了大量時間和資源來保證Python在大規模業務(每月約8億活躍用戶)上運行:“通過我們對Instagram Web服務框架的構建,我們相信我們將繼續使用Python來擴展我們的服務基礎架構。我們也開始將更多精力投入到Python語言本身,並開始探索從Python2遷移到Python3。”在2017年,Instagram將大部分Python代碼從Python 2.7升級到Python 3。您可以觀看Lisa Guo和Hui Ding發表的關於PyCon 2017主題演講(可以搜索到),並聽取他們有關這種大規模代碼遷移的經驗。

技術分享圖片

Spotify

這家音樂流媒體巨頭是Python的巨大支持者,主要使用該語言進行數據分析和後端服務。在後端,有大量的服務都通過0MQ(ZeroMQ)進行通信,這是一種用Python和C ++(以及其他語言)編寫的開源網絡庫和框架。使用Python編寫的原因是因為Spotify喜歡在Python編程時的簡單和高效。 Spotify架構的更新都使用gevent(http://www.gevent.org/),它使用高級同步API提供快速事件循環。為了根據用戶喜好推薦歌曲,Spotify需進行大量的數據分析。為了處理這些數據,Spotify使用Luigi(https://github.com/spotify/luigi),一個可以與Hadoop同步的Python模塊。這個開源模塊對任務進行管理,並快速整合錯誤日誌,以便進行故障排除和重新部署。總之,Spotify有超過6000個Python進程,這些進程在Hadoop集群上協同工作。Quora當這家大型的問答平臺在選擇使用什麽語言來實現他們的想法時,Charlie Cheever(Quora的創始人之一)將選擇範圍縮小到Python,C#,Java和Scala。而他們使用Python最大的問題是缺少數據類型檢查功能而且程序運行相對緩慢。根據Adam D'Angelo所說,他們決定不使用C#,因為這是一種微軟平臺的專用語言,他們不希望受到任何未來變化的影響。此外,任何開源代碼還擁有更好的社區支持。Java比Python編寫起來更加痛苦,它不像Python那樣與非Java程序聯動性好。當時Java還處於起步階段,因此他們擔心未來Java的發展及市場占有率。因此,Quora的創始人決定跟隨Google的步伐,選擇使用Python,因為它易於編寫和閱讀,對於性能要求較高的關鍵部分可以使用C++。而且他們可以通過編寫能夠完成同樣任務的單元測試來解決Python缺乏類型檢查的問題。使用Python的另一個關鍵因素是當時存在幾個很好的框架,包括Django和Pylons。此外,因為他們知道Quora將涉及服務器/客戶端交互,而這些交互不一定需要加載全部頁面,所以讓Python和JS結合起來效果將非常好。

技術分享圖片

Netflix

Netflix與Spotify使用Python的方式非常相似的,依靠Python為服務器端的數據分析提供支持。然而,它並不僅僅停留在這些應用。 Netflix允許他們的軟件工程師選擇自己想用的語言編寫程序,隨後發現Python應用程序的數量大幅增加。經過調查發現,Netflix工程師喜歡引用標準庫以及大量來自開發社區的可用於解決幾乎任何問題的第三方庫。另外,因為使用Python開發非常容易,所以它已經成為許多Netflix其他服務的關鍵。Python使用的主要場所之一是中央警報網關。這個RESTful網絡應用程序可以在任何地方處理警報,然後將它們發送給需要查看警報的人或小組。此外,該應用程序還能夠過濾已經處理的重復警報,甚至自動解決一些常見警報,例如重啟進程或終止看起來不穩定的進程。考慮到警報量巨大,該應用程序對Netflix提供了巨大的幫助。智能處理意味著開發人員和工程師不會再被大量的警報電話淹沒。Netflix使用Python的另一個領域是用於跟蹤安全更改和歷史記錄的monkey應用。這些monkey用於跟蹤和警告任何組中與EC2安全相關的策略的任何更改,並跟蹤這些環境中的任何更改。它們還用於跟蹤連接到Netflix多個域的幾十個SSL證書。自2012年以來,通過追蹤技術的應用,Netflix的意外到期情況從四分之一減小到了幾乎沒有。

技術分享圖片

Dropbox

這家雲存儲服務商在其桌面客戶端中使用Python。如果您對Dropbox在Python方面的使用表示懷疑,請參見2012年,他們設法說服Python之父Guido van Rossum離開Google並進入Dropbox。Rossum加入Dropbox的條件是他將成為一名工程師,而不是一名主管或經理。在他來到Dropbox的第一年,他幫助實現了Dropbox中“與Dropbox社區內的其他用戶共享數據存儲”的功能。盡管Dropbox的許多庫和內部工具都是專用而非開源的,但Dropbox已經發布了一個非常高效的使用python編寫的API(https://www.dropbox.com/developers/documentation/python),可以讓您了解工程師的想法。你也可以參見Dropbox工程師對大量服務端代碼使用Python的采訪。(https://talkpython.fm/episodes/transcript/30/python-community-and-python-at-dropbox)同樣值得註意的是,雖然客戶端程序使用Python編碼,但它們使用Mac和Windows上的不同的庫來提供一致的用戶體驗。這是因為Python不會預裝在Windows上,而且由於您的Mac版本不同,您的Python版本也會有所不同。

技術分享圖片

Reddit

2017年,該網站每月訪問量達到5.42億人,成為美國訪第四,全球第七高訪問量的網站。 2015年,提交的內容為7,315萬次,瀏覽量為825.4億次。其網站主要由Python編寫。Reddit最初是用Lisp編寫的,但在2005年12月發布後六個月,該網站重新使用Python編寫。改變編寫語言的主要原因是Python擁有更多的代碼庫,並且在開發上更具靈活性。最初運行網站的web框架web.py現在是一個開源項目。在2009年的采訪中,Steve Huffman和Alexis Ohanian在Pycon期間被問及為什麽Reddit仍在使用Python作為其框架。霍夫曼給出了相同的答案:“任何功能都能找到相應的Python庫。我們一直在學習很多這些技術和很多這樣的架構。所以,當我不了解連接池時,我可以找到一個庫來使用,直到我自己更好地理解並編寫我們自己的庫。不了解web框架,所以我們會先使用別人的,一直到我們自己創建完成。 Python就是有這樣好的庫支持。“Reddit堅持使用Python的第二個原因是所有使用Python公司的共同思路。Steve Huffman說代碼的可讀性也是選擇Python的重要因素:“我認為我們現在還沒有專門的Python程序員。我只是對他們說,'你寫的所有東西都需要用Python編寫,'我很容易讀懂Python代碼。這很棒,因為我可以從房間中看到他們的屏幕,看他們的代碼是好還是壞。因為優秀的Python代碼結構非常易讀。這讓我的生活變得更加輕松。它非常有表現力,可讀很好,又易於編寫。這讓我生活更加順利”

除此以外還有其他公司嗎?

我們考察了九家使用Python進行生產的世界級和成功的軟件公司。 但事實還遠不止這些。 截至2018年,Python的采用率達到了一個新的高峰,並還在繼續攀升。

現在學習Python還會晚嗎?

看到這裏,是不是感覺步伐跟不上時代》?是否又要想:怎麽學習Python呢?又在想:自學Python效果怎麽樣?能不能找到工作?

如果大家不知道怎麽辦,可以加4913+08659,編碼:柯西,,編碼:柯西,學習資料,學習方法,學習直播,裏面都有


Python的性能如何? 來看看全球都有哪些頂級的公司在使用Python