編程語言排行榜
TIOBE編程語言社區(qū)發(fā)布了2017 年11 月排行榜,Java、C、C ++ 三門編程語言依然占據(jù)前三。11月前5 排名中,最值得注意的是:Python 再次逆襲,已經(jīng)超越C#,上升到第4 的位置。
11月編程語言排行榜--TOP20 榜單
年初,Swift 曾一度進(jìn)入前十名,近期,Swift 卻不斷下滑,本月從上個月的第16 名掉到了如今的歷史最低第20 名,大有跌出20名之外的趨勢。作為iOS 開發(fā)的另一主流語言,Objective-C 也難逃厄運(yùn),從上個月的第17 名跌落至第19 名。
Python超越C# 排名第4
無論在哪個榜單中Python都是保持著非同尋常的增長速度,為什么Python 增長的這么快?眾所周知,Python 功能非常強(qiáng)大,標(biāo)準(zhǔn)庫的極其豐富,從Web 開發(fā)到數(shù)據(jù)科學(xué),再到DevOps,而且目前越來越多的應(yīng)用是使用Python 開發(fā)的。
除了Python,其他腳本語言都趨于下滑
除了一路攀升的Python,我們可以看出其他腳本語言幾乎不在前20 名行列。此前腳本語言因其易于編寫和易于運(yùn)行的特性,Perl,Python,PHP 和Ruby 等語言在當(dāng)時非常流行,但如今排名都趨于下滑,這是為什么呢?
腳本語言下滑的主要原因可能還是性能問題,當(dāng)然這可能取決于很多因素,問題是有多少情況下,性能問題才是致命的。比如腳本語言中的大多數(shù)錯誤都是運(yùn)行時發(fā)生的,盡管可以編寫所有類型的單元測試來彌補(bǔ)這一點,但是仍然無法避免出現(xiàn)這樣的錯誤。人們對質(zhì)量要求越來越高,如今幾乎沒有人敢用腳本語言編寫一個關(guān)鍵的大型軟件系統(tǒng)。
Java持續(xù)下滑
還有一點值得注意的是,縱觀整個排行榜發(fā)現(xiàn)如今大部分編程語言的市場份額幾乎都在不斷減少,最為明顯的當(dāng)屬排行第一的Java,從2016 年開始就持續(xù)下滑,本月下滑5.52%,下滑份額在前20 名中也是排行第一。
歷史排名(1987-2017):以下排名位次取決于12個月的平均值
我們看到這些語言的競相綻放。其實世界上有很多種程式語言,但能夠熬出頭被眾人采用的卻很少。程式語言可以說是軟體產(chǎn)業(yè)的基石,也是所有工程師每天都會用到的工具。
每一種語言都經(jīng)過多次修改,才能夠順應(yīng)潮流,讓軟體業(yè)有更豐富的面貌。雖如此,這些語言背后的推手卻鮮為人知,大家大概都知道Java之父是 James Gosling,但卻沒人知道Perl、Pascal、Lisp或Erlang的創(chuàng)造者是誰。以下是我為大家搜集的資料,希望他們的貢獻(xiàn)能夠被更多人知道。
十位發(fā)明了全球最通用10種程式語言的工程師
Java – James Gosling
Java 是由任職于升陽電腦的James Gosling 等人開發(fā),是目前最受歡迎且廣泛使用的語言之一。原本由升陽電腦負(fù)責(zé)開發(fā)和更新,但在2010 年升陽被甲骨文并購之后,就改由甲骨文負(fù)責(zé)。
Java的宗旨是「Write Once Run Anywhere(一次編寫,到處運(yùn)行)」,強(qiáng)調(diào)跨平臺的特性,也是這語言成功的重要因素。
C – Dennis Ritchie
Dennis MacAlistair Ritchie 是一位美國工程師,1967-1973年之間,在AT&T的貝爾實驗室開發(fā)。雖然開發(fā)時間較早,但至今仍保有競爭優(yōu)勢。
順帶一提,UNIX 作業(yè)系統(tǒng)也是他的作品之一。雖然多數(shù)人可能沒聽過他的名字,但在軟體界他的名氣可不輸給比爾蓋茲或賈伯斯。
C++ – Bjarne Stroustrup
Bjarne Stroustrup是一位丹麥工程師,后來也在貝爾實驗室工作。C++是C的下一代的概念。起初是以物件導(dǎo)向為主,后來加入許多模板和功能。由于接近C語言,速度又快,所以廣泛的被大家接受。
Python – Guido van Rossum
Python的設(shè)計宗旨就是希望程式碼可以被人類閱讀,不像一般語言難以理解,由荷蘭程式設(shè)計師 Guido van Rossum所開發(fā)。
在美國,多數(shù)的學(xué)生都學(xué)Java,但是近幾年,大家都改以Python為入門程式。常用在網(wǎng)頁應(yīng)用工具,Google、Yahoo和Spotify也都大量使用這種語言。如果你還在猶豫要學(xué)Java或是Python可以看看我們的另外一篇文章。
PHP – Rasmus Lerdorf
不管你有多討厭PHP,都無法忽視全世界有半數(shù)網(wǎng)頁都是使用這種語言。PHP原本只是Rasmus Lerdorf為了快速修編自己的網(wǎng)路履歷而開發(fā)的,PHP原本的全名也就是Personal Home Page。
當(dāng)時它的競爭對手是微軟的Active Server Pages (ASP)和Java Server Pages(JSP),顯然它贏了,并且占領(lǐng)超過2 千萬個網(wǎng)站和一百萬個網(wǎng)站伺服器。它很適合用在動態(tài)網(wǎng)頁上面,以及網(wǎng)頁伺服器的開發(fā)上面,Facebook、Wikipedia、Wordpress 和Joomla 也都是使用這個語言。
Perl–Larry Wall
Perl是一種高階、通用、直譯、動態(tài)的程式語言。1980年代中由Larry Wall 開發(fā),特別的是它不僅是個工程師,還是個語言學(xué)家,這項特質(zhì)在Perl中也可以發(fā)現(xiàn),也是它最大的優(yōu)勢。
Perl被廣泛的應(yīng)用在編寫CGI(通用網(wǎng)關(guān)接口)、資料庫應(yīng)用、網(wǎng)路/圖形設(shè)計上。IMDB、Amazon和Priceline就是以此為基礎(chǔ)。對Java程式設(shè)計師來說,能夠在履歷加上Perl或Python是很加分的,因為他們會需要腳本語言來完成維修、支援等特殊任務(wù)。
JavaScript – Brendan Eich
如果你問我過去5-10年之間誰是冠軍,我會回答「JavaScript」。過去他主攻在客戶端的程式撰寫,還建立了函示庫jQuery,近幾年往伺服器開發(fā)走,推出了Node.js。
它是一種基于原型、動態(tài)型別、弱型別的語言。1995年由網(wǎng)景的Brendan Eich所開發(fā)。主要在瀏覽器上運(yùn)行,不需要伺服器支援。代表成果有Gmail、Mozila Firefox。
Ruby–Yukihiro Matsumoto
1990年中,由松本行弘開發(fā)。Ruby是一種有趣的語言,如果你學(xué)過大概就會懂我的意思,它受到Perl、Ada、Lisp和Smalltalk影響,設(shè)計的宗旨就是希望能減少編程的時間,強(qiáng)調(diào)人性化的介面。
多半用在網(wǎng)頁應(yīng)用程式,像是Twitter、Hulu 和Groupon。
Lisp – John McCarthy
第二年長的高階語言,原名是List Processor(清單處理器),由John McCarthy 發(fā)明,此生致力于人工智慧研究。
Pascal – Niklaus Wirth
1968年由 Niklaus Wirth 發(fā)明,是一個小型、高校的語言,鼓勵結(jié)構(gòu)化編成和資料結(jié)構(gòu)的實踐。
不管你是使用哪種語言,都希望你知道這些東西不是憑空出現(xiàn)的,沒有他們,我們不會有今天的成就。