爲何總有人黑 JavaScript?就真的那麼差嗎?——愛創課堂

劃重點

       我真的不理解爲何一些人老是黑 JavaScript。我喜歡 JavaScript,它不是萬能的,但它最接近於咱們所指望的能「運行在任何地方」!看下文詳情說明。node

 

使用 JavaScript,你能夠編寫應用讓它運行在:linux

 

  1. 你的瀏覽器上(幾乎全部瀏覽器)。數據庫

  2. 你的手機和平板電腦(好比 React Native,Cordova)windows

  3. 你的桌面軟件(好比 electron 運行在 mac、linux 以及 windows)。瀏覽器

  4. 你的服務器上即 node。服務器

  5. 甚至在你的數據庫中(好比 mongo db)。微信

 

使用 JavaScript,你不須要下載一個 4GB 大小的 IDE 來建立一個 hello world 程序,你不須要等待 30 秒來編譯而後才能執行你的 app,你所須要的一切只是一個文本編輯器。app

 

的確 JavaScript 有缺陷,可是,其餘任何語言在適用性和靈活性方面都與 JavaScript 相距甚遠。框架

 

我對 JavaScript 工具、框架和庫的革新(和爆發)感到喜悅。我知道它可能讓學習者心累,可是這些新東西很好玩,並且,你不必學全全部的新東西啊。electron

 

我但願說,咱們能中止在 JavaScript 之上創造「語言」,也中止在你的項目中使用這些新語言。咱們已經有足夠多這些語言了:TypeScript、Elm、CoffeeScript 以及其餘。我強烈推薦你不要在你的項目中使用這些新語言。

 

我將描述爲何不要使用它們,可是首先,我想表達的是,我很欣賞這些創造,它們爲咱們的開發提供了多樣性的選擇,並且尤其重要的是,我很是感謝那些創造了偉大工具和「語言」的人。

 

我曾經是一名堅決的 CoffeeScript 粉。幾年前我決定在一個項目裏使用它,而隨着項目發展我很快意識到這是一個我曾經作出的最糟糕的選擇,隨後我花費了六個月的時間深刻項目,把整個項目徹底用 JavaScript 重寫了一遍。

 

如下是爲何使用 CoffeeScript 是個壞選擇的一些理由:

 

  1. 我須要額外的構建步驟來「編譯」它到 JavaScript,不是什麼大問題但有時候很煩。

  2. 它難以調試,由於你在瀏覽器中看到的是編譯後的代碼,與你的 CoffeeScript 源文件中的內容不一樣 —— 大部分狀況下,它的可讀性也很好,可是你仍是須要在腦中轉換一下。

  3. 目前最大的問題是對任何加入團隊的新成員來講存在比較陡峭的學習曲線,由於他們必需要學習一門新的語言。

  4. 大部分在線的例子(99%)都是用 JavaScript 寫的。

  5. 團隊開始喪失一部分 JavaScript 技能。慢慢地,JavaScript 代碼開始讀起來像是另外一種語言,咱們但願所見的一切都是 CoffeeScript 的。

  6. 咱們不能徹底跟上 JavaScript 的發展腳步,好比 ES6 —— 箭頭函數、解構等等。

  7. 咱們不能直接將幾行代碼放在 script 標籤裏運行來作一些簡單的測試,而若是咱們要作測試,咱們還得先用 JavaScript 來測,而後在測試以後將它「翻譯」回 CoffeeScript。

 

雖然我沒有深刻使用 TypeScript 或 Elm,但我想它們應該也有相似的問題。

 

RE: TypeScript —— 很是酷的概念,我理解使用它的一些好處,但咱們爲何要強迫一個動態語言「表現得」像靜態語言那樣?C# 正絞盡腦汁地想要表現得更動態一些,而如今咱們又在絞盡腦子地讓 JavaScript 表現得更靜態一些。搞什麼呀!!!

 

長話短說(TL;DR)。

 

  1. 別再黑 JavaScript,開始喜歡 JavaScript。

  2. 別在 JavaScript 之上搞其餘語言。

  3. 擁抱 JavaScript 的動態特性。

相關文章
相關標籤/搜索