大資料文摘出品在不同的時代,這個問題也有著不同的答案,而一部程式語言的使用人數變遷史,實際上也是一部計算機世界的成長編年史。一位名叫PYPL的油管up主很盡心地統計了從2004年到2019年,每個月使用人數最多的15種程式語言,並將這15年來的變化,製作成了一個4分鐘的影片。在這部TOP15的程式語言榜單中,我們可以看到各種不同程式語言的流行度起伏。除了今天主流的Python、Java、Javascript、C++、R外,在這個榜單曾擁有姓名的還包括C#、php、objective-C、Matlab、 TypeScript、Go這些不那麼熟悉的名字。而細細推敲每一次的榜單變動,在感嘆各種程式語言更新迭代之快的同時,也看到了一幅完整的計算機和程式設計世界變遷史:比如2004年Javascript語言的一度火爆,得益於網遊產業的興起;而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的平臺獨立性是其在企業界取得成功的支柱之一。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 Win32、Borland C#、Enterprise Core Objects等環境和功能整合成一個開發工具,因此可以在Win32和.NET開發環境中切換或同時進行,這些功能的最佳化使得Delphi的使用者數動態變化,與Python展開激烈“爭執”。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在網站開發方面的地位。08年除了C++和Javascript相持不下外,也同樣見證了Python的兩次逆襲和C#第一次超越C/C++。2008年10月,Python超越Visual Basic,僅次於C/C++:2008年到底發生了什麼?使得這兩種語言能夠脫穎而出呢?08年,汶川大地震、北京奧運會等重大事件促進網路媒體提升主流媒體價值,同時中國網民躍居世界第一,雖然受到金融危機的影響,網際網路的浪潮已經是大勢所趨。Python的Web開發,只需要下載引入一些成熟的包,這些便利性是Python的優勢所在,同時3.0版本在後續的釋出,也吸引了一批開發者,使得Python在一年內兩次攀升。至於C#的攀升,不難理解,遊戲市場和桌面應用的持續發酵,騰訊於2008年新推出的《穿越火線》等一系列遊戲在催生著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。2013年5月,Python第一次超越C/C++成為排名第四的語言。到了2013年12月的時候,Python已經超越C#,躍居第三。2013年再一次見證了Python這匹“黑馬”的實力,時代造就英雄,這背後是時代使然,也是必然。12年到14年,“雲端計算”這個詞出現在大批創業公司和巨頭的耳中,大家都在做IAAS,很多著名的雲端計算開源平臺都是基於Python開發的(如OpenStack),催生出不少的Python崗位,Python的開發者和使用者普遍增多。OpenStack連結:
2014年到2015年“大眾創業,萬眾創新”的口號響徹祖國的大江南北,什麼語言最適合快速搭建原型呢?Python再一次展露頭角,在2015年末成功超越php成為使用者量最多的第二大語言,緊逼之前一直穩居第一的Java,在這以後,Python使用者量逐漸增長。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嗎?別急,時間會告訴我們答案。2018年2月到5月,使用Python語言的人數不斷增多,大有趕上Java的趨勢。到了2018年6月,Python已經超越Java成為使用者量最多的語言。2018年7月到8月,Python居榜首後,Java使用者量不斷減少,而其使用者量的不斷活躍增多,這其中可能是一部分Java工程師投入了Python的懷抱。一份2017年來自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開發者的薪酬有多少呢?會不會很誘人呢?到了2019年,美國哪個州Python程式設計師工資最高呢?daxx網站大起底,如下圖所示:來源:daxx.com
來源:daxx.com
- 根據Gooroo的說法,美國平均Python開發者薪水為110,021美元。紐約和加利福尼亞擁有最高的Python開發人員薪水——相應的122,135美元和121,443美元。
- 另一個有趣的事情是加利福尼亞州,紐約州,馬薩諸塞州和弗吉尼亞州在美國擁有最多的開放Python職位。
有一個大趨勢表明專門研究稀有技術的開發人員比那些知識更廣泛的語言的人提供更多的工資,是不是相比Python,其他偏冷門的程式語言工資更高呢?事實並非如此,下面兩個圖表告訴你答案,Python是一個例外。根據Gooroo的說法,Python開發人員的平均工資是每年110,021美元,這使得Python成為該國第三大收入最高的程式語言,只有Java和Ruby領先。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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562039/viewspace-2655143/,如需轉載,請註明出處,否則將追究法律責任。