內容來源:2017年5月13日,ThoughtWorks高級諮詢師佟達在「2017技術雷達峯會|洞察構建將來的技術和趨勢」進行《無處不在的Python》演講分享。IT 大咖說做爲獨家視頻合做方,經主辦方和講者審閱受權發佈。
程序員
閱讀字數:1699 | 6分鐘閱讀shell
Python已經有將近30年的歷史,在過去30年中,Python在運維工程師和數據科學家羣體中受到普遍歡迎,然而卻極少有企業將Python做爲生產環境的首選語言。在最近幾年,這一狀況有所改變。隨着雲計算、大數據以及人工智能技術的快速發展,Python及其開發生態環境正在受到愈來愈多的關注,技術雷達上和Python相關的技術也愈來愈多。爲何Python成爲了「被選中的語言」?這一趨勢將給企業IT帶來怎樣的變化?編程
提及「遊手好閒」讓我想起了一個大人物。他在十幾歲的時候進入了印刷廠工做,當一名印刷工。以後成立了本身的印刷公司,出版報紙發表文章。當全部人都覺得他會把餘生都投入到印刷行業的時候,他卻去成立了北美第一家由志願者組成的消防隊。再後來他又成立了北美的第一家醫院。又有一天他心血來潮地在雷雨天裏放風箏,由此發明了避雷針,爲氣象事業作出了偉大貢獻。他還做爲美國駐歐洲的外交官,在北美獨立的過程當中起到了巨大做用。他參與起草了《獨立宣言》,如今他的頭像被印在了百元美鈔上面。網絡
這我的的一輩子都是在「遊手好閒」之中,他就是美國最偉大人物第五位——本傑明·富蘭克林。框架
在Python剛剛出現的時候,全部人在開發各類各樣的操做系統,而Python選擇了另外一條路。運維
Python是以給程序員們提供更好的管理系統的工具而發明出來的。如今Python內置於大部分主流操做系統以內,執行效率遠高於shell,開發效率遠高於C。機器學習
從系統管理工具,到軟件開發工具,Python一直在幫助工程師提高效率。編程語言
在軟件開發工具領域,不管是構建工具仍是版本控制,或者是代碼評審,Python都屬因而先驅。工具
Python不只在早期介入到軟件開發工具領域中,Spinnaker在持續交付領域也算是新秀,它主要是利用了雲技術來搭建持續交付流水線。學習
在Python對於軟件開發工具這幾個領域裏面,它的後來者看起來都比先驅要出色一些,因此Python自此就在跨界的這條路上越走越遠。
首先Python嘗試的是WEB開發。互聯網時代來臨,各個編程語言都在發力爭搶WEB開發的地盤,Python卻顯得心不在焉。
Django這門技術能夠基於Python去開發一些WEB的網站,還有一些更小巧的好比Flask,Tornado,Pyramid。基於Python開發的WEB網站也有很多,好比著名的Youtube,Reddit,Pinterest,Dropbox,Douban。
可是Python這門語言自己和其它語言相比,在WEB開發上Python的專一度老是不夠,看起來「心不在焉」。
曾經的科學計算領域,工具備Matlab, Maple, Mathematica,編程語言有Fortran, Pascal。
機器學習流行起來后里面關聯的一個技術就是Scikit-learn,是結合了NumPy, SymPy, SciPy,還有可視化技術Matplotlib, Jupyter Notebook等等結合起來的工具,在機器學習領域有很是大的用戶羣。如今在生產環境當中,在工程領域也在逐漸開始流行起來。
在2008年以後,咱們進入了雲計算的時代。得益於在系統管理工具方方面面的積累,以及Python語⾔言強大的系統集成能力,讓Python在雲計算領域大放異彩。OpenStack裏面最主要的開發語言就是Python。
不只是私有云領域,在公有云領域,像aws-cli, gcloud等等這些公有云但願提供給開發者SDK,或者以命令行方式提供的時候,首選依然是Python。
儘管Python並非大數據工具軟件的主要開發語言,但倒是每個大數據工具不可忽視的力量。
Pandas是Python做爲主要開發語言的一個數據分析工具。在Spark剛剛發佈的時候,也帶了PySpark這樣一個接口。雖然底層實踐不必定是以Python爲主,可是上層接口必定會有Python的存在。
除了主要的數據分析工具之外,還有流程編排。Airflow能夠很好地讓咱們的工程師可視化地去編輯,讓咱們更清楚地知道數據是怎樣一步一步處理的。這個工具的可用性比較高,可視化效果也更爲酷炫。
在人工智能,尤爲是深度學習領域,Python佔據主導地位。儘管像OpenCV還有sox這樣的工具,它自己底層不必定是以Python來實現的,但真正運用最普遍的地方倒是以Python接口提供出來的這部份內容。包括咱們在作圖像識別的時候,即便用的是OpenCV,但實際上你們用的都是Python的OpenCV庫。
早期的天然語言處理都是基於斯坦福的NLTK,而在最新一期的《技術雷達》中咱們發現了SpaCy。它是一個但願能用現代化的天然語言處理技術,同時又能支持生產環境的這樣一個工具。它的出生就是奔着但願可以讓天然語言處理在生產環境領域中使用的。
人工智能火起來的一個緣由是由於深度學習火了,深度學習被證實了特別有效。尤爲是在數據量特別大的狀況下咱們去發現裏面一些特徵的時候要比人工地尋找特徵更有效。在深度學習領域幾乎沒有其它語言能夠和Python相提並論。好比著名的Caffe也是在《技術雷達》裏出現了的。TensorFlow是谷歌開源的深度學習框架。Keras是基於Theano和TensorFlow能夠作頂層計算圖的編排、深度神經網絡設計的一個語言,也是基於Python來作的。
業務沒有線上與線下之分,只有已經數字化和即將數字化之分。
好比作視頻的網站開始作汽車,作手機的公司開始作空氣淨化器,自行車能夠連上互聯網。如今這些都和軟件、IT、互聯網相結合了。
DevOps運動的興起讓開發、測試、運維緊密的合做。平臺的興起讓工程師能夠專一在業務上。新一輪人工智能浪潮讓軟件有可能自我學習,自我進化。
每個技術均可能是一個很是深的領域。對於一個開發人員咱們可能須要瞭解DevOps、雲計算,須要學人工智能、IOT、大數據、Paas、Web開發等等。可能一個業務須要使用以上全部的技術。對於開發人員來講學習每一項的成本都是很是高的,而對於決策層來講也沒法接受讓開發團隊一切從零開始。
幸虧咱們有Python。由於Python過去多年在不一樣的領域中「遊手好閒」的表現讓Python成爲了一個當咱們嘗試在各個領域都要作一點事情時的最佳選擇。這就是Python在如今如此流行的一個很重要的緣由