天天看點

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

導讀:哪種程式設計語言最火爆?

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

一位名叫PYPL的油管up主很盡心地統計了從2004年到2019年,每個月使用人數最多的15種程式設計語言,并将這15年來的變化,制作成了一個4分鐘的視訊。

作者:甯靜

來源:大資料文摘(ID:BigDataDigest)

在這部TOP15的程式設計語言榜單中,我們可以看到各種不同程式設計語言的流行度起伏。除了今天主流的Python、Java、Javascript、C++、R外,在這個榜單曾擁有姓名的還包括C#、php、objective-C、Matlab、 TypeScript、Go這些不那麼熟悉的名字。

而細細推敲每一次的榜單變動,在感歎各種程式設計語言更新疊代之快的同時,也看到了一幅完整的計算機和程式設計世界變遷史:比如2004年Javascript語言的一度火爆,得益于網遊産業的興起;而11年左右Objective-C的流行歸功于iPhone的成功,編寫iPhone應用程式的主要程式設計語言是Objective-C。

先來看看這個視訊?

在4分鐘的視訊中,15種程式設計語言在過去15年來的起伏變化一覽無餘,下面,我們一起沿着時間線,回顧各種語言的變化史。

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

故事開始于2004年8月,這一年,Java使用者量最多,其次是php,C/C++,Javascript。Python在這時候還是個比較小衆的程式設計語言,使用者量并不多,排在第九位。

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

位于榜首的這四大金剛是怎樣的語言,它們各自又有什麼樣的特點呢?先來科普一下:

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

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年初居榜首,實力地位不可撼動,而後随着各大程式設計語言的迅速崛起,這種形式逐漸發生着變化。

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

2004年9月到10月,Javascript一直在與Visual Basic(簡稱VB)語言争高下,2004年網遊市場風起雲湧,包括javascript在内的很多程式設計語言開始興起,使得JS一度超越Visual Basic位居第四。

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

▲三國策遊戲首頁

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

▲武林外史遊戲截圖

當然Visual Basic(簡稱VB)也不甘示弱,Visual Basic 是Microsoft公司開發的一種通用的基于對象的程式設計語言,其在發展過程中的第三方控件和GUI極大友善了資料通路和程式開發。在引入.NET Framework 後,2004年,微軟開放了Visual Studio 2005的測試版本(代号Whidbey),包含了.NET Framework2.0的測試版本有關,使用Visual Basic的使用者上升,再一次超越Javascript,出現了上圖中兩者“争執”的局面。

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

03 2004.12-2005.01:争執不休的Python和Delphi

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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 Win32、Borland C#、Enterprise Core Objects等環境和功能內建成一個開發工具,是以可以在Win32和.NET開發環境中切換或同時進行,這些功能的優化使得Delphi的使用者數動态變化,與Python展開激烈“争執”。

04 C#的兩次“躍進”

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

Perl是一種進階的、通用的、解釋的、動态的程式設計語言,Perl由LarryWall在20世紀80年代中期設計和開發,因其出色的文本處理能力而聲名鵲起,被廣泛用于CGI、資料庫應用程式、網絡程式設計和圖形程式設計。

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

C#是微軟公司在2000年6月釋出的一種新的程式設計語言,是第一個面向元件的程式設計語言,它借鑒了Delphi的一個特點,與COM(元件對象模型)直接內建,并且新增了許多功能及文法,而且它是微軟公司.NET windows網絡架構的主角。

那麼為什麼在一年内,它能超越其他兩種語言?2006年又有哪些不平凡呢?

将時間定位到2006年1月1日到2006年12月31日,在必應中搜尋C#語言,搜尋得到的結果如下:

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位
4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

站在後人的角度看當時人們對于C#語言的了解還挺有意思的,2006年人們對于C#語言還是充滿了疑問,産生了C#與C語言的差別,C#.NET的前景如何諸如此類的問題,同樣的在百度搜尋引擎中輸入C#語言得到的結果如下:

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位
4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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年成為程式員的“寵兒”。

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

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

06 2008年C#和Python的攀升

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

2008年年初,Python超越Perl:

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

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

Python的Web開發,隻需要下載下傳引入一些成熟的包,這些便利性是Python的優勢所在,同時3.0版本在後續的釋出,也吸引了一批開發者,使得Python在一年内兩次攀升。

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

07 Objective-C的開挂曆程

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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進行了整合。

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

Objective-C的流行歸功于iPhone的成功,編寫iPhone應用程式的主要程式設計語言是Objective-C。

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

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

12年到14年,“雲計算”這個詞出現在大批創業公司和巨頭的耳中,大家都在做IAAS,很多著名的雲計算開源平台都是基于Python開發的(如OpenStack),催生出不少的Python崗位,Python的開發者和使用者普遍增多。

OpenStack連結:

https://www.openstack.org/

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

2014年到2015年“大衆創業,萬衆創新”的口号響徹祖國的大江南北,什麼語言最适合快速搭建原型呢?Python再一次展露頭角,在2015年末成功超越php成為使用者量最多的第二大語言,緊逼之前一直穩居第一的Java,在這以後,Python使用者量逐漸增長。

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

R是屬于GNU系統的一個自由、免費、源代碼開放的軟體,它是一個用于統計計算和統計制圖的優秀工具,R是受S語言和Scheme語言影響發展而來,其最主要的特點是免費、開源、各種各樣的子產品十分齊全,在R語言中,提供了大量的第三方功能包,其内容涵蓋了從統計計算到機器學習、從金融分析到生物資訊、從社會網絡分析到自然語言處理、從各種資料庫各種語言接口到高性能計算模型,可以說功能十分齊全。

Python人數在快速增長的同時,為什麼有R語言超越Objective-C這一局面呢?

2016年3月,阿爾法圍棋與圍棋世界冠軍、職業九段棋手李世石進行圍棋人機大戰,以4比1的總比分獲勝,這足以使人們意識到“人工智能”不再是概念,解決一些此領域的問題,難免需要對資料做統計,運用機器學習的算法解決問題,R語言做為優秀開源的統計工具,也是在這一時期内使用者量波動攀升的原因。同樣Python中大量的科學計算包,也使得使用者量一度緊逼Java,Python有可能超越Java嗎?别急,時間會告訴我們答案。

10 Python終得桂冠

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

一份2017年來自Python Developers Survey的資料顯示如下圖:

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

▲來源:Python Developers Survey

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

而到了2018年8月的時候已經成為使用者量最多的程式設計語言:

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

Java的跨平台性和穩定性,一直讓其成為程式設計界的第一把交椅,實力地位不可撼動、但其冗長的文法讓很多開發者诟病,這也是Java開發者減少的原因。

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

  1. 世界科技巨頭喜歡它,谷歌、Youtube、Facebook、IBM、NASA、Dropbox、雅虎、Mozilla、Quora,Instagram和Reddit隻是技術領域的一些巨頭,它們将Python用于各種用途,并且一直在尋找Python工程師。例如,谷歌使用Python從AI算法到App Engine Cloud。同時,99.9%的Dropbox代碼采Python,包括伺服器後端,桌面用戶端,網站控制器邏輯,API後端和分析工具;
  2. Python廣泛用于機器學習,随着資料科學的興起,Python作為科學語言的普及程度已經飙升,有許多用Python編寫的機器學習庫,以及大量的工具,可以輕松地進行機器學習;
  3. Python對于初學者來說是完美的,它是初學者程式員的絕佳選擇,因為它的文法簡單靈活,使用Python,您可以輕松地開始使用,并立即着手建構可用的東西,早期的這種成就感是學習編碼的一個非常重要的因素,近五分之四的Python開發人員将其用作主要語言;
  4. 它可能隻是你需要的唯一語言,這是可能的,因為Python是一種多功能語言。根據Skill Up 2018開發人員技能報告,Python是一種腳本語言,它為從筆測試者到DevOps工程師的每個人提供了很大程度的控制—它允許他們解決問題,您可以使用Python來建構網站,開發GUI,分析資料,将其他語言“粘合”在一起,這意味着您可以使用這種語言來滿足您的開發需求。

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

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

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

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

▲來源:daxx.com

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

▲來源:daxx.com

研究顯示:

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

有一個大趨勢表明專門研究稀有技術的開發人員比那些知識更廣泛的語言的人提供更多的工資,是不是相比Python,其他偏冷門的程式設計語言工資更高呢?事實并非如此,下面兩個圖表告訴你答案,Python是一個例外。

12 Python與其他程式設計語言薪酬對比

根據Gooroo的說法,Python開發人員的平均工資是每年110,021美元,這使得Python成為該國第三大收入最高的程式設計語言,隻有Java和Ruby領先。

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

▲Python開發人員的薪水與其他程式設計語言比較圖

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

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

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

13 總覽語言浮沉史

4'43''視訊看完程式設計語言排行榜15年沉浮:Python這樣上位

上面這幅圖,将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

有話要說?

Q: 你最喜歡的程式設計語言是哪個?

歡迎留言與大家分享