編程語言趨勢預(yù)測:Rust將成為主流,React 繼續(xù)統(tǒng)治編程世界
在編程語言的世界中,并非所有語言都能保持常青。實(shí)際上,隨著新生代開發(fā)者轉(zhuǎn)向新的編程語言和框架,很多編程語言的命運(yùn)也開始出現(xiàn)不確定性。在未來兩年內(nèi),整體采用情況又會出現(xiàn)哪些變化呢?
本文,Indrek Lasn 對未來兩年內(nèi)部分編程語言的可能趨勢進(jìn)行了預(yù)測,他同時(shí)表示:自己也有可能完全錯了,如果真是這樣,請不要引用本文的內(nèi)容。但他認(rèn)為,這些都是將會發(fā)生的事情。誠然,人并不能預(yù)測未來,但能做出有根據(jù)的猜測。
“預(yù)測未來最好的方法就是去創(chuàng)造未來。”
― Abraham Lincoln(第十六任美國總統(tǒng))
Rust 將成為主流編程語言
Rust 是一種多范式系統(tǒng)編程語言,專注于安全性,尤其是安全并發(fā)性。Rust 在語法上與 C++ 類似,但它的設(shè)計(jì)目的是在保持高性能的同時(shí),提供更好的內(nèi)存安全性。
我們已經(jīng)見證了過去四年來,Rust 編程語言的強(qiáng)勁增長。我相信到 2020 年,Rust 將會正式成為主流編程語言。雖然什么是主流有待自我詮釋,但我相信,學(xué)校將會開始在課程中引入 Rust。此舉將造就一批新的 Rust 工程師。
2019 年 StackOverflow 調(diào)查中受用戶歡迎的編程語言
Rust 已經(jīng)證明,它是一種偉大的編程語言,充滿了活力。除此之外,Rust 還有一個(gè)活躍的社區(qū)。隨著 Facebook 使用 Rust 開發(fā)了 Libra 項(xiàng)目,這成了 Rust 有史以來最大的項(xiàng)目,我們即將看到 Rust 真正取得成就。
如果你想學(xué)習(xí)一門新的編程語言,我強(qiáng)烈建議你學(xué)習(xí) Rust。如果你想了解更多的信息,我會推薦這本書 The Rust Programming Language (Covers Rust 2018) 方便你開始學(xué)習(xí) Rust。進(jìn)擊吧,Rust!
GraphQL 采用率將持續(xù)增長

GraphQL 的 Google 趨勢
隨著我們的應(yīng)用程序變得越來越復(fù)雜,數(shù)據(jù)消費(fèi)需求也在日益增長。我是 GraphQL 的超級粉絲,我已經(jīng)用過很多次了。我認(rèn)為,與傳統(tǒng)的 REST API 相比,GraphQL 是一個(gè)更好的獲取數(shù)據(jù)的解決方案。
雖然典型的 REST API 需要從多個(gè) URL 加載,但 GraphQL API 可以只需一個(gè)請求即可獲得應(yīng)用程序所需的所有數(shù)據(jù)。
在許多不同的環(huán)境和語言中,各種規(guī)模的團(tuán)隊(duì)都使用 GraphQL 來支持移動應(yīng)用程序、網(wǎng)站和 API。
漸進(jìn)式 Web 應(yīng)用是一股不可忽視的力量
漸進(jìn)式 Web 應(yīng)用(Progressive Web Apps,PWA)是一種通過結(jié)合 Web 的特性與移動應(yīng)用的品質(zhì)相結(jié)合來構(gòu)建應(yīng)用的新方法。
比起特定于平臺的本地開發(fā)人員,現(xiàn)在更多的是 Web 開發(fā)人員。一旦大公司意識到他們可以重新利用 Web 開發(fā)者來開發(fā)先進(jìn)的 Web 應(yīng)用,我懷疑這樣一來,將會看到一波巨大的 PWA 浪潮。
不過,大公司需要一段時(shí)間才能適應(yīng),這對技術(shù)來說是很正常的。漸進(jìn)式部分通常傾向于前端開發(fā),因?yàn)橹饕桥c Web Workers API(本地瀏覽器 API)進(jìn)行交互。
Web 應(yīng)用則不會有任何進(jìn)展。越來越多的人開始認(rèn)識到,編寫一個(gè)單一的交叉兼容的 PWA 可以減少開發(fā)的工作量,并節(jié)省大量的時(shí)間,賺到更多的金錢。
PWA 的 Google 趨勢
WebAssembly 的未來將更加光明

WebAssembly
WebAssembly(縮寫 Wasm)是基于堆棧的虛擬機(jī)的二進(jìn)制指令格式。Wasm 被設(shè)計(jì)為用于編譯 C、C++ 和 Rust 等高級語言的可移植目標(biāo)。Wasm 還支持在 Web 上部署客戶端和服務(wù)器應(yīng)用程序。PWA 也可以使用 Wasm。
換句話說,WebAssembly 是一種將 JavaScript 技術(shù)與更高級的技術(shù)相結(jié)合的方法。如果你要在 React 應(yīng)用中使用 Rust 圖像處理庫,WebAssembly 允許你可以這樣做。
性能是關(guān)鍵,隨著數(shù)據(jù)量的增長,保持良好的性能將會變得更加困難。而這就是 C++ 或 Rust 的低級庫開始發(fā)揮作用的時(shí)候。我們將會看到更大的公司采用 WebAssembly 和 snowball。
React 將繼續(xù)統(tǒng)治編程世界
JavaScript 前端庫
React 是流行的前端開發(fā) JavaScript 庫,這也是有原因的。構(gòu)建 React 應(yīng)用很有趣,也很簡單。就構(gòu)建應(yīng)用的經(jīng)驗(yàn)而言,React 團(tuán)隊(duì)和社區(qū)都做得非常出色。
我曾使用過 Vue、Angular 和 React,我認(rèn)為它們都是非常出色的框架。請記住,庫的目標(biāo)是完成工作,所以要少關(guān)注編程風(fēng)格,多關(guān)注如何把工作做好。爭論什么框架是“最好的”一點(diǎn)意義都沒有。一旦選定一個(gè)框架之后,就將你所有的精力都用在構(gòu)建任務(wù)上。
始終在 JavaScript 上下注
我們可以自信地說,2010 年是 JavaScript 的十年。我們已經(jīng)目睹了 JavaScript 的大幅增長,而且到現(xiàn)在,發(fā)展勢頭似乎并沒有放緩。
JavaScript 開發(fā)人員被稱為“不是真正的開發(fā)人員”,從而受到了一些不公待遇。實(shí)際上,JavaScript 是任何大型科技公司的核心,如 Netflix、Facebook、Google 等等。因此,JavaScript 作為一種編程語言,與任何其他編程語言一樣合法。要以身為 JavaScript 開發(fā)者為榮。畢竟,一些炫酷、具有創(chuàng)新性的東西是由 JavaScript 社區(qū)創(chuàng)建的。
幾乎所有的網(wǎng)站都在某種程度上利用了 JavaScript。現(xiàn)在有多少個(gè)網(wǎng)站?答案是:高達(dá)幾百萬!
因此,現(xiàn)在對 JavaScript 開發(fā)者來說,這是前所未有的最好時(shí)機(jī)。薪水在上漲,社區(qū)也一如既往充滿了活力,而且就業(yè)市場巨大。如果你對學(xué)習(xí) JavaScript 很感興趣,那么你可以閱讀 You Don’t Know JS 系列叢書,這是非常棒的讀物。
隨著時(shí)間的推移,語言的變遷
我之前寫過一篇關(guān)于 JavaScript 為何如此受歡迎的文章,你可能也應(yīng)該讀一讀這篇文章:What Makes JavaScript Popular?(https://medium.com/better-programming/what-makes-javascript-javascript-b9ab51ad983a)
開源項(xiàng)目