“GCT(Global Chinese Talents,全球華人專家庫)彙集全球1億3千萬科研學者,2億論文資料,利用Aminer大資料挖掘與分析引擎精确繪制立體知識圖譜并進行行業預測,真正做到洞察科技,感覺未來。作為世界上最智能的科技情報引擎,GCT對各領域專家學者進行全息畫像,包括學者學術合作、社會交往關系,描摹學術遷徙路徑,深度挖掘潛藏在資料背後的學者資訊。”
在人工智能、大資料盛行的今天,python以其語言簡單、應用範圍廣、投入成本低、效率高等特點深受技術公司的追捧,也因為入門門檻低,出現了全民學python的熱潮。但是,在上世紀90年代初,python剛問世的幾年裡,因為計算機資源非常有限,那時大家都傾向于最大化榨取計算機資源并提升運算效率,顯然Python與當時時代特點相悖。但是,在30年間的不斷更新和技術更疊,使得Python漸漸從小衆最終站上了現在誰與争鋒的高度。
今天,我們就來簡單了解一下Python的發展曆程。
故事還要從1989年的聖誕夜說起。那時還在荷蘭CWI(Centrum voor Wiskunde en Informatica,國家數學和計算機科學研究院)工作的Guido van Rossum 為了打發無趣的聖誕假期,于是便試着開發一種新的腳本解釋程式,以此來作為ABC語言的一種繼承。之是以選中Python(大蟒蛇的意思)作為該程式設計語言的名字,是取自英國20世紀70年代首播的電視喜劇《蒙提.派森幹的飛行馬戲團》(Monty Python’s Flying Circus)。Guido表示,他希望這個新的語言功能全面、易學、易用又可拓展,将其作為一種新的介于C和shell之間的一種新的語言。
注:ABC是由Guido參加設計的一種教學語言。在Guido看來,ABC 這種語言非常優美和強大,是專門為非專業程式員設計的。但是ABC語言并沒有成功,究其原因,Guido 認為是其非開放造成的。Guido 決心在Python 中避免這一錯誤。同時,他還想實作在ABC 中閃現過但未曾實作的東西。就這樣,Python在Guido手中誕生了。可以說,Python是從ABC發展起來,主要受到了Modula-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。并且結合了Unix shell和C的習慣。
1991年,第一個Python編譯器問世,這标志着Python的第一個版本正式誕生。Python在C語言的基礎上又兼備基礎的類、函數、異常處理等功能特性,可擴充是其重要特性之一。Python深受ABC語言的影響,例如來源于ABC語言強制縮進的規定本身可以讓Python容易讀,但如果縮進出錯卻會影響編譯和執行。
Python以其簡潔性受到當時一部分人的歡迎,Guido當時也推薦給自己的同僚使用,并得到了同僚們的認同,并且在使用Python的過程中給出了許多建設性的意見,Guido也積極邀請同僚參與Python的建設,最初的Python研發團隊也就形成了。剛開始,Python還隻是在研究院内部使用,但随着功能的不斷完善,Python開始走出研究院,吸引着大批的嘗鮮者。國小國文輔導但在那個計算機資源匮乏的年代,Python隻能在計算機語言中作為小衆的存在。
初代的Python存在着不少的缺陷。直到1994年,其工作室釋出了Unicode字元編碼标準,使得跨語言、跨平台等問題才得以解決。
随着Python2.0在2000年的10月16日正式釋出,其語言的架構才基本确定。包括面向對象、動态類型、膠水特性、可嵌入、生态系統、解釋器機制等方面。至此,Python已經成為最受歡迎的程式設計語言之一。
2008年12月,Python 3釋出。Python 3相對于Python 2有較大的更新,但是它在設計的時候沒有考慮向下相容,是以很多早期版本的Python程式無法在Python 3上運作。從2008年開始,Python 2與Python 3是并存發展的。但在2018年3月,Guido在郵件清單上宣布Python 2.7将于2020年1月1日終止支援,這意味着之後Python 2将不再被統一維護,Python 2的時代即将過去。
Python官網
自從2004年以後,python的使用率呈線性增長。2011年1月,它被TIOBE程式設計語言排行榜評為2010年度語言。這一時期,Python繼續以其獨特魅力吸引更多的開發者加入,但真正讓Python大放異彩的卻是AI的爆發。
人工智能快速發展的今天,Python功不可沒。在計算機視覺、自然語言處理、語音識别、推薦化系統以及無人駕駛等領域發揮着至關重要的作用。在近兩年的各種計算機語言排行榜中,Python始終處于前三之列,有些榜單甚至長期霸占榜一的位置。國内許多學校已經将Python列入教材,各種教育機構也開始出售Python課程,而Python也已列入全國計算機二級等級考試大綱。
今年7月計算機語言排行榜
小編也總結了幾點Python盛行的原因:
1.python入門簡單,沒有什麼較高的門檻,大家都學,導緻比較容易受到關注。
2.python是很多領域的嵌入語言,如maya的腳本就是開源的。python可以友善植入到其他系統中,可以通過調用c/c++編譯的動态連結庫,來實作各種調用,也可以使用消息隊列、通信、資料庫等方法,很友善地和其他系統互動。
3.python不需要知識産權費,是開放源代碼的。
4.可擴充性:如果需要一段關鍵代碼運作得更快或者希望某些算法不公開,可以部分程式用C或C++編寫,然後在Python程式中使用它們。
5.可嵌入型:可以把Python嵌入C/C++程式,進而向程式使用者提供腳本功能。
6.豐富的庫:Python标準庫确實很龐大。它可以幫助處理各種工作,包括正規表達式、文檔生成、單元測試、線程、資料庫、網頁浏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV檔案、密碼系統、GUI(圖形使用者界面)、Tk和其他與系統有關的操作。
全球最高薪酬開發者使用的語言
Python有不少相關的庫與架構,下面就來簡單介紹幾個。
如果正在開發一個Web應用程式并且已經選擇使用Python作為建構它的語言,那麼這是一個明智的選擇。Python的開發成熟度,強大的庫以及廣泛的實際應用使其成為Web開發的必需。但也會面臨一個棘手的問題,如何從衆多可用的Python web架構中選擇一個适合的,一般選擇架構大多會會遵循安全性、可伸縮性、原生能力等。其中最常見的五個庫:CubicWeb,Django,Web2py,Weppy和Zope2,采用“控件”方法,包含你可以想象的Web應用程式所需的大多數功能。還有一些其他的庫,例如:Bottle、CherryPy、Falcon、Flask、Pyramid、Tornado等,提供簡約的外觀,交易批量和完整性,簡單易用。
下表是幾個常見的Python 架構:
Python擁有衆多的标準庫與第三方庫,讓我們來簡單了解幾個常用的Python 庫。
1.Requests.Kenneth Reitz寫的最富盛名的http庫。應該說每個Python程式員都會用到它。
2.Scrapy。如果你從事爬蟲相關的工作,那麼這個庫也是必不可少的。
3.Pillow。它是PIL(Python圖形庫)的一個分支。是從事圖像領域工作者必備的庫。
4.NumPy。提供了很多進階的數學方法。
5.Pygame。2D遊戲開發者“攻城拔寨”的利器。
6.wxPython。Python的一個GUI(圖形使用者界面)工具。
7.SQLAlchemy。一個資料庫的庫。
8.BeautifulSoup。xml和html的解析庫。
9.Pyglet。用于3D動畫和遊戲開發。
10.psutil。一個跨平台庫,能夠實作擷取系統運作的程序和系統使用率(主要用于系統監控,分析和系統資源及程序的管理。
11.IPy。輔助IP規劃。
展望
現在Python已經更新到3.7版本,Python 3.8也已經有了預覽版,據說在2023年左右Python 4便會問世。那麼,未來Python将會如何發展呢?
從Python的核心開發人員Nick Coghlan透露的消息中我們可以看出:首先,Python的PEP流程和制度沒有任何變化,通過增加新子產品和功能來增強的基礎能力,會加大對Python 資源的投放力度。其次,不同解釋器的實作和功能擴充還将繼續增強,方向包括PyPy關于JIT編譯器生成和軟體事務記憶體的嘗試,以及科學和資料分析社群,對面向數組程式設計的探索等。