來源:機器之心
機器之心報道
編輯:陳萍、杜偉
JavaScript 這一現今非常流行的編程語言,竟然已經到了要談論「退役」的地步了嗎?
JavaScript(簡稱 JS) 是一種具有函數優先的輕量級,解釋型或即時編譯型的編程語言。雖然它是作為開發 Web 頁面的腳本語言而出名,但是它也被用到了很多非瀏覽器環境中。
1995 年由 Netscape 公司的 Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。JavaScript 與 Java 在名字或語法上都有很多相似性,但這兩門編程語言從設計之初就有很大的不同。在語法結構上它又與 C 語言有很多相似。JavaScript 中包含 Java 的最初意圖是:當時 ( 1993 年 ) Java 熱火朝天,JavaScript 為迅速壯大自己而令其名字中包含 Java。
從誕生之日到現在,JavaScript 已然成為一門明星語言,使用人數不斷擴大。
根據今年早些時候 StackOverflow 的一項調查結果顯示:超過 65% 的開發人員使用 JavaScript,遠遠超過排在第二位的 Python(忽略 HTML、CSS 和 SQL 這些非通用語言)。
根據調查,JavaScript 是世界上最受歡迎的編程語言
但 JSON 之父 Douglas Crockford 卻在最近的一次采訪中表示,JavaScript 已經成為了進步的障礙:
「我們現在能做的最好的事情就是讓 JavaScript 退役。20 年前,我是少數幾個 JavaScript 的倡導者之一。JavaScript 將嵌套函數和動態對象拼湊在一起非常出色。我花了十年的時間試圖糾正它的缺陷,我在 ES5 上取得了小小的成功。但從那以后,人們對進一步擴大該語言產生了濃厚的興趣,而不是改進它。因此,就像其他化石語言一樣,JavaScript 就成為了進步的障礙。我們應該專注于下一種語言,它應該更像 E 語言而不是 JavaScript。」
不過 Crockford 承認替換 JavaScript 存在兩個困難。首先,我們還沒有另一種語言來替換 JavaScript。其次,我們需要所有的瀏覽器制造商都放棄 JavaScript 采用新語言,同時用一個設計良好的界面取代 DOM。而這兩項,都還遠未達到。
前面我們提到,JavaScript 主要創造者是 Brendan Eich。但他在 1995 年創造這種語言時,只用了 10 天時間。2018 年,Eich 在 dot.JS 大會上曾經抱怨:當年 5 月我苦熬 10 天,都沒多少休息,終于完成這門語言。2019 年,Eich 告訴美國計算機科學家和學者 Charles Severance,表示自己開始轉向另一種 HTML 編程語言,網頁設計師和程序員可以使用,直接嵌入到網頁中,不像 Java 那樣是一種專業語言,你可以運行帶有類型聲明的真實代碼,但你必須以編譯的方式編寫。很多人被 JavaScript 的名字迷惑了,但在語法上,它與 Java 沒多大關系,而是與 C 語言關系密切。
Eich 稱這項工作是「一項匆忙的工作」,但他也表示「我知道會有錯誤,會有缺陷,所以我把它做成了一種具有可塑性的語言。這使 Web 開發人員能夠使其成為他們想要的樣子。」
Crockford 也指出,隨著性能的提高,JavaScript 已經變得非常復雜,今天一個典型的應用程序包括使用 WebPack、Rollup 或其他綁定器的構建過程,已經與 Eich 最初的概念相去甚遠。
一位開發人員在最近一次關于 Hacker News 的討論中承認道:「JavaScript 在短短幾年內迅速流行起來,但其生態系統非常復雜。這一直以來都是個大笑話,即便在全職 JS 開發者中也顯得如此瘋狂,我們沒人能跟上。」
Eich 10 天匆忙趕出來的一門語言,JSON 之父 Douglas Crockford 說要放棄它,到底如何做呢?我們看看網友是如何評價的。
網友的贊同與反駁
對于 Douglas Crockford 的觀點,網友紛紛表達了自己的看法,其中有部分贊同,更有反對。
一位推特網友表示,「我絕對同意他的一點是需要放棄 DOM,它就是垃圾。DOM 是 JavaScript 運行慢的罪魁禍首。JS 是不太美觀,但很實用。所以,我不介意。再次強調,DOM 才是徹頭徹尾的垃圾。」
圖源:@Kris Spookspook
不過,更多網友對 Crockford 的一些說法進行了反駁。
有人表示雖然自己討厭 JavaScript,但 Crockford 嘴上說要放棄 JavaScript,但又沒有替代語言。如果你認為有些東西不好,最好給出更好的選擇。
還有人表示不確定 Crockford 說的其他化石語言指的哪些,更不確定他說的進步又是什么。但是,僅僅為了進步而進步并不是什么值得追求的事情,讓事情保持正常的運轉同樣重要。
其實,針對 JavaScript 的一些缺點,我們可以找到很好的解決方案。JavaScript 不夠好?用 TypeScript;運行時太慢?用 Bun;工具太麻煩?用 Bun 或 Vite。其他語言也很好,但對于使用它構建各種東西,并沒有比 JS/TS 更好的 DX 設置。
JSON 之父 Douglas Crockford
Douglas Crockford 是 Web 開發領域最知名的技術權威之一、被 JavaScript 之父 Brendan Eich 稱為 JavaScript 的大宗師(Yoda),擔任過 Yahoo! 資深 JavaScript 架構師和 PayPal 高級 JavaScript 架構師。
Crockford 是暢銷書《How JavaScript Works》和名著《JavaScript: The Good Parts》的作者,并在廣播、學習系統、小型企業系統、辦公自動化、游戲、互動音樂、多媒體、基于位置的娛樂、社交系統和編程語言領域工作。
Crockford 還是編程語言 Tilton 的發明者,并創建了世界上最受歡迎的數據格式—— JSON 數據交換格式。