【CSDN 編者按】“如果我們把人類文明想象成汽車的話,那么軟件開發(fā)行業(yè)就相當(dāng)于汽車的引擎,編程語言就像引擎的燃料?!弊鳛橐幻_發(fā)者,需跟隨技術(shù)潮流的發(fā)展來學(xué)習(xí)新技術(shù)。2020年,你有計劃新學(xué)一門編程語言嗎?
公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出福海免費做網(wǎng)站回饋大家。
本文作者從一名架構(gòu)師的角度,詳細(xì)分析了7種現(xiàn)代編程語言的優(yōu)點與功能,你對哪門語言最感興趣呢?
作者 | Md Kamaruzzaman,軟件架構(gòu)師
譯者 | 彎月,責(zé)編 | 伍杏玲
封圖| CSDN 下載于視覺中國
出品 | CSDN(ID:CSDNnews)
以下為譯文:
如果我們把人類文明想象成汽車的話,那么軟件開發(fā)行業(yè)就相當(dāng)于汽車的引擎,而編程語言就像引擎的燃料。作為一名開發(fā)者,今年你應(yīng)該學(xué)習(xí)哪種編程語言呢?
學(xué)習(xí)一種新的編程語言無疑是時間、精力和智力上的巨大投資, 但是學(xué)習(xí)一種新的編程語言可以提升你的軟件開發(fā)技術(shù)力,促進(jìn)你的職業(yè)發(fā)展。
在這里,我將獻(xiàn)上一份現(xiàn)代編程語言的列表,這些語言不僅有助于提高你的生產(chǎn)力,而且還可以促進(jìn)你的職業(yè)發(fā)展,并讓你成長為更優(yōu)秀的開發(fā)人員。這份列表還涵蓋了非常廣泛的領(lǐng)域:系統(tǒng)編程、應(yīng)用程序開發(fā)、Web開發(fā)、科學(xué)計算等。
什么是現(xiàn)代編程語言?
“現(xiàn)代編程語言”這個說法本身就很含糊。許多人認(rèn)為Python和JavaScript等語言是現(xiàn)代編程語言,還認(rèn)為Java是一種古老的編程語言。實際上,這幾種語言大約在同一時間出現(xiàn):1995年。
大多數(shù)主流編程語言是上個世紀(jì)開發(fā)的:七十年代(如C)、八十年代(如C ++)、九十年代(如Java、Python、JavaScript)。這些語言在設(shè)計上并沒有考慮現(xiàn)代軟件開發(fā)生態(tài)系統(tǒng):多核CPU、GPU、快速的互聯(lián)網(wǎng)、移動設(shè)備、容器和云等。盡管許多語言中的許多功能都已進(jìn)行一些改進(jìn),如并發(fā)等,而且在不斷調(diào)整自己以適應(yīng)時代,但它們依然保留了向后兼容性,無法拋棄那些過時的舊功能。
在這方面,Python就做得很好(某種意義上也未必是好事),Python 2和Python 3兩者之間有明確的分界線。很多語言常常會為解決同一個問題提供十余種的方法,同時又沒有顧及到開發(fā)人員的感受。根據(jù)StackOverflow的開發(fā)人員調(diào)查,大多數(shù)舊時的主流編程語言在“最可怕的語言”排名都名列前茅:
如果非要在新舊編程語言之間劃個界限的話,那么應(yīng)該是2007年6月29日,也就是第一臺iPhone發(fā)行的時候。在這之后,編程語言界發(fā)生了很大變化。因此,在本文的列表中,我只考慮2007年以后的編程語言。
為什么要學(xué)習(xí)新語言?
首先,現(xiàn)代編程語言充分利用現(xiàn)代計算機(jī)硬件(多核CPU、GPU、TPU)、移動設(shè)備、大量數(shù)據(jù)、高速互聯(lián)網(wǎng)、容器和云的優(yōu)勢。大多數(shù)現(xiàn)代編程語言會關(guān)注開發(fā)人員的體驗,比如:
簡潔明了的代碼(減少樣板代碼)
內(nèi)置的并發(fā)支持
空指針安全
類型推斷
簡潔的功能集
降低學(xué)習(xí)難度
融合所有編程范例的最佳功能
本文列表的許多編程語言都帶有革命性地變化,并將永久地改變軟件行業(yè)。一些已成為主流編程語言,還有一些則有望取得突破。因此選擇這些語言作為第二種編程語言是明智的做法。
Rust
一直以來,系統(tǒng)編程語言環(huán)境主要由靠近硬件的語言(如C、C ++等)主導(dǎo)。盡管它們可以完全控制程序和硬件,但是它們?nèi)狈?nèi)存安全性。即使它們支持并發(fā),使用C/C ++編寫并發(fā)程序也很困難,因為沒有并發(fā)安全性。還有一些流行的編程語言是解釋性語言,例如Java、Python、Haskell。這些語言具備安全性,但需要龐大的運行時或虛擬機(jī)。由于它們的運行時間長,因此Java等語言不適合于系統(tǒng)編程。
許多人曾嘗試將C/C ++的功能與Java、Haskell的安全性相結(jié)合。然而,Rust才是第一個成功實現(xiàn)了這一點的編程語言。
Graydon Hoare在業(yè)余項目中開發(fā)出了Rust,他的靈感來自研究編程語言Cyclone。Rust是開源的,由Mozilla與許多其他公司和社區(qū)一起領(lǐng)導(dǎo)這門語言的開發(fā)。Rust于2015年首次發(fā)布,并很快引起了社區(qū)的關(guān)注。
主要特征:
通過所有權(quán)和借用概念提供內(nèi)存安全和并發(fā)安全。
內(nèi)存安全和并發(fā)安全在編譯時確保,即如果程序代碼可以編譯,那么內(nèi)存既安全又沒有數(shù)據(jù)競爭。這是Rust最吸引人的功能。
它還提供了Haskell中元編程的表現(xiàn)力。憑借不可變的數(shù)據(jù)結(jié)構(gòu)和功能編程功能,Rust提供了功能并發(fā)和數(shù)據(jù)并發(fā)。
Rust的速度非???,純Rust的性能甚至優(yōu)于純C。
在沒有運行時的情況下,Rust可以完全控制現(xiàn)代硬件(TPU、GPU、多核CPU)。
Rust具有LLVM支持。因此,Rust提供一流的與WebAssembly的互操作性,而且Web代碼也非??臁?/p>
流行度:
自2015年首次亮相以來,Rust已被開發(fā)人員廣泛接受,并在StackOverflow開發(fā)人員調(diào)查中連續(xù)四年(2016、2017、2018、2019)被評選為最受歡迎的語言:
根據(jù)GitHub Octoverse的調(diào)查,Rust是運行速度第二快的語言,僅次于Dart:
此外,根據(jù)編程語言流行度排名網(wǎng)站PyPl的數(shù)據(jù),Rust排名第18位,并呈上升趨勢:
對比Rust提供的功能集,我們就會明白為什么微軟、亞馬遜、Google等科技巨頭相繼宣布投資Rust作為一種長期的系統(tǒng)編程語言。
根據(jù)Google統(tǒng)計的趨勢,在過去的5年中,Rust的熱度每年都在增加。
主要用途:
系統(tǒng)編程
Serverless 計算
商業(yè)應(yīng)用
主要競爭對手:
C
C++
Go
Swift
Go
在本世紀(jì)初,Google面臨兩個擴(kuò)展問題:開發(fā)擴(kuò)展和應(yīng)用程序擴(kuò)展。開發(fā)擴(kuò)展問題指的是他們不能僅通過投入開發(fā)人員的方式來添加更多功能。應(yīng)用程序擴(kuò)展問題則指他們無法開發(fā)出一款能夠擴(kuò)展到Google級別的計算機(jī)集群的應(yīng)用程序。
所以在2007年左右,Google創(chuàng)建了一種新的編程語言,用于解決這兩個擴(kuò)展問題。兩位才華橫溢的Google軟件工程師Rob Pike(UTF-8)和Ken Thompson(UNIX OS)創(chuàng)建了一種新語言。
2012年,Google正式發(fā)布了第一版的Go編程語言。Go是一種系統(tǒng)編程語言,但與Rust不同,它還具有Runtime和垃圾收集器(幾兆字節(jié))。但是與Java或Python不同,這個Runtime包含了生成的代碼。最后,Go生成了一個本地的二進(jìn)制代碼,可以在沒有附加依賴項或運行時的情況下在計算機(jī)中運行。
主要特征:
Go具有一流的并發(fā)支持。Go不通過線程和鎖提供“共享內(nèi)存”并發(fā)性,因為編程難度太大。相反,它提供了基于CSP的消息傳遞并發(fā)性(基于Tony Hoare的論文)。Go使用“ Goroutine”(輕量級綠色線程)和“ Channel”進(jìn)行消息傳遞。
Go最大的殺手級功能是:簡單,它是最簡單的系統(tǒng)編程語言。新手軟件開發(fā)人員只需幾天就可以編寫高效的代碼,就像Python一樣。有些大規(guī)模的云原生項目(如Kubernetes、Docker)都是用Go編寫的。
Go還內(nèi)置了垃圾收集器,這意味著開發(fā)人員無需擔(dān)心C/C++中的內(nèi)存管理問題。
Google投入了大量資金打造Go。因此Go擁有大量的工具支持。新手Go開發(fā)人員擁有大量的工具生態(tài)系統(tǒng)。
一般,開發(fā)人員80%的時間都花在了維護(hù)現(xiàn)有代碼上,用于編寫新代碼的時間只占20%。由于其簡單性,Go在語言維護(hù)方面表現(xiàn)出色。如今,Go在業(yè)務(wù)應(yīng)用程序中大量使用。
流行度:
Go一問世就受到了軟件開發(fā)社區(qū)熱烈的歡迎。2009年-2018年,Go一直在TIOBE編程語言排行榜上徘徊。Go的成功為Rust等新一代編程語言鋪平了道路。
如今,Go已是主流編程語言。最近,Go團(tuán)隊宣布了有關(guān)“Go 2”的消息,這門編程語言的發(fā)展會更加穩(wěn)固。
幾乎在所有的流行編程語言排行榜中,Go的排名都很高,已超過許多現(xiàn)有的語言。自2019年12月以來,在TIOBE指數(shù)排名中,Go名列第15位:
根據(jù)StackOverFlow的調(diào)查,十大最受喜愛的編程語言中,Go也位列其中:
此外,根據(jù)GitHub的數(shù)據(jù),Go也是十大發(fā)展最迅速的語言之一:
Google趨勢顯示,在過去的5年中,Go的熱度每年都在增加。
主要用途:
系統(tǒng)編程
Serverless 計算
商業(yè)應(yīng)用
云原生開發(fā)
主要競爭對手:
C
C++
Rust
Python
Java
Kotlin
Java 是企業(yè)軟件開發(fā)領(lǐng)域無可爭議的王者。近年來,Java受到了一些負(fù)面評論:過于冗長,大量樣板代碼,容易出現(xiàn)意外的復(fù)雜性。但是,關(guān)于Java虛擬機(jī)(JVM)的爭論卻很少。JVM是軟件工程的杰作,經(jīng)過了時間的考驗,提供了硬核的runtime。
多年來,Scala等JVM語言一直在努力克服Java的缺點,想成為更好的Java,但他們都失敗了。最終,這場提升Java的探索以Kotlin的誕生結(jié)束。Jet Brains(流行的IDE IntelliJ背后的公司)開發(fā)了Kotlin,它可以在JVM上運行,克服了Java的很多缺點,提供許多現(xiàn)代功能。
與Scala不同的是,Kotlin比Java更簡單,還可在JVM中提供與Go或Python開發(fā)人員同等的生產(chǎn)力。
Google宣布Kotlin是一流的Android應(yīng)用開發(fā)語言,因此Kotlin在社區(qū)中的接受度得到了大幅提高。自2017年以來,同樣受歡迎的Java Enterprise框架Spring也開始支持Kotlin。我曾嘗試結(jié)合Kotlin與Reactive Spring使用,體驗非常棒。
主要特征:
Kotlin的主要賣點在于其語言設(shè)計。我總是將Kotlin視為JVM上的Go/Python,因為它簡潔明了的代碼。因此,Kotlin的生產(chǎn)力很高。
與許多其他現(xiàn)代語言一樣,Kotlin提供了Null指針、安全性、類型推斷等功能。
由于Kotlin也運行在JVM中,因此現(xiàn)有Java庫龐大的生態(tài)系統(tǒng)都可供使用。
Kotlin是一流的Android應(yīng)用開發(fā)語言,并且已經(jīng)超過Java,成為開發(fā)Android應(yīng)用的首選。
Kotlin得到了JetBrains和Open Source的支持,因此具有出色的工具支持。
Kotlin有兩個有趣的項目:Kotlin Native(將Kotlin編譯為原生代碼)和kotlin.js(Kotlin到JavaScript)。如果成功,則可以在JVM外部使用Kotlin。
Kotlin還提供了一種簡單的方式來編寫DSL(域特定語言)。
流行度:
自2015年首次發(fā)布以來,Kotlin的知名度不斷飆升。根據(jù)Stack Overflow,Kotlin是2019年第四大最受歡迎的編程語言:
Kotlin還是增長最快的編程語言之一,排名第四:
在流行編程語言排名網(wǎng)站PyPl的排名中,Kotlin名列第十二名,并具有較高的上升趨勢:
自從Google宣布Kotlin是一流的Android應(yīng)用開發(fā)語言以來,Kotlin的流行趨勢出現(xiàn)了大幅上漲,如下所示:
主要用途:
企業(yè)應(yīng)用程序
主要競爭對手:
TypeScript
JavaScript是一門優(yōu)秀的編程語言,在2015年之前,JavaScript有很多缺點。著名的軟件工程師Douglas Crockford寫了一本書名為《JavaScript: The Good Parts》,暗示了JavaScript有很糟的部分。無模塊化,還有“回調(diào)地獄”,因此開發(fā)人員都不喜歡維護(hù)特別大的JavaScript項目。
Google甚至還開發(fā)了一個平臺,可將Java代碼反編譯為JavaScript代碼(GWT)。許多公司和個人都曾嘗試開發(fā)更好的JavaScript,例如CoffeeScript、Flow、ClojureScript。最終,微軟的TypeScript取得了成功。
微軟的一隊工程師在著名的Anders Hejlsberg的帶領(lǐng)下,創(chuàng)建了JavaScript的靜態(tài)類型、模塊化超集——TypeScript。
TypeScript可以編譯為JavaScript。于2014年首次發(fā)布后,TypeScript很快引起了社區(qū)的關(guān)注。Google當(dāng)時還計劃開發(fā)JavaScript的靜態(tài)類型超集。Google對TypeScript青睞有加,以至于他們沒有開發(fā)新的語言,而是選擇與微軟合作改進(jìn)TypeScript。
Google選擇TypeScript作為其SPA框架Angular 2+的主要編程語言。此外,流行的SPA框架React也提供對TypeScript的支持。另一個流行的JavaScript框架Vue.js也宣布將使用TypeScript開發(fā)新的Vue.js 3:
另外,node.js的創(chuàng)建者Ryan Dahl已決定使用TypeScript來開發(fā)安全的Node.js替代品Deno。
主要特征:
流行度:
開發(fā)人員喜歡TypeScript的優(yōu)雅語言設(shè)計。在StackOverFlow最受歡迎的語言類別的調(diào)查中,TypeScript與Python并列第二名:
根據(jù)GitHub的排名,TypeScript是增長最快的編程語言之一,排名第五:
從GitHub的貢獻(xiàn)度來看,TypeScript排名第七,打進(jìn)了前十:
Google的趨勢表明,在過去的幾年中,TypeScript的熱度越來越高:
主要用途:
主要競爭對手:
Swift
當(dāng)初喬布斯拒絕在iOS中支持Java(和JVM),他認(rèn)為Java不再是主流編程語言。如今我們發(fā)現(xiàn)喬布斯當(dāng)初的估計是錯的,雖然iOS仍然不支持Java。蘋果選擇了Objective-C作為iOS中的首選編程語言。Objective-C是一門很難掌握的語言,它不支持現(xiàn)代編程語言所要求的高生產(chǎn)力。
后來,蘋果的Chris Lattner和其他人開發(fā)了一種多范例、通用的、編譯編程語言——Swift,來替代Objective-C。Swift的第一個穩(wěn)定版本于2014年發(fā)布。Swift還支持LLVM編譯器工具鏈(也由Chris Lattner開發(fā))。Swift與Objective-C代碼庫具有出色的互操作性,并且已確立為iOS應(yīng)用開發(fā)中的主要編程語言。
主要特征:
流行度:
開發(fā)人員對Swift的喜愛不亞于許多其他現(xiàn)代編程語言。根據(jù)StackOverflow的調(diào)查,Swift在最受歡迎的編程語言中排名第六:
2019年,在TIOBE的編程語言排名中,Swift的排名上升到了第10名。鑒于這種編程語言只有5年的歷史,可以說是成績斐然:
Google的趨勢表明,在過去的幾年中,Swift的熱度出現(xiàn)了激增:
主要用途:
主要競爭對手:
Dart
Dart是Google出品的第二大編程語言。Google是Web和Android領(lǐng)域的巨頭,因此Google在Web和應(yīng)用領(lǐng)域開發(fā)自己的編程語言也不足為奇。在丹麥軟件工程師Lars Bak(領(lǐng)導(dǎo)Chrome的 JavaScript V8引擎開發(fā))的帶領(lǐng)下,Google于2013年發(fā)布了Dart。
Dart是一種通用編程語言,支持“強(qiáng)類型”和“面向?qū)ο蟆本幊獭art也可以轉(zhuǎn)編譯為JavaScript,凡是JavaScript可以運行的任何地方(例如Web、移動、服務(wù)器)幾乎都可以運行 Dart。
主要特征:
流行度:
根據(jù)GitHub Octoverse數(shù)據(jù)顯示,Dart是2019年增長最快的編程語言,去年它的流行度增長了五倍:
根據(jù)TIOBE指數(shù)顯示,Dart排名第23,僅用了4年時間就超過了很多其他的現(xiàn)代編程語言:
根據(jù)StackOverflow的調(diào)查,Dart在最受歡迎的編程語言中排名第12:
受Flutter的影響,Google的趨勢表明,在過去的兩年中,Dart的熱度急劇上升:
主要用途:
主要競爭對手:
Julia
本文提及的大多數(shù)編程語言都是由大型公司開發(fā)的,但Julia是個例外??萍加嬎泐I(lǐng)域通常都會使用動態(tài)語言,例如Python、Matlab。雖然這些語言提供易于使用的語法,但不適用于大規(guī)模的科技計算。他們需要使用C/C ++庫執(zhí)行CPU密集型任務(wù),因此這就產(chǎn)生了著名的“兩種語言”的問題,因為他們需要粘合代碼來綁定兩種語言。由于編寫的代碼需要在兩種語言之間來回切換,因此總是會損失部分性能。
為了解決這個問題,麻省理工學(xué)院的一隊研究人員計劃從頭開始創(chuàng)建一種新的語言,這種語言既可以利用現(xiàn)代硬件的優(yōu)勢,而且還結(jié)合其他語言的優(yōu)勢。于是,Julia誕生了。
Julia是一種動態(tài)的高級編程語言,提供一流的并發(fā)、并行和分布式計算支持。Julia的第一個穩(wěn)定版本于2018年發(fā)布,并很快受到社區(qū)和行業(yè)的關(guān)注。Julia可用于科學(xué)計算、人工智能和許多其他領(lǐng)域,而且還可以解決“兩種語言”的問題。
主要特征:
流行度:
Julia在許多領(lǐng)域主要與Python競爭。由于Python是最流行的編程語言之一,因此Julia想晉升主流還需要幾年的時間。
雖然Julia非常新(只有一歲),但仍在TIOBE指數(shù)中排到第43名:
Google趨勢顯示,在過去的一年中,Julia的熱度在穩(wěn)步增長:
但是考慮到Julia的功能集,以及NSF、DARPA、NASA、因特爾等公司的推動,相信Julia取得突破的進(jìn)展只是時間的問題。
主要用途:
主要競爭對手:
原文鏈接:
本文為 CSDN 翻譯,轉(zhuǎn)載請注明來源出處。
【End】
Python
Matlab
科學(xué)計算
高性能計算
數(shù)據(jù)科學(xué)
可視化
與Rust一樣,Julia的主要特征在于語言的設(shè)計。這種語言在不犧牲性能的情況下,將高性能和科學(xué)計算中現(xiàn)有編程語言的一些功能結(jié)合在一起。就目前的情況來看,Julia出色地完成了這項任務(wù)。
Julia是一種動態(tài)編程語言,支持類型系統(tǒng)但類型不是必須的。因此,Julia這種編程語言很容易學(xué)習(xí),生產(chǎn)力很高。
Julia的核心是多調(diào)度編程范例。
Julia內(nèi)部支持并發(fā)、并行和分布式計算。
Julia為I/O密集型任務(wù)提供異步I/O。
Julia的運行速度非???,可用于需要數(shù)百萬個線程的科學(xué)計算。
JavaScript
TypeScript
應(yīng)用開發(fā)
UI開發(fā)
與Go一樣,Dart也非常注重開發(fā)人員的工作效率。由于Dart簡潔的語法,以及高效的生產(chǎn)力,受到開發(fā)人員的喜愛。
Dart還提供“強(qiáng)類型”和“面向?qū)ο蟆本幊獭?/p>
Dart是少數(shù)同時支持JIT編譯(運行時編譯)和AOT編譯(創(chuàng)建時編譯)的編程語言之一。因此,Dart可以針對JavaScript運行時(V8引擎),并且Dart可以編譯為快速的原生代碼(AOT編譯)。
跨平臺原生應(yīng)用程序開發(fā)平臺Flutter選擇了Dart作為開發(fā)iOS和Android應(yīng)用的編程語言。從那以后,Dart的流行度越來越高。
與Goog的Go編程語言一樣,Dart也具有出色的工具支持和龐大的Flutter生態(tài)系統(tǒng)。Flutter的日益普及也會推動Dart的采用率升高。
Objective-C
Rust
Go
iOS應(yīng)用開發(fā)
系統(tǒng)編程
客戶端開發(fā)(通過WebAssembly)
Swift的殺手級功能之一是其語言設(shè)計。語言本身很簡單,語法簡潔,比Objective-C更高效。
Swift還提供了現(xiàn)代程序語言的功能:null安全。此外,它還提供了語法糖來避免“厄運金字塔”。
作為一種編譯語言,Swift和C++一樣快。
Swift支持LLVM編譯器工具鏈。因此,我們可以在服務(wù)器端編程,甚至瀏覽器編程(使用WebAssembly)中使用Swift。
Swift提供了自動引用計數(shù)(ARC)支持,可抑制內(nèi)存管理的不善。
JavaScript
Dart
Web UI開發(fā)
服務(wù)器端開發(fā)
與Go或Kotlin同樣,TypeScript的主要特征也是語言設(shè)計。TypeScript憑借其簡潔明快的代碼,成為了目前最優(yōu)雅的編程語言之一。就開發(fā)人員的生產(chǎn)力而言,它與JVM或Go/Python上的Kotlin并駕齊驅(qū)。TypeScript是生產(chǎn)力最高的JavaScript超集。
TypeScript是JavaScript的強(qiáng)類型超集,特別適合大型項目,而且可以稱為“可擴(kuò)展的JavaScript”。
單頁應(yīng)用程序框架的“三巨頭”(Angular、React、Vue.js)為TypeScript提供了出色的支持。在Angular中,TypeScript是首選的編程語言。在React和Vue.js中,TypeScript越來越受歡迎。
最大的兩家技術(shù)巨頭:微軟和Google正在合作開發(fā)由活躍的開源社區(qū)支持的TypeScript。因此,TypeScript擁有最好的工具支持。
由于TypeScript是JavaScript的超集,因此凡是可以運行JavaScript的任何地方都可以運行TypeScript,包括瀏覽器、服務(wù)器、移動設(shè)備、物聯(lián)網(wǎng)設(shè)備和云。
Java
Scala
Python
Go
主要有兩種可供你選擇:
1,java;
2,C++;
java方面:現(xiàn)在國外幾乎所有大學(xué)的計算機(jī)教材都采用java,而且,jvm具有非 常強(qiáng)大的跨平臺性,可移植性高,作為開源巨頭——sun公司所開發(fā)出的語言,有著非常大的潛力,是一種灰常流行的語言。
C++方面:全世界都在使用,全世界都說好,不過部分語法比較復(fù)雜(特別是里面的指針問題),聽說“學(xué)會C++,走遍天下”。
其他:C#可以做出非常炫的界面,看你具體想做哪方面的工作,做美工的話C#還是不能放過滴~
學(xué)習(xí)方面的注意的地方:
if(大學(xué)生)
大學(xué)畢業(yè)前寫夠1W行代碼就行了;
else
每天一百行;//cos practice makes perfect
推薦書籍:
英文好的推薦閱讀原版C++primer(中文翻譯出來后有些句子的原意會被曲解,讀英文版還有利于你英文水平的提高,再說遠(yuǎn)一點,想搞好計算機(jī)的話英文非常重要,因為computer is not made in china~),Code Complete;
最后,無論你學(xué)什么,只要認(rèn)真學(xué)了,學(xué)好了,都是強(qiáng)大的~
三百六十行行行出狀元~
best regard~
在為后端開發(fā)選擇編程語言時,您的選擇決定了產(chǎn)品將如何操作、擴(kuò)展和滿足用戶需求。
最常見的問題之一是 Node.js 與 Python 的兩難選擇 。 這兩個選項非常受歡迎,并且各有利弊。我們與兩者合作,并在這里比較它們的優(yōu)缺點,并幫助您確定哪個更適合您的項目。
定義產(chǎn)品種類。 它是數(shù)據(jù)量大的應(yīng)用程序還是以界面為中心的程序?它的功能主要是靜態(tài)的還是交互式的?在這個階段,分析你的競爭對手、市場和最終用戶的需求。
定義區(qū)域。 了解你的產(chǎn)品將在哪里使用非常重要:在特定地區(qū)、全國或國際上。面積越大,你就越需要仔細(xì)考慮建筑和技術(shù)解決方案。
進(jìn)行市場調(diào)研。 獨特且不斷被要求是至關(guān)重要的。這意味著徹底的營銷研究,了解你的主要競爭對手,并擁有清晰的買家角色。
分析你的資源。 了解你擁有多少具有相關(guān)經(jīng)驗的可用專家以及是否需要雇用外包開發(fā)人員的時刻。
明確主要績效標(biāo)準(zhǔn)。 沒有完美的后端開發(fā)工具。分析速度、安全性、交互性、響應(yīng)性,并選擇其中哪些具有最高優(yōu)先級。
Python 是一種面向?qū)ο蟮膭討B(tài)語言,因其簡單的語法和通用性而備受推崇。Python 仍然是市場上最受歡迎的語言之一。
它的主要優(yōu)點之一是支持多種編程風(fēng)格,使其非常適合復(fù)雜的計算項目和簡單的網(wǎng)站。
Statista將 Python 定義為 2020 年最流行的編程語言。它被全球 29% 的開發(fā)人員使用。根據(jù)JetBrains 的研究,87% 了解 Python 的開發(fā)人員使用 Python 作為他們的主要編程語言,其中 27% 的人將 Python 用于 Web 開發(fā),28% 用于機(jī)器學(xué)習(xí),18% 用于數(shù)據(jù)分析。
Python 提供對 Berkeley 套接字 API 的訪問權(quán)限。這是處理客戶端-服務(wù)器網(wǎng)絡(luò)的模塊。Python 提供了一個簡單而一致的 API,對應(yīng)于這些系統(tǒng)調(diào)用的 C 等價物。Python 有一些類,可以更輕松地在其代碼中使用這些低級套接字方法。
動態(tài)和面向?qū)ο蟮恼Z法允許 Python 開發(fā)人員花更少的時間處理復(fù)雜的代碼。許多軟件包、附加組件和庫提供了從最簡單的 Web 后端到復(fù)雜的科學(xué)計算的現(xiàn)成選項。
這些東西使 Python 成為開發(fā) MVP和原型的完美決策。結(jié)果: 快速進(jìn)入市場,同時支持各種迭代,以及高比例的重用代碼。
與其他語言和開發(fā)框架相比,Python 使用的代碼行更少。這不僅與數(shù)量有關(guān),而且還使團(tuán)隊工作時更容易理解代碼。 Python 允許程序員用幾行代碼表達(dá)復(fù)雜的想法。
Python 有一個特殊的好處,那就是經(jīng)常使用英語術(shù)語而不是數(shù)學(xué)表達(dá)式。該代碼易于閱讀和理解。
Python 應(yīng)對多種開發(fā)挑戰(zhàn)。盡管生態(tài)系統(tǒng)并不新鮮,但不斷添加新軟件包和附加組件使其保持相關(guān)性。目前,它是最適合人工智能、計算機(jī)視覺、機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)、統(tǒng)計學(xué)和其他領(lǐng)域的語言之一。
Python 已經(jīng)存在了一段時間,所以它圍繞自己建立了一個大社區(qū)。開發(fā)人員使用開源資源和教程,這使得專業(yè)成長和經(jīng)驗交流更容易。
社區(qū)起初可能看起來并不重要,但它讓開發(fā)人員參與并更新。
如果你優(yōu)先考慮高速,Python 將不是最佳選擇。Python 可以輕松處理密集型操作,但與其他語言相比,它需要更多時間。如果你需要運行多個請求,Node.js 的異步輸入和輸出會更適合你。
移動應(yīng)用程序的低性能是一個主要問題。如果后端在設(shè)計上很慢,那么用戶體驗就會受到影響。
使 Python 代碼適應(yīng)移動設(shè)備的另一個問題是它不能很好地與原生組件一起使用。如果你將不太兼容的代碼庫與低性能結(jié)合起來,你將遇到性能問題。
Node.js 是一個基于 JavaScript 編程語言的后端開發(fā)運行時環(huán)境。
Node.js 使用異步的、事件驅(qū)動的輸入輸出。它表明運行時環(huán)境可以同時處理多個請求,而不必等待前一個請求完成。
根據(jù)Statista的說法,Node.js 是最常用的編程框架。大約 53% 的開發(fā)人員在他們的項目中使用 Node.js。Twitter、Aliexpress、Coursera 和許多其他使用 Node.js 創(chuàng)建的巨頭。Netflix 和 Paypal 選擇 Node.js 來支持他們的微服務(wù)。它使他們能夠?qū)訒r間從 40 分鐘縮短到 1 分鐘。
Node.js 是一種允許您創(chuàng)建 WebSocket (一種允許實時雙向客戶端-服務(wù)器網(wǎng)絡(luò)的協(xié)議)的編程語言。在在線應(yīng)用程序中,WebSockets 是 HTTP 通信的替代方案。一旦連接形成,通道就會保持打開狀態(tài),從而實現(xiàn)高速連接,而客戶端-服務(wù)器網(wǎng)絡(luò)的延遲和開銷很小。聊天、在線多人 游戲 、Google 文檔和其他常見用例只是其中的幾個例子。
Node.js 的主要優(yōu)勢是處理復(fù)雜的并發(fā)進(jìn)程。大型公司之所以選擇它來為其基礎(chǔ)架構(gòu)提供動力,是因為它具有快速處理大型工作負(fù)載的成熟能力。
選擇 Node.js 的主要原因是它的快速性能。它在單個 Node.js 服務(wù)器上并行處理大量請求。
Node.js 使用 Google Chrome V8 引擎作為運行時環(huán)境來執(zhí)行 JavaScript。該引擎使用即時編譯來處理 JavaScript 代碼并快速提供即時輸出。它使 Node.js 成為交互式開發(fā)的首選。
多虧了這一點,您可以獲得出色的用戶體驗,使 Node.js 成為實時應(yīng)用程序、信使、 游戲 應(yīng)用程序等的首選。
全棧 Web 開發(fā)是一種趨勢——Medium、Airbnb、Paypal、Netflix 等企業(yè)轉(zhuǎn)而使用 Node.js,在前端和后端開發(fā)中都使用 JavaScript。它保證:
在 Node.js 服務(wù)器上的整個開發(fā)過程中重用 JavaScript 可以加快交付速度并簡化通信。當(dāng)所有團(tuán)隊成員都能理解代碼時,這是一個巨大的優(yōu)勢。
Node.js 服務(wù)器有很多 NPM 包。Netflix 和 Paypal 同時遷移到 Node.js 和微服務(wù),取得了驚人的效果。他們擺脫了代碼重復(fù),組織了架構(gòu),引入了額外的功能,并改善了用戶體驗。
Node.js 不能很好地處理復(fù)雜的操作。它的優(yōu)點是可以快速處理多個簡單的請求,但是任何復(fù)雜的請求都會導(dǎo)致延遲。
假設(shè)您的應(yīng)用程序必須運行復(fù)雜的操作。Node.js 不是一個好的選擇。有一些方法可以讓 Node.js 更好地處理復(fù)雜的任務(wù),但默認(rèn)功能并不完善。
該編程語言基于 NPM 模塊構(gòu)建,它允許您擴(kuò)展內(nèi)置功能并創(chuàng)建幾乎任何東西。然而,一個特定的模塊可以獨立運行,但與系統(tǒng)的其余部分不兼容。
一些 NPM 模塊可能不兼容,需要重新設(shè)置。如果你運行大型基礎(chǔ)架構(gòu),錯誤可能會導(dǎo)致崩潰。
Node.js 和 Python 堆棧是出色的后端,為開發(fā)人員提供了令人印象深刻的可能性。Python 擅長執(zhí)行復(fù)雜的操作和支持創(chuàng)新,但它在速度上有所損失。Node.js 性能出眾,但不擅長處理復(fù)雜的操作。但決定取決于項目類型。
樓上說了一堆,還物競天擇,眾望所歸,不懂別造謠啊。。。。其實就是純粹的歷史原因。
1995年,網(wǎng)景公司決定第一次讓瀏覽器支持一種內(nèi)置的語言,當(dāng)時有兩個選擇,一個是采用現(xiàn)有的語言,比如Perl、Python、Tcl、Scheme等等,允許它們直接嵌入網(wǎng)頁,另一個是發(fā)明一種全新的語言。機(jī)緣巧合下,網(wǎng)景和當(dāng)時java的所有者sun合作,決定推出新語言,同年,布蘭登加入網(wǎng)景,正式開發(fā)出js。
1996年,憑借跟IBM的合作關(guān)系,開始成為巨頭的微軟宣布IE正式支持編程腳本語言,開發(fā)出了新的JScript,同年11月網(wǎng)景就專利問題跟微軟打官司,然而微軟不按常理出牌,反而收購了網(wǎng)景。這也導(dǎo)致網(wǎng)景公司的布蘭登開始開發(fā)出另一款巨頭瀏覽器Firefox。從而,市場上主流的瀏覽器變成ie和Firefox。
但是要注意,即便如此,所有瀏覽器還是只支持JavaScript,只不過當(dāng)時的js分成兩個版本,有差異。這之后就是大家熟悉的瀏覽器混戰(zhàn)了,谷歌推出chrome,同時招攬了微軟和Firefox的一些研發(fā)人員。慢慢的就變成現(xiàn)在的局面,但是歷史已經(jīng)決定了支持的語言是js了。
這也是為什么Python迷不服,認(rèn)為Python各方面都不輸,而且比JavaScript還要早誕生,而瀏覽器只支持JavaScript。無奈,人家JavaScript是親生的,不服也不行啊。
網(wǎng)頁名稱:關(guān)于javascript巨頭的信息
本文路徑:http://jinyejixie.com/article22/dsseicc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、標(biāo)簽優(yōu)化、定制網(wǎng)站、營銷型網(wǎng)站建設(shè)、網(wǎng)站排名、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)