文/水哥 這些年,編程語言的發展進程很快,在商業公司、開源社區兩股力量的共同推動下,涌現出諸如Go、Swift這類后起之秀,其中最為耀眼的是Python。 知名開發者網站Stackoverflow撰文指出,從2012至2017年編程語言Python成為開發者使用增長最快的主流編程語言,其中2017年增長率達到了27%,一舉超過包括Java、C#、PHP、C++在內的所有同類。另據高盛集團發布的一份《2017調查報告》針對全球數千名高校實習生的調查中,當問到你認為“哪個語言在未來會更重要”時,被調查的80、90后優秀年輕開發者中72%選了Python。 語言的使用者是一直被譽為業界上游“源頭活水”的開發者,其重要程度從各大科技巨頭公司每年例行召開的開發者大會上可見一斑。對于開發者群體而言最重要的事物有兩個,一是平臺,二就是編程語言。編程語言Python為什么能夠獲得全球眾多開發者的青睞?它的崛起給開發者世界帶來了什么變化? 成功的一半源于好的開始 在主流編程語言當中,Python并不是一個“新人”,它的歷史超過25年,但真正風靡之時卻是最近幾年,所以“后起之秀”的稱呼實至名歸。Python的起源是1989年,其發明者荷蘭人程序員吉多•范羅蘇姆受ABC語言的啟發計劃開發一個新的腳本解釋器,由此邁出了Python項目的起點。 Python能夠真正風靡的原因之一是有一個好的起點。它的起步很穩,避開了版權糾紛,且搭上了開源運動的順風車。在那個年代,商業版權一直是熱門事件,業界史上第一個軟件領域重大官司AT&T和伯克利BSD的Unix版權案打得天昏地暗,該案的結局直接促成了BSD的開源分支、Linux的誕生以及震驚世界的自由軟件運動。 Python最初的版權歸屬是CWI(阿姆斯特丹的國家數學與計算機科研學會),這與吉多早年在該機構工作有關,后來吉多受雇于CNRI(維吉尼亞州的國家創新研究公司),Python權屬轉移至此。那時自由軟件運動已經開始,在CNRI期間發布的1.6至2.1多個版本的Python許可證是一種與GPL并不兼容且類似于BSD的開源許可,CNRI因受到自由軟件基金會的壓力釋放了Python的原許可證,吉多由此掌握了主導權并起草了新的許可證。他改變了原許可證與GPL的不兼容,此舉獲得了自由軟件基金會頒發的自由軟件進步獎。再后來吉多和他的團隊成立了Python軟件基金會,將版權與許可證置于其下。 創始人吉多•范羅蘇姆的心思縝密與靈活處事為Python最初的發展營造了良好的環境,包括幾次權屬的轉移、起草新的許可證、機智地與自由軟件陣營斡旋,最后安全融入開源的大潮。這一切為Python此后十多年里逐漸成長為主流編程語言贏得了契機。 “人生苦短,我用Python”并非一句戲言 Python崛起的原因之二與其本身特點有關,或者說,其長期維護演進形成的獨特風格迎合了大多數開發者的口味。在開發者社群流行著一句玩笑“人生苦短,我用Python”(原話為” Life is short, you need Python”),這句看似戲言的話實際上恰恰反映了Python的語言特性與其在開發者心里的價值分量。 除了包涵大多數主流編程語言的優點(面向對象、語法豐富)之外,Python的直觀特點是簡明優雅、易于開發,用盡量少的代碼完成更多工作。盡管Python是一種解釋型語言,與傳統的編譯型語言相比降低了機器執行效率,但是處理器的處理速率與環境速率(比如網絡環境)的差異在大多數場景中完全抵消了上述代價;犧牲部分運行效率帶來的好處則是提升了開發效率,在跨平臺的時候無需移植和重新編譯。 所以Python的顯著優點在于速成,對于時間短、變化快的需求而言尤為勝任。 Python最強大的地方體現在它的兩個外號上,一個叫“內置電池”,另一個是“膠水語言”。前者的意思是,Python官方本身提供了非常完善的標準代碼庫,包括針對網絡編程、輸入輸出、文件系統、圖形處理、數據庫、文本處理等等。代碼庫相當于已經編寫完成打包供開發者使用的代碼集合,程序員只需通過加載、調用等操作手段即可實現對庫中函數、功能的利用,從而省去了自己編寫大量代碼的過程,讓編程工作看起來更像是在“搭積木”。除了內置庫,開源社區和獨立開發者長期為Python貢獻了豐富大量的第三方庫,其數量遠超其他主流編程語言,可見Python的語言生態已然相當壯大。 “膠水語言”是Python的另一個亮點。Python本身被設計成具有可擴展性,它提供了豐富的API和工具,以便開發者能夠輕松使用包括C、C++等主流編程語言編寫的模塊來擴充程序。就像使用膠水一樣把用其他編程語言編寫的模塊粘合過來,讓整個程序同時兼備其他語言的優點,起到了黏合劑的作用。正是這種多面手的角色讓Python近幾年在開發者世界中名聲鵲起,因為互聯網與移動互聯時代的需求量急速倍增,大量開發者亟需一種極速、敏捷的工具來助其處理與日俱增的工作,Python發展至今的形態正好滿足了他們的愿望。 Python的影響 從兩個著名編程語言排行網站TIOBE和PYPL的最新數據來看,Java與Python的排名分別位于第1和第5、第1和第2。關于兩個網站的排行機制我們不得而知,但從開發者社群的相關評論中可以認為PYPL更能反映編程語言在開發者群體中的流行程度。不論如何,Python的崛起已是毋庸置疑的事實,而它上面的前輩則是常年占據榜單第1,互聯網與移動時代的嬌子Java。從Stackoverflow和多個開源社區公開的數據來看,Python的用戶數量增長很快,在今后兩年超過Java成為全球最流行編程語言的可能性非常之高。 值得一提的是,那些頗有影響力的主流編程語言,其背后一般都站著科技巨頭公司,比如Java之于甲骨文、C#之于微軟、Objective-C之于蘋果。Java之所以常年第一是因為其同時還幾乎是安卓平臺的御用語言,以及受益于Sun時代影響力的眷顧。Python雖曾一度為谷歌使用,但Go語言問世后隨著時間推移或將遇冷。也就是說,Python成了沒有巨頭站隊的主流編程語言,那么它的影響力是如何維系的?為什么還能夠保持高速成長并形成趕超Java之勢? 我們認為這與Python多年來實現較好案例與范用性有關。使用Python開發的知名案例中,包括豆瓣、果殼、知乎、Dropbox、EVE(星戰前夜)每一個都是重量級產品,這說明Python語言本身的發展已日臻完善,有著極高的穩定與可靠性保證。第二是Python的應用范圍,除了日常工具和腳本之外,還適用于Web程序、GUI開發、操作系統中間件、服務端運維等等,這些年Python的一些第三方庫在機器學習、神經網絡方面活躍非凡,這也為語言本身的推廣和流行加分不少。 最后需要指出的是,Python編程思想包含強烈的黑箱思維,這意味著開發者將愈加重視模塊化和流水線式的編程工作,事實上這也是未來主流編程語言的發展趨向。隨著計算機語言的演化和開發工具集成功能日趨強大,未來的編程工作將大幅簡化。從某種角度看,Python更像是已經“邁入未來”的編程語言,其對開發者群體結構變化,以及新進開發者數量的激增,這些影響都將是深遠的。 水哥 高級工程師,科技專欄作者,中國計算機學會會員。IT評論、業界分析,不一而足。微信公眾號:qq133991 |