逐鹿十五年,Java寶刀未老,Python青出於藍!

哪一種編程語言最火爆?

在不一樣的時代,這個問題也有着不一樣的答案,而一部編程語言的使用人數變遷史,實際上也是一部計算機世界的成長編年史。python

一位名叫PYPL的油管up主很盡心地統計了從2004年到2019年,每月使用人數最多的15種編程語言,並將這15年來的變化,製做成了一個4分鐘的視頻。程序員

在這部TOP15的編程語言榜單中,咱們能夠看到各類不一樣編程語言的流行度起伏。除了今天主流的Python、Java、JavaScript、C++、R外,在這個榜單曾擁有姓名的還包括C#、PHP、Objective-C、Matlab、 TypeScript、Go這些不那麼熟悉的名字。web

而細細推敲每一次的榜單變更,在感嘆各類編程語言更新迭代之快的同時,也看到了一幅完整的計算機和編程世界變遷史:好比2004年JavasSript語言的一度火爆,得益於網遊產業的興起;而11年左右Objective-C的流行歸功於iPhone的成功,編寫iPhone應用程序的主要編程語言是Objective-C。算法

下面,請隨我一塊兒,沿着時間線,回顧各類語言的變化史。數據庫

故事開始:位居榜首的四大金剛

故事開始於2004年8月,這一年,Java用戶量最多,其次是PHP,C/C++,JavaScript。Python在這時候仍是個比較小衆的編程語言,用戶量並很少,排在第九位。編程

位於榜首的這四大金剛是怎樣的語言,它們各自又有什麼樣的特色呢?文摘菌帶你們先來科普一下:

Java最初由Sun Microsystems開發和支持,而在2010年1月Sun Microsystems由Oracle收購,所以這以後開發和支持工做由Oracle完成,Java建立的宗旨是WORA,「Write Once Run Anywhere(代碼運行無邊界)」,Java的平臺獨立性是其在企業界取得成功的支柱之一。windows

PHP最初由Rasmus Lerdorf於1995年建立,PHP普遍用於構建動態網頁和服務器端開發。後端

Dennis MacAlistair美國計算機科學家Ritchie於1967年至1973年間在AT&T貝爾實驗室建立了C編程語言,C很是流行並普遍用於系統編程,它比Java的歷史更久遠,但它仍在編程語言中佔據一席之地。C++被開發爲C的下一代語言。它具備面向對象的編程功能,與更結構化的C語言相比,這一功能是十分使人驚歎的,由於它很是接近本機系統和並且具備面向對象特性,在金融的高頻交易領域被普遍使用。數組

JavaScript是一種普遍運用於客戶端的解釋性腳本語言,由Brendan Eich設計,並由Netscape Communications Corporation開發,在瀏覽器中可解釋運行,跨平臺性能良好,幾乎每一個主要網站都在使用這個語言。瀏覽器

在視頻開始,這四種語言在2004年初居榜首,實力地位不可撼動,然後隨着各大編程語言的迅速崛起,這種形式逐漸發生着變化。

2004.09-2004.10:網遊市場下的JavaScript vs VB

2004年9月到10月,JavaScript一直在與Visual Basic(簡稱VB)語言爭高下,2004年網遊市場風起雲涌,包括JavaScript在內的不少編程語言開始興起,使得JS一度超越Visual Basic位居第四。

2004年,《三國策Ⅲ》於9月25日由皓宇互動開發,《武林外史》是2004年11月28日由韓國CR-SPACE公司耗時2年時間開發完成的全3D純武俠網絡遊戲,除此外還有《傳奇》等經典網遊,這些遊戲產業的興起,使得遊戲開發中須要使用到的JavaScript語言一度火爆,用戶人數增加直逼Visual Basic,有一段時間甚至超越Visual Basic。

三國策遊戲主頁

三國策遊戲主頁

武林外史游戲截圖

武林外史游戲截圖

固然Visual Basic(簡稱VB)也不甘示弱,Visual Basic 是Microsoft公司開發的一種通用的基於對象的程序設計語言,其在發展過程當中的第三方控件和GUI極大方便了數據訪問和程序開發。在引入.NET Framework 後,2004年,微軟開放了Visual Studio 2005的測試版本(代號Whidbey),包含了.NET Framework2.0的測試版本有關,使用Visual Basic的用戶上升,再一次超越JavaScript,出現了上圖中二者「爭執」的局面。

2004.12-2005.01:爭執不休的Python和Delphi

Delphi是Windows下的開發平臺,其最初原型是DOS時代盛行一時的「BorlandTurbo Pascal」。

「真正的程序員用C++,聰明的程序員用Delphi」,這句話是對Delphi最經典、最實在的描述。Delphi被稱爲第四代編程語言,它具備簡單、高效、功能強大的特色,和VC相比,Delphi更簡單、更易於掌握,並且在功能上絲絕不遜色;和VB相比,Delphi則功能更強大、更實用,能夠說Delphi同時兼備了VC功能強大和VB簡單易學的特色。

而咱們現今普遍使用的Python,這一解釋型腳本語言,於1991年發行,Python 2於2000年10月16日發佈,穩定版本是Python 2.7,自從2004年之後,Python的使用率呈線性增加。

這一時間區間,Python和Delphi「爭執不下」主要是因爲Delphi9.0版本於2004年底發佈,在語法方面:加入了inline及for in loop等功能;IDE方面:把Borland Delphi. Net、Borland Delphi Win3二、Borland C#、Enterprise Core Objects等環境和功能集成成一個開發工具,所以能夠在Win32和.NET開發環境中切換或同時進行,這些功能的優化使得Delphi的用戶數動態變化,與Python展開激烈「爭執」。

C#的兩次「躍進」

​2006年年初,C#超越Perl,位居第6:

Perl是一種高級的、通用的、解釋的、動態的編程語言,Perl由LarryWall在20世紀80年代中期設計和開發,因其出色的文本處理能力而聲名鵲起,被普遍用於CGI、數據庫應用程序、網絡編程和圖形編程。

2006年5月,C#成功超越Visual Basic位居第5。

C#爲何能在2006年來兩次絕地反殺呢?它是一種怎樣的語言?

C#是微軟公司在2000年6月發佈的一種新的編程語言,是第一個面向組件的編程語言,它借鑑了Delphi的一個特色,與COM(組件對象模型)直接集成,而且新增了許多功能及語法,並且它是微軟公司.NET windows網絡框架的主角。

那麼爲何在一年內,它能超越其餘兩種語言?2006年又有哪些不平凡呢?

文摘菌將時間定位到2006年1月1日到2006年12月31日,在必應中搜索C#語言,搜索獲得的結果以下:


站在後人的角度看當時人們對於C#語言的理解還挺有意思的,2006年人們對於C#語言仍是充滿了疑問,產生了C#與C語言的區別,C#.NET的前景如何諸如此類的問題,一樣的在百度搜索引擎中輸入C#語言獲得的結果以下:


2006年web2.0的興起,同年,網絡遊戲免費模式繼續獲得了大規模推廣,像盛大公司的《傳奇II》和《夢幻國度》,C#和與Unity結合的敏捷遊戲開發,使得那段時間的C#開發一度火熱,拋卻時勢使然,還有C#搭建桌面應用的便捷性以及C#3.0的發佈。

在2005年9月份的PDC大會(Professional Developers Conference微軟專業開發人員大會)在大會上,發行了C#3.0(研發代號「Orcas」——魔鬼)的技術預覽版。

C# 3.0則是率先實現了LINQ的語言,能夠用相似於SQL語句的語法從一個數據源中輕鬆地獲得知足必定條件的對象集合。例如要查找一個字符串數組names中全部長度大於5的字符串,就能夠寫:var longname = from n in names wheren.Length > 5 select n;

這些緣由加起來,使得C#在2006年成爲程序員的「寵兒」。

2007.04-2007.05:Javascript 與C/C++持續叫板

​2007年4月到2007年五月,Javascript一直在與C/C++叫板,不過最後仍是JavaScript穩居第三,JavaScript作爲門戶網站的必備語言,2007年5月開始,千龍網、新浪網、搜狐網、網易網、TOM網、中華網等11家網站舉辦「網上大講堂」活動,旨在經過網上授課的形式與網民互動,傳播科學文化知識,C/C++短時間內的火爆仍是沒有撼動Javascript在網站開發方面的地位。


2008年C#和Python的攀升

​08年除了C++和JavaScript相持不下外,也一樣見證了Python的兩次逆襲和C#第一次超越C/C++。

2008年年初,Python超越Perl:

2008年10月,Python超越Visual Basic,僅次於C/C++:

同年7月,C#超越C/C++位居第四:

2008年到底發生了什麼?使得這兩種語言可以脫穎而出呢?

08年,汶川大地震、北京奧運會等重大事件促進網絡媒體提高主流媒體價值,同時中國網民躍居世界第一,雖然受到金融危機的影響,互聯網的浪潮已是大勢所趨。

Python的Web開發,只須要下載引入一些成熟的包,這些便利性是Python的優點所在,同時3.0版本在後續的發佈,也吸引了一批開發者,使得Python在一年內兩次攀升。

至於C#的攀升,不難理解,遊戲市場和桌面應用的持續發酵,騰訊於2008年新推出的《穿越火線》等一系列遊戲在催生着C#的發展。

Objective-C的開掛曆程

​2011年11月到2012年1月,Objective-C一路開掛,超越Ruby和Matlab居第8位。

Matlab是商業級別的數學建模軟件,這個語言咱們耳熟能詳,那Objective-C和Ruby又是什麼語言呢?

Ruby最初是由日本的Yukihiro「Matz」Matsumoto在20世紀90年代中期設計和開發的,主要用於Web應用程序開發,被Twitter、Hulu和Groupon等各大網站所使用。

Objective-C看到這個語言的標識,就知道和蘋果有點關係了,它是擴充C的面向對象編程語言,主要使用於Mac OS X和GNUstep這兩個使用OpenStep標準的系統。

2011年10月4日,蘋果發佈了第五代iPhone,即iPhone 4S,這款手機採用了iOS 5系統,並與Twitter進行了整合。

Objective-C的流行歸功於iPhone的成功,編寫iPhone應用程序的主要編程語言是Objective-C。

Python的大反擊!這匹黑馬如何逆襲?

​2013年5月,Python第一次超越C/C++成爲排名第四的語言。

到了2013年12月的時候,Python已經超越C#,躍居第三。

2013年再一次見證了Python這匹「黑馬」的實力,時代造就英雄,這背後是時代使然,也是必然。

12年到14年,「雲計算」這個詞出如今大批創業公司和巨頭的耳中,你們都在作IAAS,不少著名的雲計算開源平臺都是基於Python開發的(如OpenStack),催生出很多的Python崗位,Python的開發者和用戶廣泛增多。

OpenStack連接:https://www.openstack.org/

2014年到2015年「大衆創業,萬衆創新」的口號響徹祖國的大江南北,什麼語言最適合快速搭建原型呢?Python再一次展露頭角,在2015年底成功超越PHP成爲用戶量最多的第二大語言,緊逼以前一直穩居第一的Java,在這之後,Python用戶量逐漸增加。


小插曲:被R超越的Objective-C

2017年9月到10月間Objective-C和R語言一直爭執不下。

Objective-C以前有了解,那R語言又是怎樣的語言呢?

R是屬於GNU系統的一個自由、免費、源代碼開放的軟件,它是一個用於統計計算和統計製圖的優秀工具,R是受S語言和Scheme語言影響發展而來,其最主要的特色是免費、開源、各類各樣的模塊十分齊全,在R語言中,提供了大量的第三方功能包,其內容涵蓋了從統計計算到機器學習、從金融分析到生物信息、從社會網絡分析到天然語言處理、從各類數據庫各類語言接口到高性能計算模型,能夠說功能十分齊全。

Python人數在快速增加的同時,爲何有R語言超越Objective-C這一局面呢?

2016年3月,阿爾法圍棋與圍棋世界冠軍、職業九段棋手李世石進行圍棋人機大戰,以4比1的總比分獲勝,這足以令人們意識到「人工智能」再也不是概念,解決一些此領域的問題,不免須要對數據作統計,運用機器學習的算法解決問題,R語言作爲優秀開源的統計工具,也是在這一時期內用戶量波動攀升的緣由。一樣Python中大量的科學計算包,也使得用戶量一度緊逼Java,Python有可能超越Java嗎?別急,時間會告訴咱們答案。

Python終得桂冠

​2018年2月到5月,使用Python語言的人數不斷增多,大有遇上Java的趨勢。

到了2018年6月,Python已經超越Java成爲用戶量最多的語言。

2018年7月到8月,Python居榜首後,Java用戶量不斷減小,而其用戶量的不斷活躍增多,這其中多是一部分Java工程師投入了Python的懷抱。

一份2017年來自Python Developers Survey的數據顯示以下圖:

來源:Python Developers Survey

來源:Python Developers Survey

Python開發者佔比比較多的依次是美國、印度、中國(2017年的調查數據,僅供參考)

而到了2018年8月的時候已經成爲用戶量最多的編程語言。

Java的跨平臺性和穩定性,一直讓其成爲編程界的第一把交椅,實力地位不可撼動、但其冗長的語法讓不少開發者詬病,這也是Java開發者減小的緣由。

Python在不少領域都能紮根,如:Web開發、金融、運維、機器學習、AI等,歷來沒有一個語言能涉及如此多的領域,其餘因素包括:

  • 世界科技巨頭喜歡它,谷歌、Youtube、Facebook、IBM、NASA、Dropbox、雅虎、Mozilla、Quora,Instagram和Reddit只是技術領域的一些巨頭,它們將Python用於各類用途,而且一直在尋找Python工程師。例如,谷歌使用Python從AI算法到App Engine Cloud。同時,99.9%的Dropbox代碼採Python,包括服務器後端,桌面客戶端,網站控制器邏輯,API後端和分析工具;
  • Python普遍用於機器學習,隨着數據科學的興起,Python做爲科學語言的普及程度已經飆升,有許多用Python編寫的機器學習庫,以及大量的工具,能夠輕鬆地進行機器學習;
  • Python對於初學者來講是完美的,它是初學者程序員的絕佳選擇,由於它的語法簡單靈活,使用Python,您能夠輕鬆地開始使用,並當即着手構建可用的東西,早期的這種成就感是學習編碼的一個很是重要的因素,近五分之四的Python開發人員將其用做主要語言;
  • 它可能只是你須要的惟一語言,這是可能的,由於Python是一種多功能語言。根據Skill Up 2018開發人員技能報告,Python是一種腳本語言,它爲從筆測試者到DevOps工程師的每一個人提供了很大程度的控制—它容許他們解決問題,您可使用Python來構建網站,開發GUI,分析數據,將其餘語言「粘合」在一塊兒,這意味着您可使用這種語言來知足您的開發需求。

Python如此受廣大開發者歡迎,那麼具體Python開發者的薪酬有多少呢?會不會很誘人呢?

美國各州Python開發者平均薪酬大起底

到了2019年,美國哪一個州Python程序員工資最高呢?daxx網站大起底,以下圖所示:

來源:daxx.com

來源:daxx.com

來源:daxx.com

來源:daxx.com

研究顯示:

  • 根據Gooroo的說法,美國平均Python開發者薪水爲110,021美圓。紐約和加利福尼亞擁有最高的Python開發人員薪水——相應的122,135美圓和121,443美圓。
  • 另外一個有趣的事情是加利福尼亞州,紐約州,馬薩諸塞州和弗吉尼亞州在美國擁有最多的開放Python職位。

有一個大趨勢代表專門研究稀有技術的開發人員比那些知識更普遍的語言的人提供更多的工資,是否是相比Python,其餘偏冷門的編程語言工資更高呢?事實並不是如此,下面兩個圖表告訴你答案,Python是一個例外。

Python與其餘編程語言薪酬對比

​根據Gooroo的說法,Python開發人員的平均工資是每一年110,021美圓,這使得Python成爲該國第三大收入最高的編程語言,只有Java和Ruby領先。

Python開發人員的薪水與其餘編程語言比較圖

Python開發人員的薪水與其餘編程語言比較圖

觀察上圖能夠發現,Python開發者的薪酬在2017到2018年之間一直水漲船高,遙遙領先,不過到了2018到2019年有降低的趨勢,這也和上面Gooroo的調查一致,雖然如此,Python也居薪酬前列,Python作爲現今人工智能領域的工具,其火熱程度可見一斑。

以上從2004年到2018年,回顧了15年來各大語言的沉浮史,下面將對這些變化作總結,以古爲鏡,能夠知興廢。

總覽語言浮沉史

上面這幅圖,將2001年到2018年,各類語言在TIOBE的排名繪製成了折線圖,不難看出,從2004年起,Python一路披荊斬棘,走上神壇,而其餘語言,Visual Basic、C#等排名有下滑。

正如《琅琊榜》中的詩句所言:「遙映人間冰雪樣,暗香幽浮曲臨江,遍識天下英雄路,俯首江左有梅郎。」時勢造就英雄,現今AI有Python。

相關報道:

  • https://www.daxx.com/blog/development-trends/python-developer-salary-usa
  • https://www.youtube.com/watch?v=yL704C1PI4o

做者:寧靜

本文轉載自:大數據文摘

相關文章
相關標籤/搜索