go語(yǔ)言12月排名 go語(yǔ)言市場(chǎng)份額

如何查看編程語(yǔ)言排行榜?

打開(kāi)瀏覽器,輸入關(guān)鍵詞,點(diǎn)擊搜索即可。幾乎每月都有媒體報(bào)道當(dāng)月 TIOBE?編程語(yǔ)言排行榜,以至于它成為編程語(yǔ)言排行榜領(lǐng)域最權(quán)威的組織。

目前成都創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、東鄉(xiāng)族網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

PHP:

PHP雖然也算是一個(gè)比較流行的編程語(yǔ)言,但其歷史上就從來(lái)沒(méi)有成為過(guò)第一,在 PHP 最巔峰時(shí)刻,排名成績(jī)也只能在第三、四名。

TIOBE公司介紹:

TIOBE 程序設(shè)計(jì)語(yǔ)言指數(shù)是由該公司推出并進(jìn)行維護(hù)的,這個(gè)指數(shù)將程序設(shè)計(jì)語(yǔ)言以排名列表的形式提供出來(lái),并且每個(gè)月更新一次,用來(lái)表示程序設(shè)計(jì)語(yǔ)言的流行度。

TIOBE 排行榜是根據(jù)互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量,并使用搜索引擎(如Google、Bing、Yahoo!)以及 Wikipedia、Amazon、YouTube 統(tǒng)計(jì)出排名數(shù)據(jù),只是反映某個(gè)編程語(yǔ)言的熱門程度,并不能說(shuō)明一門編程語(yǔ)言好不好,或者一門語(yǔ)言所編寫的代碼數(shù)量多少。

編程時(shí)選用的程序設(shè)計(jì)語(yǔ)言,對(duì)軟件的開(kāi)發(fā)與維護(hù)的影響?

【CSDN 編者按】“如果我們把人類文明想象成汽車的話,那么軟件開(kāi)發(fā)行業(yè)就相當(dāng)于汽車的引擎,編程語(yǔ)言就像引擎的燃料?!弊鳛橐幻_(kāi)發(fā)者,需跟隨技術(shù)潮流的發(fā)展來(lái)學(xué)習(xí)新技術(shù)。2020年,你有計(jì)劃新學(xué)一門編程語(yǔ)言嗎?

本文作者從一名架構(gòu)師的角度,詳細(xì)分析了7種現(xiàn)代編程語(yǔ)言的優(yōu)點(diǎn)與功能,你對(duì)哪門語(yǔ)言最感興趣呢?

作者 | Md Kamaruzzaman,軟件架構(gòu)師

譯者 | 彎月,責(zé)編 | 伍杏玲

封圖| CSDN 下載于視覺(jué)中國(guó)

出品 | CSDN(ID:CSDNnews)

以下為譯文:

如果我們把人類文明想象成汽車的話,那么軟件開(kāi)發(fā)行業(yè)就相當(dāng)于汽車的引擎,而編程語(yǔ)言就像引擎的燃料。作為一名開(kāi)發(fā)者,今年你應(yīng)該學(xué)習(xí)哪種編程語(yǔ)言呢?

學(xué)習(xí)一種新的編程語(yǔ)言無(wú)疑是時(shí)間、精力和智力上的巨大投資, 但是學(xué)習(xí)一種新的編程語(yǔ)言可以提升你的軟件開(kāi)發(fā)技術(shù)力,促進(jìn)你的職業(yè)發(fā)展。

在這里,我將獻(xiàn)上一份現(xiàn)代編程語(yǔ)言的列表,這些語(yǔ)言不僅有助于提高你的生產(chǎn)力,而且還可以促進(jìn)你的職業(yè)發(fā)展,并讓你成長(zhǎng)為更優(yōu)秀的開(kāi)發(fā)人員。這份列表還涵蓋了非常廣泛的領(lǐng)域:系統(tǒng)編程、應(yīng)用程序開(kāi)發(fā)、Web開(kāi)發(fā)、科學(xué)計(jì)算等。

什么是現(xiàn)代編程語(yǔ)言?

“現(xiàn)代編程語(yǔ)言”這個(gè)說(shuō)法本身就很含糊。許多人認(rèn)為Python和JavaScript等語(yǔ)言是現(xiàn)代編程語(yǔ)言,還認(rèn)為Java是一種古老的編程語(yǔ)言。實(shí)際上,這幾種語(yǔ)言大約在同一時(shí)間出現(xiàn):1995年。

大多數(shù)主流編程語(yǔ)言是上個(gè)世紀(jì)開(kāi)發(fā)的:七十年代(如C)、八十年代(如C ++)、九十年代(如Java、Python、JavaScript)。這些語(yǔ)言在設(shè)計(jì)上并沒(méi)有考慮現(xiàn)代軟件開(kāi)發(fā)生態(tài)系統(tǒng):多核CPU、GPU、快速的互聯(lián)網(wǎng)、移動(dòng)設(shè)備、容器和云等。盡管許多語(yǔ)言中的許多功能都已進(jìn)行一些改進(jìn),如并發(fā)等,而且在不斷調(diào)整自己以適應(yīng)時(shí)代,但它們依然保留了向后兼容性,無(wú)法拋棄那些過(guò)時(shí)的舊功能。

在這方面,Python就做得很好(某種意義上也未必是好事),Python 2和Python 3兩者之間有明確的分界線。很多語(yǔ)言常常會(huì)為解決同一個(gè)問(wèn)題提供十余種的方法,同時(shí)又沒(méi)有顧及到開(kāi)發(fā)人員的感受。根據(jù)StackOverflow的開(kāi)發(fā)人員調(diào)查,大多數(shù)舊時(shí)的主流編程語(yǔ)言在“最可怕的語(yǔ)言”排名都名列前茅:

如果非要在新舊編程語(yǔ)言之間劃個(gè)界限的話,那么應(yīng)該是2007年6月29日,也就是第一臺(tái)iPhone發(fā)行的時(shí)候。在這之后,編程語(yǔ)言界發(fā)生了很大變化。因此,在本文的列表中,我只考慮2007年以后的編程語(yǔ)言。

為什么要學(xué)習(xí)新語(yǔ)言?

首先,現(xiàn)代編程語(yǔ)言充分利用現(xiàn)代計(jì)算機(jī)硬件(多核CPU、GPU、TPU)、移動(dòng)設(shè)備、大量數(shù)據(jù)、高速互聯(lián)網(wǎng)、容器和云的優(yōu)勢(shì)。大多數(shù)現(xiàn)代編程語(yǔ)言會(huì)關(guān)注開(kāi)發(fā)人員的體驗(yàn),比如:

簡(jiǎn)潔明了的代碼(減少樣板代碼)

內(nèi)置的并發(fā)支持

空指針安全

類型推斷

簡(jiǎn)潔的功能集

降低學(xué)習(xí)難度

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

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

Rust

一直以來(lái),系統(tǒng)編程語(yǔ)言環(huán)境主要由靠近硬件的語(yǔ)言(如C、C ++等)主導(dǎo)。盡管它們可以完全控制程序和硬件,但是它們?nèi)狈?nèi)存安全性。即使它們支持并發(fā),使用C/C ++編寫并發(fā)程序也很困難,因?yàn)闆](méi)有并發(fā)安全性。還有一些流行的編程語(yǔ)言是解釋性語(yǔ)言,例如Java、Python、Haskell。這些語(yǔ)言具備安全性,但需要龐大的運(yùn)行時(shí)或虛擬機(jī)。由于它們的運(yùn)行時(shí)間長(zhǎng),因此Java等語(yǔ)言不適合于系統(tǒng)編程。

許多人曾嘗試將C/C ++的功能與Java、Haskell的安全性相結(jié)合。然而,Rust才是第一個(gè)成功實(shí)現(xiàn)了這一點(diǎn)的編程語(yǔ)言。

Graydon Hoare在業(yè)余項(xiàng)目中開(kāi)發(fā)出了Rust,他的靈感來(lái)自研究編程語(yǔ)言Cyclone。Rust是開(kāi)源的,由Mozilla與許多其他公司和社區(qū)一起領(lǐng)導(dǎo)這門語(yǔ)言的開(kāi)發(fā)。Rust于2015年首次發(fā)布,并很快引起了社區(qū)的關(guān)注。

主要特征:

通過(guò)所有權(quán)和借用概念提供內(nèi)存安全和并發(fā)安全。

內(nèi)存安全和并發(fā)安全在編譯時(shí)確保,即如果程序代碼可以編譯,那么內(nèi)存既安全又沒(méi)有數(shù)據(jù)競(jìng)爭(zhēng)。這是Rust最吸引人的功能。

它還提供了Haskell中元編程的表現(xiàn)力。憑借不可變的數(shù)據(jù)結(jié)構(gòu)和功能編程功能,Rust提供了功能并發(fā)和數(shù)據(jù)并發(fā)。

Rust的速度非???,純Rust的性能甚至優(yōu)于純C。

在沒(méi)有運(yùn)行時(shí)的情況下,Rust可以完全控制現(xiàn)代硬件(TPU、GPU、多核CPU)。

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

流行度:

自2015年首次亮相以來(lái),Rust已被開(kāi)發(fā)人員廣泛接受,并在StackOverflow開(kāi)發(fā)人員調(diào)查中連續(xù)四年(2016、2017、2018、2019)被評(píng)選為最受歡迎的語(yǔ)言:

根據(jù)GitHub Octoverse的調(diào)查,Rust是運(yùn)行速度第二快的語(yǔ)言,僅次于Dart:

此外,根據(jù)編程語(yǔ)言流行度排名網(wǎng)站PyPl的數(shù)據(jù),Rust排名第18位,并呈上升趨勢(shì):

對(duì)比Rust提供的功能集,我們就會(huì)明白為什么微軟、亞馬遜、Google等科技巨頭相繼宣布投資Rust作為一種長(zhǎng)期的系統(tǒng)編程語(yǔ)言。

根據(jù)Google統(tǒng)計(jì)的趨勢(shì),在過(guò)去的5年中,Rust的熱度每年都在增加。

主要用途:

系統(tǒng)編程

Serverless 計(jì)算

商業(yè)應(yīng)用

主要競(jìng)爭(zhēng)對(duì)手:

C

C++

Go

Swift

Go

在本世紀(jì)初,Google面臨兩個(gè)擴(kuò)展問(wèn)題:開(kāi)發(fā)擴(kuò)展和應(yīng)用程序擴(kuò)展。開(kāi)發(fā)擴(kuò)展問(wèn)題指的是他們不能僅通過(guò)投入開(kāi)發(fā)人員的方式來(lái)添加更多功能。應(yīng)用程序擴(kuò)展問(wèn)題則指他們無(wú)法開(kāi)發(fā)出一款能夠擴(kuò)展到Google級(jí)別的計(jì)算機(jī)集群的應(yīng)用程序。

所以在2007年左右,Google創(chuàng)建了一種新的編程語(yǔ)言,用于解決這兩個(gè)擴(kuò)展問(wèn)題。兩位才華橫溢的Google軟件工程師Rob Pike(UTF-8)和Ken Thompson(UNIX OS)創(chuàng)建了一種新語(yǔ)言。

2012年,Google正式發(fā)布了第一版的Go編程語(yǔ)言。Go是一種系統(tǒng)編程語(yǔ)言,但與Rust不同,它還具有Runtime和垃圾收集器(幾兆字節(jié))。但是與Java或Python不同,這個(gè)Runtime包含了生成的代碼。最后,Go生成了一個(gè)本地的二進(jìn)制代碼,可以在沒(méi)有附加依賴項(xiàng)或運(yùn)行時(shí)的情況下在計(jì)算機(jī)中運(yùn)行。

主要特征:

Go具有一流的并發(fā)支持。Go不通過(guò)線程和鎖提供“共享內(nèi)存”并發(fā)性,因?yàn)榫幊屉y度太大。相反,它提供了基于CSP的消息傳遞并發(fā)性(基于Tony Hoare的論文)。Go使用“ Goroutine”(輕量級(jí)綠色線程)和“ Channel”進(jìn)行消息傳遞。

Go最大的殺手級(jí)功能是:簡(jiǎn)單,它是最簡(jiǎn)單的系統(tǒng)編程語(yǔ)言。新手軟件開(kāi)發(fā)人員只需幾天就可以編寫高效的代碼,就像Python一樣。有些大規(guī)模的云原生項(xiàng)目(如Kubernetes、Docker)都是用Go編寫的。

Go還內(nèi)置了垃圾收集器,這意味著開(kāi)發(fā)人員無(wú)需擔(dān)心C/C++中的內(nèi)存管理問(wèn)題。

Google投入了大量資金打造Go。因此Go擁有大量的工具支持。新手Go開(kāi)發(fā)人員擁有大量的工具生態(tài)系統(tǒng)。

一般,開(kāi)發(fā)人員80%的時(shí)間都花在了維護(hù)現(xiàn)有代碼上,用于編寫新代碼的時(shí)間只占20%。由于其簡(jiǎn)單性,Go在語(yǔ)言維護(hù)方面表現(xiàn)出色。如今,Go在業(yè)務(wù)應(yīng)用程序中大量使用。

流行度:

Go一問(wèn)世就受到了軟件開(kāi)發(fā)社區(qū)熱烈的歡迎。2009年-2018年,Go一直在TIOBE編程語(yǔ)言排行榜上徘徊。Go的成功為Rust等新一代編程語(yǔ)言鋪平了道路。

如今,Go已是主流編程語(yǔ)言。最近,Go團(tuán)隊(duì)宣布了有關(guān)“Go 2”的消息,這門編程語(yǔ)言的發(fā)展會(huì)更加穩(wěn)固。

幾乎在所有的流行編程語(yǔ)言排行榜中,Go的排名都很高,已超過(guò)許多現(xiàn)有的語(yǔ)言。自2019年12月以來(lái),在TIOBE指數(shù)排名中,Go名列第15位:

根據(jù)StackOverFlow的調(diào)查,十大最受喜愛(ài)的編程語(yǔ)言中,Go也位列其中:

此外,根據(jù)GitHub的數(shù)據(jù),Go也是十大發(fā)展最迅速的語(yǔ)言之一:

Google趨勢(shì)顯示,在過(guò)去的5年中,Go的熱度每年都在增加。

主要用途:

系統(tǒng)編程

Serverless 計(jì)算

商業(yè)應(yīng)用

云原生開(kāi)發(fā)

主要競(jìng)爭(zhēng)對(duì)手:

C

C++

Rust

Python

Java

Kotlin

Java 是企業(yè)軟件開(kāi)發(fā)領(lǐng)域無(wú)可爭(zhēng)議的王者。近年來(lái),Java受到了一些負(fù)面評(píng)論:過(guò)于冗長(zhǎng),大量樣板代碼,容易出現(xiàn)意外的復(fù)雜性。但是,關(guān)于Java虛擬機(jī)(JVM)的爭(zhēng)論卻很少。JVM是軟件工程的杰作,經(jīng)過(guò)了時(shí)間的考驗(yàn),提供了硬核的runtime。

多年來(lái),Scala等JVM語(yǔ)言一直在努力克服Java的缺點(diǎn),想成為更好的Java,但他們都失敗了。最終,這場(chǎng)提升Java的探索以Kotlin的誕生結(jié)束。Jet Brains(流行的IDE IntelliJ背后的公司)開(kāi)發(fā)了Kotlin,它可以在JVM上運(yùn)行,克服了Java的很多缺點(diǎn),提供許多現(xiàn)代功能。

與Scala不同的是,Kotlin比Java更簡(jiǎn)單,還可在JVM中提供與Go或Python開(kāi)發(fā)人員同等的生產(chǎn)力。

Google宣布Kotlin是一流的Android應(yīng)用開(kāi)發(fā)語(yǔ)言,因此Kotlin在社區(qū)中的接受度得到了大幅提高。自2017年以來(lái),同樣受歡迎的Java Enterprise框架Spring也開(kāi)始支持Kotlin。我曾嘗試結(jié)合Kotlin與Reactive Spring使用,體驗(yàn)非常棒。

主要特征:

Kotlin的主要賣點(diǎn)在于其語(yǔ)言設(shè)計(jì)。我總是將Kotlin視為JVM上的Go/Python,因?yàn)樗?jiǎn)潔明了的代碼。因此,Kotlin的生產(chǎn)力很高。

與許多其他現(xiàn)代語(yǔ)言一樣,Kotlin提供了Null指針、安全性、類型推斷等功能。

由于Kotlin也運(yùn)行在JVM中,因此現(xiàn)有Java庫(kù)龐大的生態(tài)系統(tǒng)都可供使用。

Kotlin是一流的Android應(yīng)用開(kāi)發(fā)語(yǔ)言,并且已經(jīng)超過(guò)Java,成為開(kāi)發(fā)Android應(yīng)用的首選。

Kotlin得到了JetBrains和Open Source的支持,因此具有出色的工具支持。

Kotlin有兩個(gè)有趣的項(xiàng)目:Kotlin Native(將Kotlin編譯為原生代碼)和kotlin.js(Kotlin到JavaScript)。如果成功,則可以在JVM外部使用Kotlin。

Kotlin還提供了一種簡(jiǎn)單的方式來(lái)編寫DSL(域特定語(yǔ)言)。

流行度:

自2015年首次發(fā)布以來(lái),Kotlin的知名度不斷飆升。根據(jù)Stack Overflow,Kotlin是2019年第四大最受歡迎的編程語(yǔ)言:

Kotlin還是增長(zhǎng)最快的編程語(yǔ)言之一,排名第四:

在流行編程語(yǔ)言排名網(wǎng)站PyPl的排名中,Kotlin名列第十二名,并具有較高的上升趨勢(shì):

自從Google宣布Kotlin是一流的Android應(yīng)用開(kāi)發(fā)語(yǔ)言以來(lái),Kotlin的流行趨勢(shì)出現(xiàn)了大幅上漲,如下所示:

主要用途:

企業(yè)應(yīng)用程序

主要競(jìng)爭(zhēng)對(duì)手:

TypeScript

JavaScript是一門優(yōu)秀的編程語(yǔ)言,在2015年之前,JavaScript有很多缺點(diǎn)。著名的軟件工程師Douglas Crockford寫了一本書名為《JavaScript: The Good Parts》,暗示了JavaScript有很糟的部分。無(wú)模塊化,還有“回調(diào)地獄”,因此開(kāi)發(fā)人員都不喜歡維護(hù)特別大的JavaScript項(xiàng)目。

Google甚至還開(kāi)發(fā)了一個(gè)平臺(tái),可將Java代碼反編譯為JavaScript代碼(GWT)。許多公司和個(gè)人都曾嘗試開(kāi)發(fā)更好的JavaScript,例如CoffeeScript、Flow、ClojureScript。最終,微軟的TypeScript取得了成功。

微軟的一隊(duì)工程師在著名的Anders Hejlsberg的帶領(lǐng)下,創(chuàng)建了JavaScript的靜態(tài)類型、模塊化超集——TypeScript。

TypeScript可以編譯為JavaScript。于2014年首次發(fā)布后,TypeScript很快引起了社區(qū)的關(guān)注。Google當(dāng)時(shí)還計(jì)劃開(kāi)發(fā)JavaScript的靜態(tài)類型超集。Google對(duì)TypeScript青睞有加,以至于他們沒(méi)有開(kāi)發(fā)新的語(yǔ)言,而是選擇與微軟合作改進(jìn)TypeScript。

Google選擇TypeScript作為其SPA框架Angular 2+的主要編程語(yǔ)言。此外,流行的SPA框架React也提供對(duì)TypeScript的支持。另一個(gè)流行的JavaScript框架Vue.js也宣布將使用TypeScript開(kāi)發(fā)新的Vue.js 3:

另外,node.js的創(chuàng)建者Ryan Dahl已決定使用TypeScript來(lái)開(kāi)發(fā)安全的Node.js替代品Deno。

主要特征:

流行度:

開(kāi)發(fā)人員喜歡TypeScript的優(yōu)雅語(yǔ)言設(shè)計(jì)。在StackOverFlow最受歡迎的語(yǔ)言類別的調(diào)查中,TypeScript與Python并列第二名:

根據(jù)GitHub的排名,TypeScript是增長(zhǎng)最快的編程語(yǔ)言之一,排名第五:

從GitHub的貢獻(xiàn)度來(lái)看,TypeScript排名第七,打進(jìn)了前十:

Google的趨勢(shì)表明,在過(guò)去的幾年中,TypeScript的熱度越來(lái)越高:

主要用途:

主要競(jìng)爭(zhēng)對(duì)手:

Swift

當(dāng)初喬布斯拒絕在iOS中支持Java(和JVM),他認(rèn)為Java不再是主流編程語(yǔ)言。如今我們發(fā)現(xiàn)喬布斯當(dāng)初的估計(jì)是錯(cuò)的,雖然iOS仍然不支持Java。蘋果選擇了Objective-C作為iOS中的首選編程語(yǔ)言。Objective-C是一門很難掌握的語(yǔ)言,它不支持現(xiàn)代編程語(yǔ)言所要求的高生產(chǎn)力。

后來(lái),蘋果的Chris Lattner和其他人開(kāi)發(fā)了一種多范例、通用的、編譯編程語(yǔ)言——Swift,來(lái)替代Objective-C。Swift的第一個(gè)穩(wěn)定版本于2014年發(fā)布。Swift還支持LLVM編譯器工具鏈(也由Chris Lattner開(kāi)發(fā))。Swift與Objective-C代碼庫(kù)具有出色的互操作性,并且已確立為iOS應(yīng)用開(kāi)發(fā)中的主要編程語(yǔ)言。

主要特征:

流行度:

開(kāi)發(fā)人員對(duì)Swift的喜愛(ài)不亞于許多其他現(xiàn)代編程語(yǔ)言。根據(jù)StackOverflow的調(diào)查,Swift在最受歡迎的編程語(yǔ)言中排名第六:

2019年,在TIOBE的編程語(yǔ)言排名中,Swift的排名上升到了第10名。鑒于這種編程語(yǔ)言只有5年的歷史,可以說(shuō)是成績(jī)斐然:

Google的趨勢(shì)表明,在過(guò)去的幾年中,Swift的熱度出現(xiàn)了激增:

主要用途:

主要競(jìng)爭(zhēng)對(duì)手:

Dart

Dart是Google出品的第二大編程語(yǔ)言。Google是Web和Android領(lǐng)域的巨頭,因此Google在Web和應(yīng)用領(lǐng)域開(kāi)發(fā)自己的編程語(yǔ)言也不足為奇。在丹麥軟件工程師Lars Bak(領(lǐng)導(dǎo)Chrome的 JavaScript V8引擎開(kāi)發(fā))的帶領(lǐng)下,Google于2013年發(fā)布了Dart。

Dart是一種通用編程語(yǔ)言,支持“強(qiáng)類型”和“面向?qū)ο蟆本幊獭art也可以轉(zhuǎn)編譯為JavaScript,凡是JavaScript可以運(yùn)行的任何地方(例如Web、移動(dòng)、服務(wù)器)幾乎都可以運(yùn)行 Dart。

主要特征:

流行度:

根據(jù)GitHub Octoverse數(shù)據(jù)顯示,Dart是2019年增長(zhǎng)最快的編程語(yǔ)言,去年它的流行度增長(zhǎng)了五倍:

根據(jù)TIOBE指數(shù)顯示,Dart排名第23,僅用了4年時(shí)間就超過(guò)了很多其他的現(xiàn)代編程語(yǔ)言:

根據(jù)StackOverflow的調(diào)查,Dart在最受歡迎的編程語(yǔ)言中排名第12:

受Flutter的影響,Google的趨勢(shì)表明,在過(guò)去的兩年中,Dart的熱度急劇上升:

主要用途:

主要競(jìng)爭(zhēng)對(duì)手:

Julia

本文提及的大多數(shù)編程語(yǔ)言都是由大型公司開(kāi)發(fā)的,但Julia是個(gè)例外??萍加?jì)算領(lǐng)域通常都會(huì)使用動(dòng)態(tài)語(yǔ)言,例如Python、Matlab。雖然這些語(yǔ)言提供易于使用的語(yǔ)法,但不適用于大規(guī)模的科技計(jì)算。他們需要使用C/C ++庫(kù)執(zhí)行CPU密集型任務(wù),因此這就產(chǎn)生了著名的“兩種語(yǔ)言”的問(wèn)題,因?yàn)樗麄冃枰澈洗a來(lái)綁定兩種語(yǔ)言。由于編寫的代碼需要在兩種語(yǔ)言之間來(lái)回切換,因此總是會(huì)損失部分性能。

為了解決這個(gè)問(wèn)題,麻省理工學(xué)院的一隊(duì)研究人員計(jì)劃從頭開(kāi)始創(chuàng)建一種新的語(yǔ)言,這種語(yǔ)言既可以利用現(xiàn)代硬件的優(yōu)勢(shì),而且還結(jié)合其他語(yǔ)言的優(yōu)勢(shì)。于是,Julia誕生了。

Julia是一種動(dòng)態(tài)的高級(jí)編程語(yǔ)言,提供一流的并發(fā)、并行和分布式計(jì)算支持。Julia的第一個(gè)穩(wěn)定版本于2018年發(fā)布,并很快受到社區(qū)和行業(yè)的關(guān)注。Julia可用于科學(xué)計(jì)算、人工智能和許多其他領(lǐng)域,而且還可以解決“兩種語(yǔ)言”的問(wèn)題。

主要特征:

流行度:

Julia在許多領(lǐng)域主要與Python競(jìng)爭(zhēng)。由于Python是最流行的編程語(yǔ)言之一,因此Julia想晉升主流還需要幾年的時(shí)間。

雖然Julia非常新(只有一歲),但仍在TIOBE指數(shù)中排到第43名:

Google趨勢(shì)顯示,在過(guò)去的一年中,Julia的熱度在穩(wěn)步增長(zhǎng):

但是考慮到Julia的功能集,以及NSF、DARPA、NASA、因特爾等公司的推動(dòng),相信Julia取得突破的進(jìn)展只是時(shí)間的問(wèn)題。

主要用途:

主要競(jìng)爭(zhēng)對(duì)手:

原文鏈接:

本文為 CSDN 翻譯,轉(zhuǎn)載請(qǐng)注明來(lái)源出處。

【End】

Python

Matlab

科學(xué)計(jì)算

高性能計(jì)算

數(shù)據(jù)科學(xué)

可視化

與Rust一樣,Julia的主要特征在于語(yǔ)言的設(shè)計(jì)。這種語(yǔ)言在不犧牲性能的情況下,將高性能和科學(xué)計(jì)算中現(xiàn)有編程語(yǔ)言的一些功能結(jié)合在一起。就目前的情況來(lái)看,Julia出色地完成了這項(xiàng)任務(wù)。

Julia是一種動(dòng)態(tài)編程語(yǔ)言,支持類型系統(tǒng)但類型不是必須的。因此,Julia這種編程語(yǔ)言很容易學(xué)習(xí),生產(chǎn)力很高。

Julia的核心是多調(diào)度編程范例。

Julia內(nèi)部支持并發(fā)、并行和分布式計(jì)算。

Julia為I/O密集型任務(wù)提供異步I/O。

Julia的運(yùn)行速度非???,可用于需要數(shù)百萬(wàn)個(gè)線程的科學(xué)計(jì)算。

JavaScript

TypeScript

應(yīng)用開(kāi)發(fā)

UI開(kāi)發(fā)

與Go一樣,Dart也非常注重開(kāi)發(fā)人員的工作效率。由于Dart簡(jiǎn)潔的語(yǔ)法,以及高效的生產(chǎn)力,受到開(kāi)發(fā)人員的喜愛(ài)。

Dart還提供“強(qiáng)類型”和“面向?qū)ο蟆本幊獭?/p>

Dart是少數(shù)同時(shí)支持JIT編譯(運(yùn)行時(shí)編譯)和AOT編譯(創(chuàng)建時(shí)編譯)的編程語(yǔ)言之一。因此,Dart可以針對(duì)JavaScript運(yùn)行時(shí)(V8引擎),并且Dart可以編譯為快速的原生代碼(AOT編譯)。

跨平臺(tái)原生應(yīng)用程序開(kāi)發(fā)平臺(tái)Flutter選擇了Dart作為開(kāi)發(fā)iOS和Android應(yīng)用的編程語(yǔ)言。從那以后,Dart的流行度越來(lái)越高。

與Goog的Go編程語(yǔ)言一樣,Dart也具有出色的工具支持和龐大的Flutter生態(tài)系統(tǒng)。Flutter的日益普及也會(huì)推動(dòng)Dart的采用率升高。

Objective-C

Rust

Go

iOS應(yīng)用開(kāi)發(fā)

系統(tǒng)編程

客戶端開(kāi)發(fā)(通過(guò)WebAssembly)

Swift的殺手級(jí)功能之一是其語(yǔ)言設(shè)計(jì)。語(yǔ)言本身很簡(jiǎn)單,語(yǔ)法簡(jiǎn)潔,比Objective-C更高效。

Swift還提供了現(xiàn)代程序語(yǔ)言的功能:null安全。此外,它還提供了語(yǔ)法糖來(lái)避免“厄運(yùn)金字塔”。

作為一種編譯語(yǔ)言,Swift和C++一樣快。

Swift支持LLVM編譯器工具鏈。因此,我們可以在服務(wù)器端編程,甚至瀏覽器編程(使用WebAssembly)中使用Swift。

Swift提供了自動(dòng)引用計(jì)數(shù)(ARC)支持,可抑制內(nèi)存管理的不善。

JavaScript

Dart

Web UI開(kāi)發(fā)

服務(wù)器端開(kāi)發(fā)

與Go或Kotlin同樣,TypeScript的主要特征也是語(yǔ)言設(shè)計(jì)。TypeScript憑借其簡(jiǎn)潔明快的代碼,成為了目前最優(yōu)雅的編程語(yǔ)言之一。就開(kāi)發(fā)人員的生產(chǎn)力而言,它與JVM或Go/Python上的Kotlin并駕齊驅(qū)。TypeScript是生產(chǎn)力最高的JavaScript超集。

TypeScript是JavaScript的強(qiáng)類型超集,特別適合大型項(xiàng)目,而且可以稱為“可擴(kuò)展的JavaScript”。

單頁(yè)應(yīng)用程序框架的“三巨頭”(Angular、React、Vue.js)為TypeScript提供了出色的支持。在Angular中,TypeScript是首選的編程語(yǔ)言。在React和Vue.js中,TypeScript越來(lái)越受歡迎。

最大的兩家技術(shù)巨頭:微軟和Google正在合作開(kāi)發(fā)由活躍的開(kāi)源社區(qū)支持的TypeScript。因此,TypeScript擁有最好的工具支持。

由于TypeScript是JavaScript的超集,因此凡是可以運(yùn)行JavaScript的任何地方都可以運(yùn)行TypeScript,包括瀏覽器、服務(wù)器、移動(dòng)設(shè)備、物聯(lián)網(wǎng)設(shè)備和云。

Java

Scala

Python

Go

最難的開(kāi)發(fā)語(yǔ)言

第十名、R語(yǔ)言

R語(yǔ)言,一種自由軟件編程語(yǔ)言與操作環(huán)境,主要用于統(tǒng)計(jì)分析、繪圖、數(shù)據(jù)挖掘。R基于S語(yǔ)言的一個(gè)GNU計(jì)劃項(xiàng)目,所以也可以當(dāng)作S語(yǔ)言的一種實(shí)現(xiàn),通常用S語(yǔ)言編寫的代碼都可以不作修改的在R環(huán)境下運(yùn)行。R的語(yǔ)法是來(lái)自Scheme。

提名詞

R語(yǔ)言作者,George Ross Ihaka:在奧克蘭大學(xué)統(tǒng)計(jì)系任副教授,是R語(yǔ)言的最初作者。

2

/10

第九名、Python

頒獎(jiǎng)詞

Python是一種廣泛使用的高級(jí)編程語(yǔ)言,屬于通用型編程語(yǔ)言。作為一種解釋型語(yǔ)言,Python的設(shè)計(jì)哲學(xué)強(qiáng)調(diào)代碼的可讀性和簡(jiǎn)潔的語(yǔ)法。相比于C++或Java,Python讓開(kāi)發(fā)者能夠用更少的代碼表達(dá)想法。不管是小型還是大型程序,該語(yǔ)言都試圖讓程序的結(jié)構(gòu)清晰明了。

提名詞

Python語(yǔ)言作者,Guido van Rossum:生于荷蘭哈勒姆,計(jì)算機(jī)程序員,為Python程序設(shè)計(jì)語(yǔ)言的最初設(shè)計(jì)者及主要架構(gòu)師。

3

/10

第八名、C語(yǔ)言

頒獎(jiǎng)詞

C是一種通用的編程語(yǔ)言,廣泛用于系統(tǒng)軟件與應(yīng)用軟件的開(kāi)發(fā)。C語(yǔ)言具有高效、靈活、功能豐富、表達(dá)力強(qiáng)和較高的可移植性等特點(diǎn)。C語(yǔ)言編譯器普遍存在于各種不同的操作系統(tǒng)中,例如Microsoft Windows、macOS、Linux、Unix等。C語(yǔ)言的設(shè)計(jì)影響了眾多后來(lái)的編程語(yǔ)言,例如C++、Objective-C、Java、C#等。

提名詞

C語(yǔ)言作者,Dennis MacAlistair Ritchie:美國(guó)計(jì)算機(jī)科學(xué)家。黑客圈子通常稱他為“dmr”。他是C語(yǔ)言的創(chuàng)造者、Unix操作系統(tǒng)的關(guān)鍵開(kāi)發(fā)者,對(duì)計(jì)算機(jī)領(lǐng)域產(chǎn)生了深遠(yuǎn)影響,并與肯·湯普遜同為1983年圖靈獎(jiǎng)得主。

4

/10

第七名、Go

頒獎(jiǎng)詞

Go(又稱Golang)是Google開(kāi)發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語(yǔ)言。Go的語(yǔ)法接近C語(yǔ)言,但對(duì)于變量的聲明有所不同。Go支持垃圾回收功能。

提名詞

Go語(yǔ)言作者,Robert C. Pike:來(lái)自加拿大的程序員,曾經(jīng)加入貝爾實(shí)驗(yàn)室,為 UNIX小組的成員。他與肯·湯普遜共同開(kāi)發(fā)了UTF-8。目前為 google的工程師,參與編程語(yǔ)言 Go與Sawzall的研發(fā)工作。

5

/10

第六名、JavaScript

頒獎(jiǎng)詞

JavaScript,通??s寫為JS,是一種高級(jí)的,解釋執(zhí)行的編程語(yǔ)言。JavaScript是一門基于原型、函數(shù)先行的語(yǔ)言,是一門多范式的語(yǔ)言,它支持面向?qū)ο缶幊?,命令式編程,以及函?shù)式編程。它已經(jīng)由ECMA(歐洲計(jì)算機(jī)制造商協(xié)會(huì))通過(guò)ECMAScript實(shí)現(xiàn)語(yǔ)言的標(biāo)準(zhǔn)化。它被世界上的絕大多數(shù)網(wǎng)站所使用,也被世界主流瀏覽器(Chrome、IE、Firefox、Safari、Opera)支持。

提名詞

JavaScript語(yǔ)言作者,Brendan Eich:美國(guó)程序員與企業(yè)家,JavaScript主要?jiǎng)?chuàng)造者與架構(gòu)師,曾任Mozilla公司的首席技術(shù)官,并曾短暫擔(dān)任首席執(zhí)行官。

6

/10

第五名、Objective-C

頒獎(jiǎng)詞

Objective-C是一種通用、高級(jí)、面向?qū)ο蟮木幊陶Z(yǔ)言。它擴(kuò)展了標(biāo)準(zhǔn)的ANSI C編程語(yǔ)言,將Smalltalk式的消息傳遞機(jī)制加入到ANSI C中。目前主要支持的編譯器有GCC和Clang(采用LLVM作為后端)。

提名詞

Objective-C作者,Brad Cox:美國(guó)計(jì)算機(jī)科學(xué)家。于傅爾曼大學(xué)主修化學(xué)與數(shù)學(xué),于芝加哥大學(xué)取得數(shù)學(xué)生物學(xué)博士學(xué)位。Objective-C主要作者。

7

/10

第四名、PHP

頒獎(jiǎng)詞

PHP(全稱:PHP:Hypertext Preprocessor,即“PHP:超文本預(yù)處理器”)是開(kāi)源的通用計(jì)算機(jī)腳本語(yǔ)言,尤其適用于網(wǎng)絡(luò)開(kāi)發(fā)并可嵌入HTML中使用。PHP的語(yǔ)法借鑒吸收C語(yǔ)言、Java和Perl等流行計(jì)算機(jī)語(yǔ)言的特點(diǎn),易于一般程序員學(xué)習(xí)。PHP的主要目標(biāo)是允許網(wǎng)絡(luò)開(kāi)發(fā)人員快速編寫動(dòng)態(tài)頁(yè)面,但PHP也被用于其他很多領(lǐng)域。

提名詞

PHP語(yǔ)言作者,Rasmus Lerdorf:出生于格陵蘭島凱凱塔蘇瓦克,是一個(gè)丹麥程序員,他擁有加拿大國(guó)籍。他也是編程語(yǔ)言PHP的創(chuàng)始人,其中PHP的頭兩個(gè)版本是由他編寫的,后來(lái)他也參與PHP后續(xù)版本的開(kāi)發(fā)。

8

/10

第三名、Java

頒獎(jiǎng)詞

Java是一種廣泛使用的計(jì)算機(jī)編程語(yǔ)言,擁有跨平臺(tái)、面向?qū)ο?、泛型編程的特性,廣泛應(yīng)用于企業(yè)級(jí)Web應(yīng)用開(kāi)發(fā)和移動(dòng)應(yīng)用開(kāi)發(fā)。Java編程語(yǔ)言是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無(wú)關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語(yǔ)言。

提名詞

Java語(yǔ)言作者,James Gosling:出生于加拿大,軟件專家,Java編程語(yǔ)言的共同創(chuàng)始人之一,一般公認(rèn)他為“Java之父”。

9

/10

第二名、C++

頒獎(jiǎng)詞

C++是一種使用廣泛的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它是一種通用程序設(shè)計(jì)語(yǔ)言,支持多重編程模式,例如過(guò)程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)和設(shè)計(jì)模式等。

提名詞

C++語(yǔ)言作者,Bjarne Stroustrup:生于丹麥奧胡斯郡,計(jì)算機(jī)科學(xué)家。他以創(chuàng)造C++編程語(yǔ)言而聞名,被稱為“C++之父”。

10

/10

第一名、Visual Basic .NET

頒獎(jiǎng)詞

Visual Basic .NET(VB.NET)是.NET Framework框架下的一種多重編程范式高級(jí)語(yǔ)言。Visual Basic .NET屬Basic系語(yǔ)言,其語(yǔ)法特點(diǎn)是以極具親和力的英文單詞為基礎(chǔ)標(biāo)識(shí),以及與自然語(yǔ)言極其相近的邏輯表達(dá),有時(shí)候你會(huì)覺(jué)得寫VB.NET代碼就好像在寫英文句子一樣,從這個(gè)角度來(lái)說(shuō),VB.NET似乎是最高級(jí)的一門編程語(yǔ)言,當(dāng)然在Basic系語(yǔ)言中VB.NET也確實(shí)是迄今為止最強(qiáng)大的一門編程語(yǔ)言。

提名詞

Visual Basic .NET作者,Alan Cooper:交互設(shè)計(jì)的提倡者。庫(kù)珀有些時(shí)候被叫做 Visual Basic 之父,雖然大多數(shù)的工作是由微軟的內(nèi)部開(kāi)發(fā)團(tuán)隊(duì)完成的,但是對(duì)于Windows可視化設(shè)計(jì)工具的創(chuàng)意是來(lái)源于庫(kù)珀的。

新聞標(biāo)題:go語(yǔ)言12月排名 go語(yǔ)言市場(chǎng)份額
鏈接分享:http://muchs.cn/article46/dohdohg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、App設(shè)計(jì)、、App開(kāi)發(fā)、手機(jī)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)