新聞中心
如果我們把人類的現(xiàn)代文明看作一輛汽車,那么軟件開發(fā)行業(yè)就像汽車的發(fā)動機,編程語言就像發(fā)動機的燃料。那么問題來了,你應該學哪種編程語言?

十年的巴彥淖爾網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整巴彥淖爾建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“巴彥淖爾網(wǎng)站設計”,“巴彥淖爾網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
學習一門新的編程語言在時間、精力和腦力上的投入都非常巨大,但它可以提高你的軟件開發(fā)技能,并給你的職業(yè)生涯帶來提升,正如我在另一篇博客中所寫的:
博客網(wǎng)址:https://medium.com/@md.kamaruzzaman/5-reasons-to-learn-a-new-programming-language-in-2020-bfc9a4b9a763
通常,你應該選擇一種能有助于你事業(yè)發(fā)展的編程語言。另外,你還可以學習一門受歡迎程度正在上升的語言。
我對主流編程語言非常尊重。但在這里,我列出現(xiàn)代編程語言,這些語言可以提高你的工作效率,使你成為一個更好的開發(fā)人員。此外,我還將涉及更廣泛的領域:系統(tǒng)編程,應用程序開發(fā),網(wǎng)絡開發(fā),科學計算。
「現(xiàn)代編程語言」這個詞是模棱兩可的。許多人認為像 Python、JavaScript 這樣的語言是現(xiàn)代編程語言。但同時,他們認為 Java 是一種古老的編程語言。事實上,它們都出現(xiàn)在同一時間:1995 年。
大多數(shù)主流的編程語言是在上個世紀發(fā)展起來的,主要是在 20 世紀 70 年代(例如 C)、20 世紀 80 年代(例如 C++)、20 世紀 90 年代(例如 Java、Python、JavaScript)。這些語言不是為了利用現(xiàn)代軟件開發(fā)生態(tài)系統(tǒng)而設計的。盡管其中的許多語言中有改進特性,比如并發(fā)性和自我調整,但是它們也提供了向后兼容性,并且不能丟棄舊的、過時的特性。
在這一點上,Python 做的很好,它在 Python 2 和 Python 3 之間做了一個明確的劃分。這些語言通常提供 10 種方法來做同樣的事情,而不關心開發(fā)人員用起來是否方便。根據(jù) StackOverflow developer 的調查,大多數(shù)主流的舊編程語言都在「最可怕的語言」類別中占據(jù)了榜首:
我將以第一款 iPhone 發(fā)布的時候,也就是 2007 年 6 月 29 日作為新舊編程語言之間的界限時間點。在 iPhone 發(fā)布之后,一切都發(fā)生了變化。在這個列表中,我主要考慮 2007 年后的編程語言。
首先,開發(fā)現(xiàn)代編程語言是為了充分利用現(xiàn)代計算機硬件(多核 CPU、GPU、TPU)、移動設備、大數(shù)據(jù)集、快速網(wǎng)絡、容器和云。此外,大多數(shù)現(xiàn)代編程語言使用起來都更容易,主要體現(xiàn)在:
- 簡潔的代碼
- 內(nèi)置的并發(fā)支持
- 空指針安全
- 類型推斷
- 更簡單的特性集
- 低認知負荷
- 混合所有編程范例的優(yōu)秀特性
其次,列表中的許多編程語言都具有破壞性,將永遠改變軟件行業(yè)。其中一些已經(jīng)成為主流編程語言,而另一些則等待取得突破。至少作為第二種編程語言來學習這些語言是明智的。
在之前的一篇博文「20 個 2020 年軟件發(fā)展趨勢預測」中,我預測了 2020 年許多現(xiàn)代編程語言的突破:
文章網(wǎng)址:https://towardsdatascience.com/20-predictions-about-software-development-trends-in-2020-afb8b110d9a0
Rust
系統(tǒng)編程語言是由 C、C++等主導的,盡管它們可以完全控制程序和硬件,但它們?nèi)狈?nèi)存安全性。即使它們支持并發(fā)性,但是在比你保證并發(fā)安全性的情況下,使用 C/C++編寫并發(fā)程序是很有挑戰(zhàn)性的。其他流行的編程語言是可解釋性的語言,如 Java、Python、Haskell,它們提供安全性,但需要很多的運行時間或虛擬機。由于運行時很大,像 Java 這樣的語言不適合系統(tǒng)編程。
有很多人嘗試過將 C/C++的特性和 Haskell,Java 的安全性結合起來,但目前看來,Rust 是第一個實現(xiàn)這一目的的產(chǎn)品級編程語言。
Graydon Hoare 最早將 Rust 作為一個副產(chǎn)品開發(fā)出來。他受到了研究性的編程語言 Cyclone 的啟發(fā)。Rust 是開源的,Mozilla 與許多其他公司和社區(qū)一起進行語言開發(fā)。Rust 于 2015 年首次發(fā)布,很快就引起了社會各界的關注。在以前的文章中,我深入研究了 Rust,并論證了為什么在大數(shù)據(jù)域中使用 Rust 來代替 C++、Java 是一個更好的選擇:
文章網(wǎng)址:https://towardsdatascience.com/back-to-the-metal-top-3-programming-language-to-develop-big-data-frameworks-in-2019-69a44a36a842
主要特性:
- 通過所有權和借用的概念提供內(nèi)存安全性和并發(fā)安全性。
- 內(nèi)存安全和并發(fā)安全的編譯時間保證,即如果一個程序代碼編譯了,那么它既是內(nèi)存安全的,也沒有數(shù)據(jù)競爭。這是 Rust 最吸引人的特點。
- 它還提供了 ML,Haskell 的表示方式。Rust 具有不變的數(shù)據(jù)結構和函數(shù)式編程特性,提供函數(shù)式并發(fā)和數(shù)據(jù)并發(fā)。
- Rust 的速度非???。
- 由于沒有運行時,Rust 提供了對現(xiàn)代硬件(TPU、GPU、多核 CPU)的完全控制。
- Rust 有 LLVM 支持。
受歡迎程度:
自 2015 年首次亮相以來,Rust 一直被開發(fā)者所喜愛,并在 StackOverflow 開發(fā)者調查中連續(xù)四年(2016、2017、2018、2019)被評為很受歡迎的語言:
根據(jù) GitHub Octoverse 的說法,Rust 是僅次于 Dart 的增長第二快的語言:
流行編程語言網(wǎng)站 PyPl 也將 Rust 排在第 18 位,并呈上升趨勢:
對比它提供的功能集,難怪像微軟、亞馬遜、谷歌這樣的科技巨頭最終宣布將 Rust 作為一種長期的系統(tǒng)編程語言。
在過去的 5 年里,Rust 的吸引力每年都在增加:
主要用在:
- 系統(tǒng)編程
- 無服務器計算
- 業(yè)務應用程序
主要競爭語言:
- C
- C++
- Go
- Swift
Go
谷歌是比較大的網(wǎng)絡公司之一。本世紀初,Google 面臨著兩個擴展問題:開發(fā)擴展和應用程序擴展。開發(fā)擴展意味著他們不能通過增加開發(fā)人員來增加更多的功能,應用程序擴展意味著他們無法輕松開發(fā)一個可以擴展到「Google」級機器集群的應用程序。2007 年左右,谷歌開始創(chuàng)建一種新的「實用」編程語言,這種語言可以解決這兩個問題。在 Rob Pike(UTF-8)和 Ken Thompson(UNIX 操作系統(tǒng))中,兩個世界上最有才華的軟件工程師創(chuàng)建了一種新的語言。
2012 年,谷歌發(fā)布了 Go 編程語言的第一個官方版本。Go 是一種系統(tǒng)編程語言,但不同于 Rust。它也有一個運行時和垃圾收集器(幾兆字節(jié)),但與 Java 或 Python 不同的是,這個運行時包含了生成的代碼。最后,Go 生成一個本機二進制代碼,可以在沒有附加依賴項或運行時的情況下在計算機中運行。
主要特性:
- Go 具有一流的并發(fā)支持。它不通過線程和鎖提供「共享內(nèi)存」并發(fā)性,因為編程難度要大得多。相反,它提供了基于 CSP 的消息傳遞并發(fā)性。Go 使用「Goroutine」(輕量級綠色線程)和「Channel」進行消息傳遞。
- Go 最具殺傷力的特點是簡單,它是最簡單的系統(tǒng)編程語言,一個萌新軟件開發(fā)人員可以在幾天內(nèi)編寫出高效的代碼。一些比較大的云原生項目(Kubernetes,Docker)是用 Go 編寫的。
- GO 也有嵌入式垃圾收集器,這意味著開發(fā)人員不需要擔心像 C/C++那樣的內(nèi)存管理問題。
- 谷歌在 Go 上投入了大量資金,因此,Go 擁有大量的工具支持。對于新的 Go 開發(fā)人員來說,有一個龐大的工具生態(tài)系統(tǒng)。
- 通常,開發(fā)人員花費 20% 的時間編寫新代碼,80% 的時間維護現(xiàn)有代碼。由于其簡單性,Go 在語言維護領域表現(xiàn)出色。如今,Go 在商業(yè)應用程序中得到了廣泛的應用。
受歡迎程度:
自 Go 首次問世以來,軟件開發(fā)社區(qū)已經(jīng)欣然接受了它。在 2009 年(首次亮相)和 2018 年,Go 通過 TIOBE 指數(shù)進入編程語言名人堂排行榜。難怪 Go 的成功為 Rust 這樣的新一代編程語言鋪平了道路。
Go 已經(jīng)是一種主流編程語言。最近,Go 團隊宣布了「Go 2」的計劃,目的只是讓語言更加穩(wěn)固。
在幾乎所有流行編程語言比較網(wǎng)站,Go 的排名很高,超過了許多現(xiàn)有的語言。以下是 2019 年 12 月的 TIOBE 指數(shù)評級,Go 排名第 15 位:
根據(jù) Stackoverflow 的調查,Go 是十大很受歡迎的編程語言之一:
根據(jù) GitHub Octoverse 的統(tǒng)計,Go 也是增長最快的十大語言之一:
谷歌還顯示,過去五年里,Go 的吸引力不斷增強:
主要用例:
- 系統(tǒng)編程
- 無服務器計算
- 業(yè)務應用程序
- 云本機開發(fā)
主要競爭語言:
- C
- C++
- Rust
- Python
- Java
Kotlin
Java 是企業(yè)軟件開發(fā)中無可爭議的王者。近年來,Java 已經(jīng)受到了很多批評:冗長,需要大量的樣板編碼,復雜,容易發(fā)生意外。然而,關于 Java 虛擬機(JVM)的爭論很少。JVM 是軟件工程領域的杰作,它提供了一個經(jīng)過時間考驗的運行時。在上一篇文章中,我詳細討論了 JVM 的優(yōu)點:
文章網(wǎng)址:https://towardsdatascience.com/programming-language-that-rules-the-data-intensive-big-data-fast-data-frameworks-6cd7d5f754b0
多年來,像 Scala 這樣的 JVM 語言試圖回答 Java 的缺點,并希望成為更好的 Java,但是失敗了。最后,Kotlin 出現(xiàn)了,尋找更好 Java 的旅程似乎已經(jīng)結束。Jet Brains(流行 IDE IntelliJ 背后的公司)開發(fā)了 Kotlin,它運行在 JVM 上,解決了 Java 的缺點,并提供了許多現(xiàn)代特性。與 Scala 不同,Kotlin 比 Java 簡單得多,并在 JVM 中提供 Go 或 Python 式的開發(fā)效率。
谷歌宣布 Kotlin 是開發(fā) Android 的一流語言,并提高了 Kotlin 在社區(qū)的接受度。同樣流行的 Java 企業(yè)框架 Spring 也從 2017 年開始在 Spring 生態(tài)系統(tǒng)中支持 Kotlin。
主要特性:
- Kotlin 的 USP 是它的語言設計。我總是將 Kotlin 看作 JVM 上的 Go/Python,因為它的代碼簡潔明了。因此,Kotlin 的生產(chǎn)效率很高。
- 與許多其他現(xiàn)代語言一樣,Kotlin 提供了空指針安全、類型推斷等功能。
- 因為 Kotlin 在 JVM 中運行,因此你可以使用現(xiàn)存的 Java 庫龐大的生態(tài)系統(tǒng)。
- Kotlin 是開發(fā) Android 應用程序的一流語言,已經(jīng)超越 Java 成為開發(fā) Android 應用程序的第一語言。
- Kotlin 有 JetBrains 和開源的支持。所以,Kotlin 有很好的工具支持。
- 有兩個有趣的項目:Kotlin Native(將 Kotlin 編譯為本機代碼)和 Kotlin.js(Kotlin 轉換為 JavaScript)。如果他們成功了,那么 Kotlin 可以在 JVM 之外使用。
- Kotlin 還提供了一種編寫 DSL(領域特定語言)的簡單方法。
受歡迎程度:
自 2015 年首次發(fā)布以來,Kotlin 的受歡迎程度正在飆升。根據(jù) Stack Overflow,Kotlin 是 2019 年第四受歡迎的編程語言:
Kotlin 也是增長比較快的編程語言之一,排名第四:
熱門編程語言排名網(wǎng)站 PyPl 將 Kotlin 列為第 12 位很受歡迎的編程語言,并有很高的上升趨勢:
自從谷歌宣布 Kotlin 是開發(fā) Android 應用程序的一流語言以來,Kotlin 的受歡迎程度快速上升,如下圖所示:
主要用例:
- 企業(yè)應用程序
- Android應用程序開發(fā)
主要競爭語言:
- Java
- Scala
- Python
- Go
TypeScript
JavaScript 是一種優(yōu)秀的語言,但 2015 年以前的 JavaScript 有許多缺點。甚至著名的軟件工程師 Douglas Crockford 也寫過一本書《JavaScript: The Good Parts》,并暗示 JavaScript 有很多不好的部分。由于沒有模塊化和「回調地獄」,開發(fā)人員不喜歡維護特別大的 JavaScript 項目。
Google 甚至開發(fā)了一個平臺,將 Java 代碼轉換為 JavaScript 代碼(GWT)。許多公司或個人試圖開發(fā)更好的 JavaScript,例如 CoffeeScript、Flow、ClojureScript,但微軟的 TypeScript 無疑是其中最突出的。由 Delphi 的創(chuàng)建者 Anders Hejlsberg 領導的一組微軟工程師創(chuàng)建了 TypeScript,把它作為 JavaScript 的靜態(tài)類型的模塊化超集。
在編譯期間,TypeScript 被編譯為 JavaScript。2014 年首次發(fā)布以來,TypeScript 迅速引起社會關注。當時谷歌還計劃開發(fā)一個靜態(tài)類型的 JavaScript 超集。谷歌對 TypeScript 印象深刻,他們沒有開發(fā)新的語言,而是與微軟合作改進 TypeScript。
Google 使用 TypeScript 作為其 SPA 框架 Angular2+ 的主要編程語言。另外,流行的 SPA 框架 React 提供了對 TypeScript 的支持。另一個流行的 JavaScript 框架 Vue.js 聲明他們將使用 TypeScript 開發(fā)新的 Vue.js 3:
此外,node.js 的創(chuàng)建者 Ryan Dahl 決定使用 TypeScript 開發(fā)一個安全的 node.js 替代品 Deno。
主要特性:
- 與列表中的 Go 或 Kotlin 一樣,TypeScript 的主要特性是語言設計。憑借其清晰干凈的代碼,它是比較優(yōu)雅的編程語言之一。就開發(fā)人員的生產(chǎn)力而言,它與 JVM 上的 Kotlin 或 Go/Python 不相上下。TypeScript 是最高效的 JavaScript 超集。
- TypeScript 是 JavaScript 的強類型超集。它特別適合大型項目,并被正確地稱為「大規(guī)模的 JavaScript」。
- 「三大」單頁應用程序框架(Angular、React、Vue.js)為 TypeScript 提供了極好的支持。在 Angular 中,TypeScript 是首選的編程語言。在 React 和 Vue.js 中,TypeScript 越來越流行。
- 兩個比較大的科技巨頭:微軟和谷歌正在合作開發(fā) TypeScript,它得到了一個充滿活力的開源社區(qū)的支持。因此,對 TypeScript 的工具支持是很好的支持之一。
- 由于 TypeScript 是 JavaScript 的超集,它可以在 JavaScript 所有的地方運行。TypeScript 可以在瀏覽器、服務器、移動設備、物聯(lián)網(wǎng)設備和云上運行。
受歡迎程度:
開發(fā)人員喜歡 TypeScript 優(yōu)雅的語言設計。在 Stackoverflow 開發(fā)者調查中,它在很受歡迎的語言類別中與 Python 并列第二:
TypeScript 是增長很快的 Web 編程語言之一,在 GitHub Octoverse 上排名第五:
根據(jù) GitHub 貢獻,TypeScript 也進入了前 10 名(排名第 7):
TypeScript 在過去的一年中吸引了越來越多的眼球,這反映在 Google 趨勢上:
主要用例:
- Web 用戶界面開發(fā)
- 服務器端開發(fā)
主要競爭語言:
- JavaScript
- Dart
Swift
Steve Jobs 拒絕在 iOS 中支持 Java(和 JVM),因為他認為 Java 將不再是一種主要的編程語言。我們現(xiàn)在知道 Steve Jobs 對 Java 的評價是錯誤的,但是 iOS 仍然不支持 Java。相反,蘋果選擇 Objective-C 作為 iOS 中的主流編程語言。Objective-C 是一門很難掌握的語言。而且,它具備現(xiàn)代編程語言所要求的高開發(fā)效率。
在蘋果,Chris Lattner 和其他人開發(fā)了 Swift ,它是一種多范式、通用、可編譯的編程語言,為 Objective-C 提供了一種替代方案。Swift 的第一個穩(wěn)定版本于 2014 年發(fā)布。Swift 還支持 LLVM 編譯器工具鏈(也由 Chris Lattner 開發(fā))。Swift 與 Objective-C 代碼庫具有良好的互操作性,并且已經(jīng)成為 iOS 應用程序開發(fā)的主要編程語言。
主要特性:
- Swift 的一個致命優(yōu)點是它的語言設計。它使用更簡單、簡潔和干凈的語法,為 Objective-C 提供了一個更高效的替代方案。
- Swift 還提供了現(xiàn)代程序語言的特性:null 安全性。
- Swift 是一種編譯語言,它和 C++一樣快。
- Swift 支持 LLVM 編譯器工具鏈。因此,我們可以在服務器端甚至瀏覽器編程(使用 WebAssembly)中使用 Swift。
- Swift 提供自動參考計數(shù)(ARC)支持,這樣可以限制內(nèi)存管理不當。
受歡迎程度:
和許多其他現(xiàn)代語言一樣,開發(fā)人員也非常喜歡 Swift。根據(jù) StackOverflow 的調查,Swift 在很受歡迎的編程語言中排名第六:
在 TIOBE 的編程語言排行榜中,Swift 在 2019 年已升至第 10 位??紤]到這門語言才 5 歲,這是一個相當了不起的成就:
Google trends 還顯示,Swift 的受歡迎程度先急劇上升,隨后在最后幾次飽和中趨勢略有下降:
主要用例:
- iOS 應用程序開發(fā)
- 系統(tǒng)編程
- 客戶端開發(fā)(通過 WebAssembly)
主要競爭語言:
- Objective-C
- Rust
- Go
Dart
Dart 也是 Google 發(fā)布的編程語言。Google 是網(wǎng)絡和安卓領域的關鍵玩家,在網(wǎng)絡和應用程序開發(fā)領域開發(fā)自己的編程語言也就不足為奇了。
Dart 是一種支持強類型和面向對象編程的通用編程語言。Dart 也可以被轉換成 JavaScript,并且可以運行在 JavaScript 運行著的任何地方(例如 Web、移動、服務器)。
主要特性:
- 與 Go 一樣,Dart 也非常注重開發(fā)人員的工作效率。Dart 由于其干凈、簡單、簡潔的語法,極大地提高了生產(chǎn)效率,深受開發(fā)人員的喜愛。
- Dart 還提供強大的類和面向對象的編程。
- Dart 是少數(shù)支持 JIT 編譯和 AOT 編譯的語言之一。因此,Dart 可以以 JavaScript 運行時(V8 引擎)為目標,Dart 可以編譯成快速的本機代碼(AOT 編譯)。
- 跨平臺的原生應用開發(fā)平臺 Flutter 選擇 Dart 作為編程語言來開發(fā) iOS 和 Android 應用。從那以后,Dart 變得越來越流行。
- 與 Go 一樣,Dart 也有出色的工具支持和 Flutter 巨大的生態(tài)系統(tǒng)。Flutter 的日益流行只會增加 Dart 的流行程度。
受歡迎程度:
根據(jù) Github Octoverse,Dart 是 2019 年增長很快的編程語言,去年它的受歡迎程度翻了五倍:
根據(jù) TIOBE,Dart 居于第 23 位,僅僅 4 年時間,它已經(jīng)超越了其它很多編程語言:
它也是 StackOverflow 開發(fā)者調查中排名第 12 位的很受歡迎的編程語言之一:
除了 Flutter,Dart 的受歡迎程度在過去兩年也經(jīng)歷了巨大的改善,這一點在 Google 中很明顯:
主要用例:
- 應用程序開發(fā)
- 前端開發(fā)
主要競爭語言:
- JavaScript
- TypeScript
Julia
前面列出的編程語言都是由大公司開發(fā)的,但 Julia 不是。在技術計算中,通常使用 Python、Matlab 等動態(tài)語言。這些語言提供易于使用的語法,但不適合大規(guī)模的技術計算,他們使用 C/C++庫來處理 CPU 密集型任務。由于代碼是在兩種語言之間轉換的,因此總會有一些性能損失。
為了解決這個問題,麻省理工學院的一組研究人員計劃從頭開始創(chuàng)建一種新的語言,它利用了現(xiàn)代硬件的優(yōu)勢,并結合了其他語言的最佳部分。他們在麻省理工學院創(chuàng)新實驗室完成這項工作,還發(fā)表了以下宣言:
Julia 是一種動態(tài)的高級編程語言,為并發(fā)、并行和分布式計算提供一流的支持。Julia 的第一個穩(wěn)定版本于 2018 年發(fā)布,很快就得到了社區(qū)和業(yè)界的青睞。Julia 可以應用于科學計算、人工智能等許多領域,最終解決「兩種語言」的問題。
特性:
- 和 Rust 一樣,Julia 的主要特點是語言的設計。它試圖在不犧牲性能的情況下,結合現(xiàn)有的編程語言在高性能和科學計算中的一些最佳特性。到目前為止,它做得很好。
- Julia 是一種可選類型的動態(tài)編程語言。因此,Julia 很容易學習,而且效率很高。
- 它以多分派編程范式為核心。
- 它內(nèi)置了對并發(fā)、并行和分布式計算的支持。
- 它還為 I/O 密集型任務提供異步 I/O。
- 它速度非??欤梢杂糜谛枰獢?shù)百萬線程的科學計算。
受歡迎程度:
在許多領域,Julia 主要與 Python 競爭。由于 Python 是很流行的編程語言之一,Julia 成為主流還需要幾年時間。
Julia 相對年輕(只有一歲),但在 TIOBE index 中仍排在第 43 位:
Google Trends 也顯示出過去的時間里,程序員對 Julia 的穩(wěn)定興趣。
但考慮到 Julia 背后的功能集和公司數(shù)量,如 NSF、DARPA、NASA、Intel,Julia 何時取得突破只是個時間問題。
主要用例:
- 科學計算
- 高性能計算
- 數(shù)據(jù)科學
- 可視化
主要競爭語言:
- Python
- Matlab
分享名稱:現(xiàn)代編程語言哪家強?2020年,你或許應該了解這7門編程語言
文章分享:http://www.5511xx.com/article/dhshhpj.html


咨詢
建站咨詢
