2022 年,最具投資價(jià)值的前十大編程語(yǔ)言
一年的開(kāi)始,通常要立個(gè) flag,今天要不選一個(gè)沒(méi)學(xué)過(guò)的編程語(yǔ)言學(xué)一下?
如果說(shuō)一個(gè)編程語(yǔ)言是一支股票的話,你會(huì)選擇哪一個(gè)編程語(yǔ)言去投資呢?你可能會(huì)去查一些編程語(yǔ)言的排行榜和分析,就像標(biāo)準(zhǔn)普爾 500 指數(shù)對(duì)股市所做的那樣,比如說(shuō)股票有 3 種類(lèi)型:
大盤(pán)股:業(yè)務(wù)穩(wěn)定的大公司,如財(cái)富500強(qiáng)公司。上行是穩(wěn)定的,但不是多方面的,下行是有限的。
中盤(pán)股:未來(lái)成為大盤(pán)股的可能性很高的中型公司。這些回報(bào)率要高得多,但也可能大幅下降。
小盤(pán)股:即將成立的公司。目前非常小,但潛力很大。這些可能變成了多張張張,但也非常危險(xiǎn)。
如果只投資大盤(pán)股,回報(bào)將受到抑制。如果只投資小盤(pán)股,可能會(huì)中大獎(jiǎng),但也可能會(huì)破產(chǎn)。多樣化的投資組合為每個(gè)資產(chǎn)類(lèi)別分配資金。這保持了回報(bào)的穩(wěn)定,也有獲得更高回報(bào)的公平機(jī)會(huì)。
本文也按大中小盤(pán)的分類(lèi)分享 10 個(gè)最具投資(學(xué)習(xí))價(jià)值的編程語(yǔ)言,這些語(yǔ)言將足以完成大多數(shù)團(tuán)隊(duì)所做的大部分工作,選擇一個(gè)或多個(gè),學(xué)它。
一圖勝千言
大盤(pán)
大盤(pán)編程語(yǔ)言是至少一個(gè)域或多個(gè)生態(tài)系統(tǒng)中的主導(dǎo)者。
1、Python
Python 是一種廣泛使用的解釋型、高級(jí)和通用的編程語(yǔ)言。如果你是一名初學(xué)者,學(xué)習(xí) Python 就是你最好的選擇,因?yàn)樗菀讓W(xué),功能強(qiáng)大,很容易就能構(gòu)建 Web 應(yīng)用,非常適合初學(xué)者作為入門(mén)的開(kāi)發(fā)語(yǔ)言。
它確實(shí)存在性能問(wèn)題(包括 GIL),但在機(jī)器性能已經(jīng)快到頂?shù)慕裉欤瑤缀撩氲难舆t已經(jīng)不再重要,開(kāi)發(fā)效率比機(jī)器效率更為重要。最著名的云核算開(kāi)源渠道 OpenStack 就是基于 Python 開(kāi)發(fā)的。
人工智能,機(jī)器學(xué)習(xí)首選開(kāi)發(fā)語(yǔ)言也是 Python。Python 已經(jīng)成為互聯(lián)網(wǎng)開(kāi)發(fā)的焦點(diǎn)。在 TIOBE 編程語(yǔ)言走勢(shì)圖可以看到,Python 已經(jīng)是第一位。
Python 有很多殺手級(jí)的框架,F(xiàn)lask、FastAPI 和 Django 是開(kāi)發(fā)微服務(wù)的流行框架。NumPy、SciPy、Pandas、Scikit-Learn、TensorFlow 和PyTorch 是數(shù)據(jù)處理和機(jī)器學(xué)習(xí)最受歡迎的庫(kù)。Jupyter Notebook 是數(shù)據(jù)科學(xué)家流行的、幾乎是默認(rèn)的 IDE。
2、Javascript/TypeScipt
JavaScript 是一種解釋、動(dòng)態(tài)類(lèi)型和帶垃圾回收的編程語(yǔ)言。TypeScript 是 JavaScript 的靜態(tài)類(lèi)型超級(jí)集。
JavaScript 與 HTML 和 CSS 一起統(tǒng)治著 Web 開(kāi)發(fā)世界。所有主要網(wǎng)頁(yè)瀏覽器都優(yōu)化了 JavaScript 執(zhí)行引擎。
Node.js 是一個(gè)受歡迎的服務(wù)器運(yùn)行時(shí)環(huán)境。Express、Sails、Hapi、Meteor、Loopback、Fastify、Koa 是最受歡迎的網(wǎng)絡(luò)服務(wù)框架。
React、Angular、Vue、Ember、Inferno、Svelte、Preact 是流行的前端框架。這種前端和后端的全棧覆蓋使 JavaScript 成為開(kāi)發(fā)Web應(yīng)用程序的最主要語(yǔ)言。
JavaScript甚至在機(jī)器學(xué)習(xí)方面也取得了進(jìn)展。例如,TensorFlow.JS 可用于在 node.js 的瀏覽器中部署機(jī)器學(xué)習(xí)模型。
3、Java
Java 是一種面向?qū)ο蟆㈧o態(tài)類(lèi)型、垃圾收集的編程語(yǔ)言,在 Java 虛擬機(jī)(JVM)上使用實(shí)時(shí)(JIT)編譯進(jìn)行解釋。
除了 C 語(yǔ)言,Java 幾乎是性能最好的編程語(yǔ)言,從第一張編程語(yǔ)言走勢(shì)圖也可以看到,經(jīng)過(guò)很多年編程語(yǔ)言競(jìng)爭(zhēng)依然傲視群雄,這就是它主導(dǎo)企業(yè)軟件市場(chǎng)的原因。它也是 Android 應(yīng)用程序開(kāi)發(fā)中的主導(dǎo)語(yǔ)言。
Java/Java EE是開(kāi)發(fā)企業(yè)級(jí)服務(wù)的經(jīng)典平臺(tái)。有許多微服務(wù)框架:Spring Boot、Vert.X、Helidon、Lagom、AxonIQ、Micronaut、Dropwizard、Quarkus。
Java 也是數(shù)據(jù)處理應(yīng)用程序中的一種突出語(yǔ)言。Spark 和 Flink 等大多數(shù) Apache 數(shù)據(jù)處理框架都基于 JVM。
4、C#
C# 是適用于 Windows 的靜態(tài)類(lèi)型、垃圾回收的編程語(yǔ)言。微軟生態(tài)的必備語(yǔ)言。Active Server Pages(ASP.NET)是其 .NET 平臺(tái) Web 開(kāi)發(fā)框架。
5、Swift
Swift 是一種通用、靜態(tài)類(lèi)型、編譯的語(yǔ)言。它是目標(biāo) C 語(yǔ)言的替代品,Apple 和 iOS 是兩個(gè)占主導(dǎo)地位的移動(dòng)平臺(tái)之一,Apple App Store 是 iPhone 和 iPad 應(yīng)用程序市場(chǎng),開(kāi)發(fā)人員在這些平臺(tái)上發(fā)布軟件可獲得收益。Swift 是用于創(chuàng)建 iOS 應(yīng)用程序的編程語(yǔ)言。
中盤(pán)
中盤(pán)類(lèi)編程語(yǔ)言已具有顯著用途,并可能至少在一個(gè)域或生態(tài)系統(tǒng)中成為主導(dǎo)者
6、Kotlin
Kotlin 是一種具有類(lèi)型推斷的跨平臺(tái)、靜態(tài)類(lèi)型的編程語(yǔ)言。它在 JVM 上運(yùn)行,并與 Java 完全互操作。谷歌使其成為 Android 的首選語(yǔ)言。Kotlin 主要針對(duì) JVM,但它可以編譯為 JavaScript 和本機(jī)代碼(使用 LLVM )。因此,Kotlin 代碼可以在瀏覽器和 iOS 中運(yùn)行。
在服務(wù)器端,它可以在任何 Java 微服務(wù)框架以及 Ktor 或 http4k 上運(yùn)行。Kotlinx.html 是構(gòu)建 DOM 的 DSL, Kotless 是無(wú)服務(wù)器部署的框架。還有一些不斷發(fā)展的 Kotlin 數(shù)據(jù)科學(xué)庫(kù)。
在 JVM 上運(yùn)行,并受益于成熟的 Java 生態(tài)系統(tǒng),跨平臺(tái),可編譯為 JavaScript,這些優(yōu)勢(shì)使得 這些優(yōu)勢(shì)使得 Kotlin 越來(lái)越受歡迎。
7、Golang
Go 語(yǔ)言是一種來(lái)自谷歌的靜態(tài)類(lèi)型編譯編程語(yǔ)言。它的語(yǔ)法類(lèi)似于 C,但具有內(nèi)存安全、垃圾收集和結(jié)構(gòu)輸入。Go 語(yǔ)言的殺手級(jí)應(yīng)用 Docker 已經(jīng)成為新一代的云計(jì)算技術(shù)。
Go 語(yǔ)言的 Goroutine 和 Channel 這兩個(gè)神器簡(jiǎn)直就是并發(fā)和異步編程的巨大福音。像 C、C++、Java、Python 和 JavaScript 這些語(yǔ)言的并發(fā)和異步的編程方式控制起來(lái)就比較復(fù)雜了,并且容易出錯(cuò),但 Go 語(yǔ)言卻用非常優(yōu)雅和流暢的方式解決了這個(gè)問(wèn)題。
Go 的優(yōu)勢(shì)是其性能,因此它有可能在編寫(xiě)服務(wù)器端代碼方面占據(jù)主導(dǎo)地位。
8、Scala
Scala 是一種靜態(tài)類(lèi)型面向?qū)ο蟮墓δ芫幊陶Z(yǔ)言。Scala 代碼可以編譯為 Java 字節(jié)碼并在 JVM 上運(yùn)行。它提供了 JVM 生態(tài)系統(tǒng)的優(yōu)勢(shì),而無(wú)需 Java 的冗長(zhǎng)性。與 Kotlin 一樣,它與 Java 是可互操作的。除了 Java 框架外,Scala 服務(wù)還可以使用 Akka HTTP 、 Play 、 Chaos 和 Scalatra 等框架開(kāi)發(fā)。
Scala.js 是將 Scala 編譯為 JavaScript 的編譯器,Scala Native 是將其編譯為本機(jī)代碼的 LLVM 編譯器。Scala 在編寫(xiě)大數(shù)據(jù)處理應(yīng)用程序時(shí)也很受歡迎。
小盤(pán)
9、Rust
Rust 是一種靜態(tài)類(lèi)型的編程語(yǔ)言,專(zhuān)為性能和安全而設(shè)計(jì)。它有一個(gè)強(qiáng)大的類(lèi)型系統(tǒng)和所有權(quán)模型,保證編譯時(shí)的內(nèi)存安全(不收集垃圾)和線程安全。Rust 的明顯用途是開(kāi)發(fā)后端服務(wù),但它也可以用于開(kāi)發(fā)帶有 Web 組件的前端。Hyper、Rocket、Actix、Warp 是最受歡迎的網(wǎng)絡(luò)框架之一。
考慮到 Rust 的編譯時(shí)內(nèi)存和線程安全保證,Rust 框架是 Web Framework Benchmark 中速度最快的框架之一也就不足為奇了。有了前端 WASM 框架,Rust 可以成為強(qiáng)大的全棧替代品。
10、Dart
Dart 是一種靜態(tài)類(lèi)型、垃圾收集的編程語(yǔ)言,專(zhuān)為 Web 和移動(dòng)應(yīng)用程序的客戶開(kāi)發(fā)而設(shè)計(jì)。Dart 為 Flutter 框架提供動(dòng)力——一個(gè)多平臺(tái)用戶界面工具包。Dart 附帶 Dart VM,便于開(kāi)發(fā)。對(duì)于生產(chǎn)部署,代碼將根據(jù)目標(biāo)平臺(tái)編譯為本機(jī)代碼或 JavaScript。出于這些原因,Dart 有潛力成長(zhǎng)為前端開(kāi)發(fā)的主要語(yǔ)言。
最后的話
本文分享了大中小三種類(lèi)型的語(yǔ)言共 10 種,新的一年,你會(huì)選擇哪些編程語(yǔ)言來(lái)學(xué)習(xí)呢?