Quantcast
Viewing all articles
Browse latest Browse all 585

Java 蟬聯 14 年「最多工程師用的語言」,為何會在 5 年之內被 Python 打敗?

Image may be NSFW.
Clik here to view.

【為什麼我們要挑選這篇文章】過去 15 年,Java 一直是最多人使用的程式語言,C 語言、PHP 皆無法撼動其地位;但在 2013 年,Python 突然竄起,在短短 5 年內,擠下 C 語言和 PHP,並在 2018 年打敗 Java,成為最多人使用的程式語言。

Python 憑什麼獲勝?2013 年發生了什麼事?(責任編輯:郭家宏)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至 jobs@fusionmedium.com

哪種程式語言最火熱?

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

一位名叫 PYPL 的網友很盡心地統計了從 2004 年到 2019 年,每個月使用人數最多的 15 種程式語言,並將這 15 年來的變化,製作成了一個 4 分鐘的影片。

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

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

在 4 分鐘的影片中,15 種程式語言在過去 15 年來的起伏變化一覽無餘,下面,請隨文摘菌(本文作者)一起,沿著時間線,回顧各種語言的變化史。

2004 年,位居榜首的四大金剛:PHP、C、C++、Javascript

故事開始於 2004 年 8 月,這一年,Java 用戶量最多,其次是 PHP、C/C++、Javascript。Python 在這時候還是個比較小眾的程式語言,用戶量並不多,排在第九位。

Image may be NSFW.
Clik here to view.

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

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 和 VB

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

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.
武林外史遊戲截圖

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

Image may be NSFW.
Clik here to view.

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

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

Image may be NSFW.
Clik here to view.

「真正的工程師用 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「爭執不下」,主要是由於 Delphi 9.0 版本於 2004 年末發佈,在語法方面:加入了 inline 及 for in loop 等功能;IDE 方面:把 Borland Delphi. Net、Borland Delphi Win32、Borland C#、Enterprise Core Objects 等環境和功能整合成一個開發工具,因此可以在 Win32 和 .NET 開發環境中切換或同時進行,這些功能的優化,使得 Delphi 的用戶數動態變化,與 Python 展開激烈爭鬥。

C# 的兩次「躍進」

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

Image may be NSFW.
Clik here to view.

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

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

Image may be NSFW.
Clik here to view.

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

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

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

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

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.

2006 年 web 2.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 年 5 月,Javascript 一直在與 C/C++ 較勁,不過最後還是 Javascript 穩居第三,Javascript 做為入口網站的必備語言,2007 年 5 月開始,千龍網、新浪網、搜狐網、網易網、TOM 網、中華網等 11 家網站舉辦「網上大講堂」活動,旨在透過網上授課的形式與網民互動,傳播科學文化知識,C/C++ 短期內的火爆,還是沒有撼動 Javascript 在網站開發方面的地位。

Image may be NSFW.
Clik here to view.

2008 年:C# 和 Python 的攀升

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

2008 年年初,Python 超越 Perl:

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.

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

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

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

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

歸功於 iPhone 的成功,Objective-C 排名向前

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

Image may be NSFW.
Clik here to view.

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 因為「雲端」興起,大舉超越 C/C++ 和 PHP

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

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.

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

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

OpenStack 傳送門

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

Image may be NSFW.
Clik here to view.

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

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

Image may be NSFW.
Clik here to view.

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

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

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

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

在 AI 的助推下,Python 終於得冠

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

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.

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

Image may be NSFW.
Clik here to view.
來源:Python Developers Survey

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

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

Image may be NSFW.
Clik here to view.

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

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

1. 世界科技巨頭喜歡它,Google、YouTube、Facebook、IBM、NASA、Dropbox、雅虎、Mozilla、Quora、Instagram 和 Reddi t 只是技術領域的一些巨頭,它們將 Python 用於各種用途,並且一直在尋找 Python 工程師。例如,Google 使用 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 開發者的薪資有多少呢?會不會很誘人呢?

美國各州 Python 開發者平均薪資

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

Image may be NSFW.
Clik here to view.
來源:daxx.com
Image may be NSFW.
Clik here to view.
來源:daxx.com

根據 Gooroo 的說法,美國平均 Python 開發者薪水為 110,021 美元(約新台幣 341 萬元)。紐約和加州擁有最高的 Python 開發人員薪水:122,135 美元(約新台幣 379 萬元)和 121,443 美元(約新台幣 377 萬元)。

另一個有趣的事情是加州,紐約州,馬薩諸塞州和弗吉尼亞州在美國擁有最多的開放 Python 職位。

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

Python 是美國薪水第三高的程式語言

根據 Gooroo 的說法,Python 開發人員的平均工資是每年 110,021 美元(約新台幣 341 萬元),這使得 Python 成為美國第三大收入最高的程式語言,只有 Java 和 Ruby 超越。

Image may be NSFW.
Clik here to view.
Python 開發人員的薪水與其他程式語言比較圖

Image may be NSFW.
Clik here to view.

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

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

時勢造英雄,AI 造 Python

Image may be NSFW.
Clik here to view.

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

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

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈4 分钟看尽 Top 编程语言 15 年沉浮:C#默 Java 泪,Python 终上位!〉。首圖來源:Pxhere CC Licensed)

更多關於程式的消息

教你如何用 Python 執行蒙地卡羅方法,證明圓周率等於 3.1415926
【內附影片、程式碼】微軟工程大師開課啦!用 44 個短片讓你速成 Python 技能
只會用 Excel 還不夠!七大主題,教你如何用 Python 優化數據分析效能


即刻免費報名《2019 邊緣運算論壇》

Image may be NSFW.
Clik here to view.
中美貿易戰引發台商回流潮,台廠搶先備戰 2020 年智慧工廠最新趨勢! 從 物聯網工控系統智慧化資安台廠佈局 ,《2019 邊緣運算論壇》四大主題一次破解。 即刻免費報名參加 10/18《2019 邊緣運算論壇》,掌握製造廠智慧升級下一步。 《點我馬上報名

Viewing all articles
Browse latest Browse all 585

Trending Articles