現(xiàn)代編程語(yǔ)言,這些語(yǔ)言可以提高你的工作效率,使你成為一個(gè)更好
2021-08-05
博客網(wǎng)址:@md./5--to--a-new---in-2020-
通常,您應(yīng)該選擇一種可以幫助您職業(yè)發(fā)展的編程語(yǔ)言。此外,您還可以學(xué)習(xí)一種流行度正在上升的語(yǔ)言。
我非常尊重主流編程語(yǔ)言。但是在這里,我列出了可以提高您的工作效率并使您成為更好的開(kāi)發(fā)人員的現(xiàn)代編程語(yǔ)言。此外,我還將涵蓋更廣泛的領(lǐng)域:系統(tǒng)編程、應(yīng)用程序開(kāi)發(fā)、網(wǎng)絡(luò)開(kāi)發(fā)、科學(xué)計(jì)算。
“現(xiàn)代編程語(yǔ)言”一詞含糊不清。很多人認(rèn)為語(yǔ)言之類的,都是現(xiàn)代編程語(yǔ)言。但同時(shí),他們認(rèn)為 Java 是一種古老的編程語(yǔ)言。事實(shí)上,它們都是同時(shí)出現(xiàn)的:1995年。
大多數(shù)主流編程語(yǔ)言都是在上個(gè)世紀(jì)發(fā)展起來(lái)的,主要是1970年代(例如C)、1980年代(例如C++)和1990年代(例如Java、,)。這些語(yǔ)言并非旨在利用現(xiàn)代軟件開(kāi)發(fā)生態(tài)系統(tǒng)。盡管這些語(yǔ)言中的許多都具有改進(jìn)的特性,例如并發(fā)性和自調(diào)優(yōu),但它們也提供了向后兼容性,不能丟棄舊的、過(guò)時(shí)的特性。
在這一點(diǎn)上cnbeta 編程語(yǔ)言,它做得很好,它對(duì) 2 和 3 進(jìn)行了明確的劃分。這些語(yǔ)言通常提供 10 種方法來(lái)做同樣的事情,無(wú)論是否方便開(kāi)發(fā)人員使用。據(jù)調(diào)查,大部分主流老式編程語(yǔ)言都在“最可怕的語(yǔ)言”類別中名列前茅:
圖片來(lái)源:
我將發(fā)布第一段,即2007年6月29日作為新舊編程語(yǔ)言分界的時(shí)間點(diǎn)。發(fā)布之后,一切都變了。在這個(gè)列表中,我主要考慮2007年之后的編程語(yǔ)言。
首先,現(xiàn)代編程語(yǔ)言的開(kāi)發(fā)是為了充分利用現(xiàn)代計(jì)算機(jī)硬件(多核CPU、GPU、TPU)、移動(dòng)設(shè)備、大數(shù)據(jù)集、快速網(wǎng)絡(luò)、容器和云。此外,大多數(shù)現(xiàn)代編程語(yǔ)言都更易于使用,主要體現(xiàn)在:
其次,名單上的許多編程語(yǔ)言都是顛覆性的,將永遠(yuǎn)改變軟件行業(yè)。其中一些已經(jīng)成為主流編程語(yǔ)言,而另一些則在等待突破。學(xué)習(xí)這些語(yǔ)言至少作為第二編程語(yǔ)言是明智的。
在之前的一篇博文“2020年軟件開(kāi)發(fā)趨勢(shì)的20個(gè)預(yù)測(cè)”中,我預(yù)測(cè)了2020年現(xiàn)代編程語(yǔ)言的許多突破:
文章網(wǎng)址:
銹
圖片來(lái)源:
系統(tǒng)編程語(yǔ)言以C、C++等為主,雖然可以完全控制程序和硬件,但缺乏內(nèi)存安全。即使它們支持并發(fā),在保證并發(fā)安全的同時(shí),用C/C++編寫(xiě)并發(fā)程序比你更具有挑戰(zhàn)性。其他流行的編程語(yǔ)言是可解釋語(yǔ)言,如Java、Java等,它們提供安全性但需要大量運(yùn)行時(shí)或虛擬機(jī)。由于運(yùn)行時(shí)較大,Java等語(yǔ)言不適合系統(tǒng)編程。
許多人嘗試將 C/C++ 的特性與 Java 的安全性結(jié)合起來(lái),但似乎 Rust 是第一個(gè)實(shí)現(xiàn)這一目標(biāo)的產(chǎn)品級(jí)編程語(yǔ)言。
Rust 最初是作為副產(chǎn)品開(kāi)發(fā)的。他受到了研究編程語(yǔ)言的啟發(fā)。 Rust 是開(kāi)源的,并與許多其他公司和社區(qū)一起開(kāi)發(fā)該語(yǔ)言。 Rust 于 2015 年首次發(fā)布,并迅速引起了各界的關(guān)注。在上一篇文章中,我深入研究了 Rust,并演示了為什么在大數(shù)據(jù)領(lǐng)域使用 Rust 而不是 C++ 和 Java 是更好的選擇:
文章網(wǎng)址:
主要特點(diǎn):
受歡迎程度:
Rust 自 2015 年出道以來(lái),深受開(kāi)發(fā)者喜愛(ài),連續(xù)四年在開(kāi)發(fā)者調(diào)查中被評(píng)為最受歡迎(2016、2017、2018、2019)語(yǔ)言:
圖片來(lái)源:
據(jù)統(tǒng)計(jì),Rust 是僅次于 Dart 增長(zhǎng)第二快的語(yǔ)言:
圖片來(lái)源:
流行的編程語(yǔ)言網(wǎng)站 PyPl 也將 Rust 排在第 18 位,而且還在上升:
圖片來(lái)源:PyPl
對(duì)比它提供的功能集,難怪微軟、亞馬遜和谷歌等科技巨頭最終宣布 Rust 作為一種長(zhǎng)期的系統(tǒng)編程語(yǔ)言。
在過(guò)去的 5 年里,Rust 的吸引力逐年增加:
圖片來(lái)源:
主要用于:
比賽主要語(yǔ)言:
去
圖片來(lái)源:
是最大的在線公司之一。本世紀(jì)初,我們面臨兩個(gè)擴(kuò)展問(wèn)題:開(kāi)發(fā)擴(kuò)展和應(yīng)用擴(kuò)展。開(kāi)發(fā)擴(kuò)展意味著他們無(wú)法通過(guò)添加開(kāi)發(fā)人員來(lái)添加更多功能,而應(yīng)用擴(kuò)展意味著他們無(wú)法輕松開(kāi)發(fā)可以擴(kuò)展到“”機(jī)器集群的應(yīng)用程序。 2007 年左右, 開(kāi)始創(chuàng)建一種新的“實(shí)用”編程語(yǔ)言,可以解決這兩個(gè)問(wèn)題。在 Rob Pike(UTF-8) 和 Ken(UNIX 操作系統(tǒng)))中,世界上最有才華的兩位軟件工程師創(chuàng)造了一種新語(yǔ)言。
2012 年, 發(fā)布了 Go 編程語(yǔ)言的第一個(gè)正式版本。 Go 是一種系統(tǒng)編程語(yǔ)言,但與 Rust 不同。它還有一個(gè)運(yùn)行時(shí)和垃圾收集器(幾兆字節(jié)),但與 Java 或 Java 不同的是,這個(gè)運(yùn)行時(shí)包含生成的代碼。最后,Go 生成本地二進(jìn)制代碼,無(wú)需額外的依賴項(xiàng)或運(yùn)行時(shí)即可在計(jì)算機(jī)上運(yùn)行。
主要特點(diǎn):
受歡迎程度:
自從 Go 出現(xiàn)以來(lái),軟件開(kāi)發(fā)社區(qū)就已經(jīng)接受了它。 2009 年(首次亮相)和 2018 年,Go 通過(guò)指數(shù)進(jìn)入編程語(yǔ)言名人堂排名。難怪 Go 的成功為 Rust 等新一代編程語(yǔ)言鋪平了道路。
Go 已經(jīng)是一種主流的編程語(yǔ)言。最近,Go 團(tuán)隊(duì)公布了“Go 2”計(jì)劃,目的是讓語(yǔ)言更穩(wěn)定。
在幾乎所有流行的編程語(yǔ)言比較網(wǎng)站上,Go 的排名都非常高,超過(guò)了許多現(xiàn)有的語(yǔ)言。以下是2019年12月的指數(shù)評(píng)級(jí),圍棋排名第15:
圖片來(lái)源:
根據(jù)一項(xiàng)調(diào)查,Go 是最受歡迎的十種編程語(yǔ)言之一:
圖片來(lái)源:
據(jù)統(tǒng)計(jì),Go 也是增長(zhǎng)最快的十種語(yǔ)言之一:
圖片來(lái)源:
還表明,在過(guò)去的五年中,Go 的吸引力不斷增強(qiáng):
圖片來(lái)源:
主要用例:
比賽主要語(yǔ)言:
Java 是企業(yè)軟件開(kāi)發(fā)中無(wú)可爭(zhēng)議的王者。近年來(lái),Java 受到了很多批評(píng):它冗長(zhǎng)、需要大量樣板編碼、復(fù)雜且容易發(fā)生事故。但是,關(guān)于 Java 虛擬機(jī) (JVM) 的爭(zhēng)論很少。 JVM 是軟件工程領(lǐng)域的杰作,它提供了經(jīng)過(guò)時(shí)間考驗(yàn)的運(yùn)行時(shí)。在上一篇文章中,我詳細(xì)討論了JVM的優(yōu)勢(shì):
文章網(wǎng)址:
多年來(lái)cnbeta 編程語(yǔ)言,像這樣的JVM語(yǔ)言一直試圖回答Java的缺點(diǎn)并希望成為更好的Java,但都失敗了。終于,它出現(xiàn)了,尋找更好的 Java 的旅程似乎結(jié)束了。 Jet(流行 IDE 背后的公司)開(kāi)發(fā),它運(yùn)行在 JVM 上,解決了 Java 的缺點(diǎn),并提供了許多現(xiàn)代功能。不同的是,它比 Java 簡(jiǎn)單得多,并且在 JVM 中提供 Go 或樣式開(kāi)發(fā)效率。
宣布它是由社區(qū)開(kāi)發(fā)的一流語(yǔ)言,并提高了社區(qū)的接受度。自 2017 年以來(lái),生態(tài)系統(tǒng)也支持同樣流行的 Java 企業(yè)框架。
主要特點(diǎn):
受歡迎程度:
自 2015 年首次發(fā)布以來(lái),其受歡迎程度正在飆升。根據(jù),是 2019 年第四大最受歡迎的編程語(yǔ)言:
圖片來(lái)源:
它也是增長(zhǎng)最快的編程語(yǔ)言之一,排名第四:
圖片來(lái)源:
流行的編程語(yǔ)言排名網(wǎng)站PyPl將被列為第12大流行的編程語(yǔ)言,呈高上升趨勢(shì):
圖片來(lái)源:Pypl
自從谷歌宣布它是開(kāi)發(fā)應(yīng)用程序的一流語(yǔ)言以來(lái),它的受歡迎程度迅速上升,如下圖所示:
圖片來(lái)源:
主要用例:
比賽主要語(yǔ)言:
是一門(mén)優(yōu)秀的語(yǔ)言,但2015年以前的語(yǔ)言有很多不足。甚至一個(gè)著名的軟件工程師寫(xiě)了一本書(shū)“:好”,并暗示有很多不好的部分。因?yàn)闆](méi)有模塊化和“回調(diào)地獄”,開(kāi)發(fā)者不喜歡維護(hù)特別大的項(xiàng)目。
甚至開(kāi)發(fā)了一個(gè)將 Java 代碼轉(zhuǎn)換為代碼 (GWT) 的平臺(tái)。很多公司或個(gè)人都在嘗試開(kāi)發(fā)更好的,比如Flow,但微軟無(wú)疑是其中最突出的。由創(chuàng)建者領(lǐng)導(dǎo)的一組 工程師創(chuàng)建了靜態(tài)類型的模塊化超集。
在編譯期間,被編譯為。自2014年首次發(fā)布以來(lái),迅速引起社會(huì)關(guān)注。當(dāng)時(shí),谷歌還計(jì)劃開(kāi)發(fā)一個(gè)靜態(tài)類型的超集。谷歌印象非常深刻,他們沒(méi)有開(kāi)發(fā)新語(yǔ)言,而是與微軟合作改進(jìn)。
用作其SPA框架+的主要編程語(yǔ)言。此外,流行的 SPA 框架提供了支持。另一個(gè)流行的框架 Vue.js 宣布它們將用于開(kāi)發(fā)新的 Vue.js 3:
圖片來(lái)源:Vue.js
此外,node.js 的創(chuàng)建者 Ryan Dahl 決定使用 Deno 來(lái)開(kāi)發(fā) node.js 的安全替代方案。
主要特點(diǎn):
受歡迎程度:
開(kāi)發(fā)人員喜歡優(yōu)雅的語(yǔ)言設(shè)計(jì)。在開(kāi)發(fā)者調(diào)查中,它在最受歡迎的語(yǔ)言類別中并列第二:
圖片來(lái)源:
是增長(zhǎng)最快的 Web 編程語(yǔ)言之一,在以下方面排名第五:
圖片來(lái)源:
根據(jù)貢獻(xiàn),也進(jìn)入了前10(排名7):
圖片來(lái)源:
過(guò)去一年越來(lái)越受到關(guān)注,體現(xiàn)在趨勢(shì)上:
圖片來(lái)源:
主要用例:
比賽主要語(yǔ)言:
喬布斯拒絕在 iOS 中支持 Java(和 JVM),因?yàn)樗J(rèn)為 Java 將不再是主要的編程語(yǔ)言。我們現(xiàn)在知道喬布斯對(duì) Java 的評(píng)價(jià)是錯(cuò)誤的,但 iOS 仍然不支持 Java。相反, 選擇了 -C 作為 iOS 中的主流編程語(yǔ)言。 -C 是一種難以掌握的語(yǔ)言。并且具有現(xiàn)代編程語(yǔ)言所要求的高開(kāi)發(fā)效率。
在 和其他公司開(kāi)發(fā)的,它是一種多范式、通用、可編譯的編程語(yǔ)言,提供了 -C 的替代方案。 2014年發(fā)布了第一個(gè)穩(wěn)定版本。也支持LLVM編譯器工具鏈(也是由開(kāi)發(fā)者開(kāi)發(fā)的)。與-C代碼庫(kù)具有良好的互操作性,已成為iOS應(yīng)用開(kāi)發(fā)的主要編程語(yǔ)言。
主要特點(diǎn):
受歡迎程度:
像許多其他現(xiàn)代語(yǔ)言一樣,開(kāi)發(fā)人員也喜歡。根據(jù)調(diào)查,它在最受歡迎的編程語(yǔ)言中排名第六:
在編程語(yǔ)言的排名中,它在 2019 年已經(jīng)上升到第 10 位??紤]到該語(yǔ)言只有 5 年的歷史,這是一個(gè)相當(dāng)了不起的成就:
圖片來(lái)源:
這也說(shuō)明了,在最近幾次的飽和度中,人氣先是急劇上升,然后是小幅下降:
圖片來(lái)源:
主要用例:
比賽主要語(yǔ)言:
飛鏢
Dart 也是一種已發(fā)布的編程語(yǔ)言。作為網(wǎng)絡(luò)和領(lǐng)域的關(guān)鍵人物,他在網(wǎng)絡(luò)和應(yīng)用開(kāi)發(fā)領(lǐng)域開(kāi)發(fā)自己的編程語(yǔ)言也就不足為奇了。
Dart 是一種通用編程語(yǔ)言,支持強(qiáng)類型和面向?qū)ο缶幊獭?Dart 也可以轉(zhuǎn)換成,它可以運(yùn)行在任何地方(如 Web、移動(dòng)、服務(wù)器)。
主要特點(diǎn):
受歡迎程度:
據(jù)報(bào)道,Dart 是 2019 年增長(zhǎng)最快的編程語(yǔ)言,其受歡迎程度在去年增長(zhǎng)了五倍:
據(jù)統(tǒng)計(jì),Dart 排在第 23 位,并且在短短 4 年內(nèi)就超越了許多其他編程語(yǔ)言:
圖片來(lái)源:
它也是最受歡迎的編程語(yǔ)言之一,在開(kāi)發(fā)者調(diào)查中排名第 12:
圖片來(lái)源:
除此之外,Dart 的受歡迎程度在過(guò)去兩年也經(jīng)歷了巨大的提升,體現(xiàn)在:
圖片來(lái)源:
主要用例:
比賽主要語(yǔ)言:
上面列出的編程語(yǔ)言都是大公司開(kāi)發(fā)的,其實(shí)不然。在技??術(shù)計(jì)算中,通常使用動(dòng)態(tài)語(yǔ)言,例如,。這些語(yǔ)言提供了易于使用的語(yǔ)法,但不適合大規(guī)模的技術(shù)計(jì)算。他們使用 C/C++ 庫(kù)來(lái)處理 CPU 密集型任務(wù)。由于代碼在兩種語(yǔ)言之間轉(zhuǎn)換,總會(huì)有一些性能損失。
為了解決這個(gè)問(wèn)題,麻省理工學(xué)院的一組研究人員計(jì)劃從頭開(kāi)始創(chuàng)建一種新語(yǔ)言,該語(yǔ)言利用現(xiàn)代硬件并結(jié)合其他語(yǔ)言的最佳部分。他們?cè)?MIT 創(chuàng)新實(shí)驗(yàn)室完成了這項(xiàng)工作,并發(fā)布了以下聲明:
數(shù)據(jù)來(lái)源:
是一種動(dòng)態(tài)高級(jí)編程語(yǔ)言,為并發(fā)、并行和分布式計(jì)算提供一流的支持。 2018年發(fā)布第一個(gè)穩(wěn)定版,迅速獲得社區(qū)和業(yè)界的青睞。可應(yīng)用于科學(xué)計(jì)算、人工智能等諸多領(lǐng)域,最終解決“兩種語(yǔ)言”問(wèn)題。
特點(diǎn):
受歡迎程度:
在很多領(lǐng)域,它主要是競(jìng)爭(zhēng)。由于它是最流行的編程語(yǔ)言之一,它需要幾年時(shí)間才能成為主流。
相對(duì)年輕(只有一歲),但仍然排在第 43 位:
圖片來(lái)源:
也顯示了過(guò)去一段時(shí)間程序員的穩(wěn)定興趣。
但考慮到功能集和背后的公司數(shù)量,如 NSF、NASA 等,取得突破只是時(shí)間問(wèn)題。
主要用例:
比賽主要語(yǔ)言:
通過(guò):