TypeScript真香,Go未來可期

在這裏插入圖片描述
20 世紀 40 年代,世界上第一個高級編程語言 Plankalkül 在德國誕生,這甚至發生在電腦發明之前。從那開始,每年都有新的編程語言被創造出來。到目前爲止,計算機領域已有上千種語言。而關於“誰是世界上最好的編程語言”這個問題的爭論,也從未停止過。

JavaScript 仍在繼續流行,與此同時,越來越多的前端項目嘗試使用更安全、開發效率更高的 TypeScript 重構。

Go 在服務器開發領域不斷開疆拓土,前景光明。Rust 也在性能敏感的領域逐漸獲得應用,大有替代 C/C++ 等傳統語言之勢。

沒有最好的語言,只有最適合的語言。

創新者:版本常更新,同名不同命

2020 年 3 月,Java 14 如期發佈,而根據其每六個月更新一個版本的發佈週期,Java 15 已經在路上。頻繁的升級讓人有些審美疲勞,甚至有點懶得去看有什麼新特性。相較而言,長期支持版本 Java 8、Java 11 以及將於 2021 年 9 月發佈的 Java 17 更值得關注,相關調查報告顯示,目前仍有超過半數的開發者在使用 Java 8,還有一部分開發者在使用 Java 11,至於其他短期版本的使用者則寥寥無幾。

爲什麼沒什麼人用,Java 還在不斷髮布新版本呢?我們認爲這些短期支持版本可以看做是長期支持版本的超前點播,並非爲生產而創造。而語言本身也需要根據時代的需求不斷引入新的特性,向社區表示自己還在與時俱進。

新特性看起來不錯,爲什麼你的項目仍停留在 Java 8 而不去遷移到更高的版本呢?大多數時候,升級版本是一件喫力不討好的事情。而且,就算很多團隊已經用上了 Java 8,但像 Lambda 表達式等 Java 8 中引入的新特性,普及率並不高。

早期採用者:Strings 有幾種寫法?

Go 語言很火,但沒有你想象的那麼火。在 TIOBE 近一兩年的榜單中,Go 語言在前 20 位中,總體呈現穩中有升的趨勢,今年 3 月又一次衝進前十。而在國內,沒有哪個大廠不做 Kubernetes,微服務和 Serverless,這些正是雲原生語言 Go 的主場。

有親爹谷歌的扶持,有大廠背書,社區和生態持續良好發展,Go 語言的前途一片光明。因此,我們認爲 Go 語言有希望越過早期採用者階段,進入早期大衆階段。

那麼,Go 會擠走 Java 成爲下一個企業級編程語言嗎?你可能想得有點多。雖然 Go 語言可以勝任那些業務簡單和追求極致性能的項目,但是複雜業務還是要靠 Java——業務越複雜,Java 越厲害。不過能在 Java 身上啃一口,已經足以證明這個語言的優秀。

早期大衆:都是太子,誰更穩?

在說 TypeScript 之前,必須得說一下它的主創,傳奇人物 Anders Hejlsberg,他在 Borland 開發了 Delphi,後被 Bill Gates 親自邀請到微軟,接連創造了 C#、TypeScript,還主持了.NET 的開發工作。

TypeScript 是一門 KPI 語言嗎?沒事兒重構一下,彰顯自身價值?那你就想岔了。如今,前端項目正在變得越來越複雜,項目規模越來越大,作爲 JavaScript 生態的一部分,TypeScript 的強類型約束雖然帶來了開發成本的增加,但是也幫助開發者減少了寫出低級 bug 的概率,減少了後期維護成本。Vue3.0、Angular 2+、VSCode、Echarts 等知名項目都在用 TypeScript 重構,不經意間,TypeScript 已經在前端領域處處開花。TypeScript,真香!

晚期大衆:小衆與領域主流不衝突

JavaScript 在前端領域的地位不用多說,哪怕 TypeScript 等新語言出現,也不會對它造成太大的衝擊,最終的結果就是這些語言統統變成了它的頭花。著名的 Atwood 定律寫道——任何可以用 JavaScript 來寫的應用,最終都將用 JavaScript 來寫。但業界還有一句話——JavaScript 的優點是可以寫任何東西,缺點是你真的這樣幹了。

擁簇者愛之,嫌棄者有之,不管怎樣,目前 JavaScript 在瀏覽器端依然無可替代,有了 Node.js,它在服務器端也不容小覷。至於火不火什麼的,這不是 JavaScript 會關心的事,它已經不是小孩子了。

寫在最後

編程語言,對程序員有着來自靈魂的致命吸引力。也許,一個普通程序員,他有限生命的每一分鐘都在寫經驗重複性的業務代碼,但這不會阻止他探索一門老語言,學習一門新語言,哪怕這門語言他可能永遠不會在工作中用到。

百家崢嶸,各有千秋,所有的編程語言,是人類積攢了半個多世紀的財富,是專門爲你們準備的禮物,禿頭吧,程序員!擁抱變化,一起奔湧在代碼的河流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章