為什麽總有人黑 JavaScript?就真的那麽差嗎?——愛創課堂
劃重點我真的不理解為什麽一些人總是黑 JavaScript。我喜歡 JavaScript,它不是萬能的,但它最接近於我們所期望的能“運行在任何地方”!看下文詳情說明。
使用 JavaScript,你可以編寫應用讓它運行在:
你的瀏覽器上(幾乎所有瀏覽器)。
你的手機和平板電腦(比如 React Native,Cordova)
你的桌面軟件(比如 electron 運行在 mac、linux 以及 windows)。
你的服務器上即 node。
甚至在你的數據庫中(比如 mongo db)。
使用 JavaScript,你不需要下載一個 4GB 大小的 IDE 來創建一個 hello world 程序,你不需要等待 30 秒來編譯然後才能執行你的 app,
的確 JavaScript 有缺陷,但是,其他任何語言在適用性和靈活性方面都與 JavaScript 相距甚遠。
我對 JavaScript 工具、框架和庫的革新(和爆發)感到喜悅。我知道它可能讓學習者心累,但是這些新東西很好玩,而且,你沒必要學全所有的新東西啊。
我希望說,我們能停止在 JavaScript 之上創造“語言”,也停止在你的項目中使用這些新語言。我們已經有足夠多這些語言了:TypeScript、Elm、CoffeeScript 以及其他。我強烈推薦你不要在你的項目中使用這些新語言。
我將描述為什麽不要使用它們,但是首先,我想表達的是,我很欣賞這些創造,它們為我們的開發提供了多樣性的選擇,而且尤為重要的是,我非常感謝那些創造了偉大工具和“語言”的人。
我曾經是一名堅定的 CoffeeScript 粉。幾年前我決定在一個項目裏使用它,而隨著項目發展我很快意識到這是一個我曾經做出的最糟糕的選擇,隨後我花費了六個月的時間深入項目,把整個項目完全用 JavaScript 重寫了一遍。
以下是為什麽使用 CoffeeScript 是個壞選擇的一些理由:
我需要額外的構建步驟來“編譯”它到 JavaScript,不是什麽大問題但有時候很煩。
它難以調試,因為你在瀏覽器中看到的是編譯後的代碼,與你的 CoffeeScript 源文件中的內容不同 —— 大部分情況下,它的可讀性也很好,但是你還是需要在腦中轉換一下。
目前最大的問題是對任何加入團隊的新成員來說存在比較陡峭的學習曲線,因為他們必須要學習一門新的語言。
大部分在線的例子(99%)都是用 JavaScript 寫的。
團隊開始喪失一部分 JavaScript 技能。慢慢地,JavaScript 代碼開始讀起來像是另一種語言,我們希望所見的一切都是 CoffeeScript 的。
我們不能完全跟上 JavaScript 的發展腳步,比如 ES6 —— 箭頭函數、解構等等。
我們不能直接將幾行代碼放在 script 標簽裏運行來做一些簡單的測試,而如果我們要做測試,我們還得先用 JavaScript 來測,然後在測試之後將它“翻譯”回 CoffeeScript。
雖然我沒有深入使用 TypeScript 或 Elm,但我想它們應該也有類似的問題。
RE: TypeScript —— 非常酷的概念,我理解使用它的一些好處,但我們為什麽要強迫一個動態語言“表現得”像靜態語言那樣?C# 正絞盡腦汁地想要表現得更動態一些,而現在我們又在絞盡腦子地讓 JavaScript 表現得更靜態一些。搞什麽呀!!!
長話短說(TL;DR)。
別再黑 JavaScript,開始喜歡 JavaScript。
別在 JavaScript 之上搞其他語言。
擁抱 JavaScript 的動態特性。
為什麽總有人黑 JavaScript?就真的那麽差嗎?——愛創課堂