現代程式語言大 PK,2020 年開發者關心的七大程式語言!

2020-12-16 站長之家

聲明:本文來自於微信公眾號CSDN(ID:CSDNnews),作者:Md Kamaruzzaman,授權站長之家轉載發布。

【CSDN 編者按】「如果我們把人類文明想像成汽車的話,那麼軟體開發行業就相當於汽車的引擎,程式語言就像引擎的燃料。」作為一名開發者,需跟隨技術潮流的發展來學習新技術。 2020 年,你有計劃新學一門程式語言嗎?

本文作者從一名架構師的角度,詳細分析了 7 種現代程式語言的優點與功能,你對哪門語言最感興趣呢?

作者 | Md Kamaruzzaman,軟體架構師

譯者 | 彎月,責編 | 伍杏玲

出品 | CSDN(ID:CSDNnews)

以下為譯文:

如果我們把人類文明想像成汽車的話,那麼軟體開發行業就相當於汽車的引擎,而程式語言就像引擎的燃料。作為一名開發者,今年你應該學習哪種程式語言呢?

學習一種新的程式語言無疑是時間、精力和智力上的巨大投資, 但是學習一種新的程式語言可以提升你的軟體開發技術力,促進你的職業發展。

在這裡,我將獻上一份現代程式語言的列表,這些語言不僅有助於提高你的生產力,而且還可以促進你的職業發展,並讓你成長為更優秀的開發人員。這份列表還涵蓋了非常廣泛的領域:系統編程、應用程式開發、Web開發、科學計算等。

什麼是現代程式語言?

「現代程式語言」這個說法本身就很含糊。許多人認為Python和JavaScript等語言是現代程式語言,還認為Java是一種古老的程式語言。實際上,這幾種語言大約在同一時間出現: 1995 年。

大多數主流程式語言是上個世紀開發的:七十年代(如C)、八十年代(如C ++)、九十年代(如Java、Python、JavaScript)。這些語言在設計上並沒有考慮現代軟體開發生態系統:多核CPU、GPU、快速的網際網路、行動裝置、容器和雲等。儘管許多語言中的許多功能都已進行一些改進,如並發等,而且在不斷調整自己以適應時代,但它們依然保留了向後兼容性,無法拋棄那些過時的舊功能。

在這方面,Python就做得很好(某種意義上也未必是好事),Python2 和Python3 兩者之間有明確的分界線。很多語言常常會為解決同一個問題提供十餘種的方法,同時又沒有顧及到開發人員的感受。根據StackOverflow的開發人員調查,大多數舊時的主流程式語言在「最可怕的語言」排名都名列前茅:

如果非要在新舊程式語言之間劃個界限的話,那麼應該是 2007 年 6 月 29 日,也就是第一臺iPhone發行的時候。在這之後,程式語言界發生了很大變化。因此,在本文的列表中,我只考慮 2007 年以後的程式語言。

為什麼要學習新語言?

首先,現代程式語言充分利用現代計算機硬體(多核CPU、GPU、TPU)、行動裝置、大量數據、高速網際網路、容器和雲的優勢。大多數現代程式語言會關注開發人員的體驗,比如:

  • 簡潔明了的代碼(減少樣板代碼)

  • 內置的並發支持

  • 空指針安全

  • 類型推斷

  • 簡潔的功能集

  • 降低學習難度

  • 融合所有編程範例的最佳功能

本文列表的許多程式語言都帶有革命性地變化,並將永久地改變軟體行業。一些已成為主流程式語言,還有一些則有望取得突破。因此選擇這些語言作為第二種程式語言是明智的做法。

Rust

一直以來,系統程式語言環境主要由靠近硬體的語言(如C、C ++等)主導。儘管它們可以完全控制程序和硬體,但是它們缺乏內存安全性。即使它們支持並發,使用C/C ++編寫並發程序也很困難,因為沒有並發安全性。還有一些流行的程式語言是解釋性語言,例如Java、Python、Haskell。這些語言具備安全性,但需要龐大的運行時或虛擬機。由於它們的運行時間長,因此Java等語言不適合於系統編程。

許多人曾嘗試將C/C ++的功能與Java、Haskell的安全性相結合。然而,Rust才是第一個成功實現了這一點的程式語言。

Graydon Hoare在業餘項目中開發出了Rust,他的靈感來自研究程式語言Cyclone。Rust是開源的,由Mozilla與許多其他公司和社區一起領導這門語言的開發。Rust於 2015 年首次發布,並很快引起了社區的關注。

主要特徵:

  • 通過所有權和借用概念提供內存安全和並發安全。

  • 內存安全和並發安全在編譯時確保,即如果程序代碼可以編譯,那麼內存既安全又沒有數據競爭。這是Rust最吸引人的功能。

  • 它還提供了Haskell中元編程的表現力。憑藉不可變的數據結構和功能編程功能,Rust提供了功能並發和數據並發。

  • Rust的速度非常快,純Rust的性能甚至優於純C。

  • 在沒有運行時的情況下,Rust可以完全控制現代硬體(TPU、GPU、多核CPU)。

  • Rust具有LLVM支持。因此,Rust提供一流的與WebAssembly的互操作性,而且Web代碼也非常快。

流行度:

自 2015 年首次亮相以來,Rust已被開發人員廣泛接受,並在StackOverflow開發人員調查中連續四年(2016、2017、2018、2019)被評選為最受歡迎的語言:

根據GitHub Octoverse的調查,Rust是運行速度第二快的語言,僅次於Dart:

此外,根據程式語言流行度排名網站PyPl的數據,Rust排名第 18 位,並呈上升趨勢:

對比Rust提供的功能集,我們就會明白為什麼微軟、亞馬遜、Google等科技巨頭相繼宣布投資Rust作為一種長期的系統程式語言。

根據Google統計的趨勢,在過去的 5 年中,Rust的熱度每年都在增加。

主要用途:

主要競爭對手:

Go

在本世紀初,Google面臨兩個擴展問題:開發擴展和應用程式擴展。開發擴展問題指的是他們不能僅通過投入開發人員的方式來添加更多功能。應用程式擴展問題則指他們無法開發出一款能夠擴展到Google級別的計算機集群的應用程式。

所以在 2007 年左右,Google創建了一種新的程式語言,用於解決這兩個擴展問題。兩位才華橫溢的Google軟體工程師Rob Pike(UTF-8)和Ken Thompson(UNIX OS)創建了一種新語言。

2012 年,Google正式發布了第一版的Go程式語言。Go是一種系統程式語言,但與Rust不同,它還具有Runtime和垃圾收集器(幾兆字節)。但是與Java或Python不同,這個Runtime包含了生成的代碼。最後,Go生成了一個本地的二進位代碼,可以在沒有附加依賴項或運行時的情況下在計算機中運行。

主要特徵:

  • Go具有一流的並發支持。Go不通過線程和鎖提供「共享內存」並發性,因為編程難度太大。相反,它提供了基於CSP的消息傳遞並發性(基於Tony Hoare的論文)。Go使用「 Goroutine」(輕量級綠色線程)和「 Channel」進行消息傳遞。

  • Go最大的殺手級功能是:簡單,它是最簡單的系統程式語言。新手軟體開發人員只需幾天就可以編寫高效的代碼,就像Python一樣。有些大規模的雲原生項目(如Kubernetes、Docker)都是用Go編寫的。

  • Go還內置了垃圾收集器,這意味著開發人員無需擔心C/C++中的內存管理問題。

  • Google投入了大量資金打造Go。因此Go擁有大量的工具支持。新手Go開發人員擁有大量的工具生態系統。

  • 一般,開發人員80%的時間都花在了維護現有代碼上,用於編寫新代碼的時間只佔20%。由於其簡單性,Go在語言維護方面表現出色。如今,Go在業務應用程式中大量使用。

流行度:

Go一問世就受到了軟體開發社區熱烈的歡迎。 2009 年- 2018 年,Go一直在TIOBE程式語言排行榜上徘徊。Go的成功為Rust等新一代程式語言鋪平了道路。

如今,Go已是主流程式語言。最近,Go團隊宣布了有關「Go 2」的消息,這門程式語言的發展會更加穩固。

幾乎在所有的流行程式語言排行榜中,Go的排名都很高,已超過許多現有的語言。自 2019 年 12 月以來,在TIOBE指數排名中,Go名列第 15 位:

根據StackOverFlow的調查,十大最受喜愛的程式語言中,Go也位列其中:

此外,根據GitHub的數據,Go也是十大發展最迅速的語言之一:

Google趨勢顯示,在過去的 5 年中,Go的熱度每年都在增加。

主要用途:

  • 系統編程

  • Serverless 計算

  • 商業應用

  • 雲原生開發

主要競爭對手:

相關焦點

  • 現代程式語言哪家強?2020年你或許應該了解這7門程式語言
    另外,你還可以學習一門受歡迎程度正在上升的語言。我對主流程式語言非常尊重。但在這裡,我列出現代程式語言,這些語言可以提高你的工作效率,使你成為一個更好的開發人員。此外,我還將涉及更廣泛的領域:系統編程,應用程式開發,網絡開發,科學計算。「現代程式語言」這個詞是模稜兩可的。許多人認為像 Python、JavaScript 這樣的語言是現代程式語言。
  • 2020 年七大 AI 程式語言大盤點
    接下來,我將列出一些最受歡迎的人工智慧程式語言,一起看下:PythonPython是有史以來最強大的程式語言。——Pau DuboisPython誕生於1991年。據一項民意調查顯示,超過57%的開發人員更願意選擇Python,而不是C++作為開發人工智慧解決方案的程式語言。
  • TIOBE:2020年4月全球程式語言排行榜 少兒程式語言Scratch入圍
    TIOBE 已公布 2020 年 4 月的程式語言排行榜。這期的標題主角是 Scratch,它是 MIT Media 實驗室 Lifelong 幼兒園團隊的一個項目,其通過點擊並拖拽的方式可視化完成編程,幫助兒童培養編程思維,學會創造性地思考、系統地推理和協同工作。
  • 現代程式語言終極測評:概述篇
    因此,我希望通過這篇文章,跟大家深入討論和測評現代程式語言,發現各種語言背後的優缺點。  在這篇文章中,我會嘗試對較為常見的現代程式語言做出客觀且公正的概述與分析,測評排名順序從一顆星到五顆星(註:半顆星歸至一顆星分類)。  值得注意的是,沒有一種程式語言能夠完美地適用於所有用例。
  • 開發者調查顯示:谷歌Go是2020年最受歡迎的程式語言
    開發者調查顯示:谷歌Go是2020年最受歡迎的程式語言 站長之家(ChinaZ.com) 5月9日 消息:哪種程式語言最受開發者青睞呢?
  • 2020 年 7 月程式語言排行榜
    2020年最新的常問企業面試題大全以及答案免費領取大家想看什麼類型的文章呢留言告訴亦夏哦,亦夏會在一周內進行推送~TIOBE 2020 年 7 月份的程式語言排行榜已經公布,官方的標題是:R 語言的排名達到了歷史最高位。R 語言一種自由軟體程式語言與操作環境,主要用於統計分析、繪圖、數據挖掘。
  • 2020年6 月程式語言排行榜
    轉載來自:菜鳥教程 TIOBE 2020 年 6 月份的程式語言排行榜已經公布,官方的標題是:Rust 第一次進入榜單前 20。 在上周 Stack Overflow 公布了 2020 開發者調查報告中,Rust 在開發者最喜愛的程式語言中排行榜首:
  • TIOBE 1 月程式語言:Python 摘得 2020 年度程式語言!
    【CSDN 編者按】恭喜 Python 榮獲 2020 年度程式語言稱號,這也是自 TIOBE 榜單發布以來,首款程式語言四次獲得該獎項。整理 | 蘇宓程式語言社區 TIOBE 最新發布了 1 月程式語言排行榜。
  • TIOBE 7月程式語言流行榜
    在統計類程式語言的pk中,python似乎已穩操勝券,但R語言近一年持續的排名上升(2019年9月,R語言排名第20位),似乎暗示這場統計語言之戰似乎並未塵埃落定。另外,還有兩種語言的走勢變化同樣有趣:相較上月,c語言排名上升一位至第一名,力壓Java語言;Rust語言首次進入榜單前二十。
  • TIOBE 1 月程式語言:Python 摘得 2020 年度程式語言
    整理 | 蘇宓來源 | CSDN(ID:CSDNnews)程式語言社區 TIOBE 最新發布了 1 月程式語言排行榜。這次揭曉了 2020 年度最受歡迎的程式語言,其中,Python 以 2.01% 的正增長榮獲 2020 年度 TIOBE 程式語言獎!C++ 以微弱差距無緣冠軍,憑藉 1.99% 的增長率獲得了亞軍。
  • 現代程式語言終極測評:一星篇
    ——C++語言之父本賈尼·史特勞斯特盧普(Bjarne Stroustrup)  垃圾回收沒有添加進C++中,手動進行內存管理十分容易出錯。開發者需要手動釋放內存以及分配內存。我從不懷念自己使用不帶垃圾回收語言的編程日子,數不勝數的代碼錯誤如今在支持垃圾回收的程式語言中能被輕易避免。
  • 2017年最佳程式語言Top10
    2017年最值得學習的程式語言TOP10是哪些?年輕人學習程式語言的熱情是比較高的,所以這個問題在學習計算機科學或者其他程式語言相關專業的同學們中比較常見。簡單說說計算機程式語言的定義,它是一種人類可以理解的,用於向計算機發出指令或者編寫程序的語言。
  • 2020年6大程式語言趨勢,三分鐘速解
    這個世界上,變化是不可避免的,隨著程式語言繼續傾向於針對雲,微服務,大數據和機器學習中的新趨勢進行優化,每種語言都形成了獨特的發展趨勢。今天就給大家講講2020年6大程式語言趨勢。雖然每個版本的改動都很小,但是可以看到,語言在穩步地向前發展。此外,它還實現了預覽功能的想法,這在 switch 表達式方面效果非常好,對開發人員來說這個新功能很不錯。Evans 表示,2020 年將是驗證 2019 年 Java 發展趨勢的一年:我們離 Valhalla 項目發布正式版還有多遠?交付模式匹配和代數數據類型的增量策略是否能夠獲得回報?
  • 2020年6大程式語言趨勢,三分鐘速解
    這個世界上,變化是不可避免的,隨著程式語言繼續傾向於針對雲,微服務,大數據和機器學習中的新趨勢進行優化,每種語言都形成了獨特的發展趨勢。今天就給大家講講2020年6大程式語言趨勢。
  • 2020年9月程式語言排行:C語言蟬聯榜首
    IOBE 已公布 2020 年 9 月的程式語言排行榜。在本期榜單中指數沒有明顯的變化,值得注意的是,java佔有率繼續下降,從上個月的14.43%降到13.48%.回到2003,程式語言C++是真正的贏家。它在2003年8月達到了17.53%的峰值,並成為2003年程式語言獎的獲得者。從那時起,C++就走下坡路。
  • 開發者眼中的程式語言……
    本文為大家簡述下當前流行的八款入門神器,看看各位開發者眼中的程式語言是怎樣的。 對於初學者來說,在進行JavaScript編碼過程中能夠接受系統的編程思想培養,為日後學習其它語言打下基礎。而在當下,Node.js的流行也為JavaScript增色不少。 網友chaiguy的看法: 「於我看來,初學者應該先從JavaScript學起。它簡單易學,面向對象,高容錯性,重要的是它不會像其它醜陋的靜態類程式語言那樣脆脆鯊。」
  • 2020年度最熱門的程式語言盤點
    如今,廣大用戶更喜歡利用行動應用程式,來獲取他們所關心的產品與信息。而行動應用程式也成為了企業在市場競爭中,保持領先地位的成功關鍵。據某項調查預測:到2020年,全英國移動應用的用戶下載數量將增加到200億次。當然,隨著區塊鏈和物聯網技術的不斷集成與迭代,行動應用程式的高使用率反而催生了該領域開發服務的需求猛增。工欲善其事,必先利其器。
  • 2020年8月程式語言排行榜
    TIOBE已經發布2020年8月程式語言排行榜,相較於7月份,前十排名變化不大,唯第程式語言排名 Top1 — 20C語言自從5月份奪得程式語言排名榜第一,現已連續4個月保持在第一的位置,且市場份額也是不斷地擴大
  • 2020年頂級大數據程式語言有哪些?
    目前全世界的開發人員,編碼人員和軟體工程師都使用許多程式語言。根據一項調查,計算機語言的總數總計達9000種。但是,如今,其中只有50種程式語言是首選。程式語言會根據大數據和AI等行業而有所不同。科技市場由大數據主導,因此,如果作為大數據專業人士,必須學習最重要的程式語言。大數據中最喜歡的程式語言:PythonPython在全球擁有500萬用戶,目前被其視為開發人員最常用的程式語言之一。
  • 後端程式語言之爭:誰將成為2021年最好的後端程式語言?
    讓我們從JavaScript、Python和Go中選擇出2021年將會使用的程式語言吧。在討論每種語言的優點之前,先看一些線上調查及其結果。2019年的調查中,Python領先,JavaScript和Go分別排在第二和第三位。而Go作為一種快速發展的語言,人氣瘋漲。在我看來,2020年的統計結果可能會發生變化。