JavaScript 已成為程式語言進步的障礙?

開源社 發佈 2022-08-16T06:56:34.731100+00:00

今年 6 月份發布的 Stack Overflow 2022 開發者調查報告曾指出,JavaScript 已連續十年成為最流行的程式語言,現有超 65% 的開發人員在使用。


來源:OSCHINA

作者:和燦陽

審稿:袁睿斌

設計:馮歆怡

編輯:朱天瑜


JavaScript(簡稱「JS」) 是一種具有函數優先的輕量級,解釋型或即時編譯型的程式語言,實現功能是人機互動。它雖作為開發 Web 頁面的腳本語言而出名,但也被用到了很多非瀏覽器環境中。今年 6 月份發布的 Stack Overflow 2022 開發者調查報告曾指出,JavaScript 已連續十年成為最流行的程式語言,現有超 65% 的開發人員在使用。

但 JSON 之父 Douglas Crockford 卻在最近的一次採訪中表示,JavaScript 已經成為了進步的障礙。

「我們今天可以對 JavaScript 做的最好的事情就是讓它退役。20 年前,我是 JavaScript 的少數擁護者之一,嵌套函數和動態對象的組合非常出色。我花十年時間試圖糾正其缺陷。但從那時起,人們進一步擴充 Stack Overflow 2022 開發者調查報告語言,而非是使其變得更好。因此 JavaScript 和其他古早語言一樣,已經成為了進步的障礙。我們應該專注於下一種語言,它應該看起來更像 E 而不是 JavaScript。」

缺陷已有預料。Crockford 選擇取代 JavaScript 的 E 是一種面向對象的語言,為安全計算而設計;該語言由他自己、Mark Millerde 等共同創建。用 Crockford 的話說,它 "消除了 Java 許多不好的部分"。他指出,一路發展至今,功能不斷增加,JavaScript 變得越來越複雜,已與 Eich 的原始概念相去甚遠。此外,許多 Web 開發人員並不編寫 JavaScript,相反還編寫了可編譯為 JavaScript 的 TypeScript。TypeScript 由 Microsoft 的 Anders Hejlsberg 發明,理由是 JavaScript 的可塑性和缺乏類型安全性不適於大型應用程式。

TypeScript 在 Stack Overflow 的調查中也名列前茅。其WebAssembly 是一種二進位格式,可被包括 C、C++、C# 和 Rust 在內的語言作為目標,它的創新可能破壞 JavaScript 的主導地位。

有開發者表示,「JavaScript 在短短的幾年裡已經爆炸性地流行起來,這個生態系統複雜得可怕。即使是在全職的 JS 開發者中,這也是一個令人啼笑皆非的現象,它瘋狂到令我們跟不上。」

Crockford 還指出,JavaScript 將很難轉換,尤其是因為它是每個瀏覽器都支持的用於 DOM(文檔對象模型)操作的語言。那麼,在可預見的未來是否有什麼可以取代它?Crockford 表示自己一直希望可以做到,但仍存在兩個困難:「首先,我們還沒有一種語言,它需要是專為安全分布式編程而設計的基於最小能力的參與者語言。其次,我們需要所有的瀏覽器製造商都採用它,同時用設計良好的界面替換 DOM。」

對此,Reddit 上有網友發表觀點:

「真正的解決方案是將每個瀏覽器的 DOM API 替換為用於渲染 2D/3D 圖形的東西,並將可發現性、可訪問性和機器可讀性考慮在內。這個新的引擎可以使用任何為處理這種用例而適當設計的新語言。它可以成為通過 udp/tcp 的應用程式。瀏覽器概念本身的局限性才是問題所在,它與我們使用它的目的不匹配。「

而筆者也認為,JavaScript自誕生至今,儼然成為一門受歡迎的明星語言,但仍面臨難以轉換的境地。JS是一個症狀,而不是問題,布道瀏覽器概念伊始,就難免存在與開發者使用目的不匹配的矛盾。開發人員關心 JavaScript 是否有繼續解決問題的能力?程式語言是否需要一個類似 TypeScript 的新事物來開拓引領?在沒有出現一個可以替代 JavaScript 的語言之前,一切還未可知。

關鍵字: