第 2 章:為何選擇 JavaScript?
目錄
購買本書
(廣告,請勿封鎖。)

第 2 章:為何選擇 JavaScript?

市面上有許多程式語言,為何你應該使用 JavaScript?本章將探討七個在選擇程式語言時重要的面向,並論證 JavaScript 在整體表現上表現良好:

  1. 是否免費提供?
  2. 是否為優雅的程式語言?
  3. 是否在實務上好用?
  4. 是否有好的工具,特別是好的整合開發環境 (IDE)?
  5. 是否足夠快速,能滿足你的需求?
  6. 是否廣泛使用?
  7. 是否有未來性?

JavaScript 是否優雅?

是與否。我曾使用過不同範例的數種程式語言撰寫過不少程式碼。因此,我非常清楚 JavaScript 並非優雅的頂點。然而,它是一種非常靈活的語言,有一個相當優雅的核心,並允許你混合使用物件導向程式設計和函式式程式設計。

JavaScript 引擎之間的語言相容性曾經是個問題,但現在已經不是了,這部分要歸功於test262 套件,它會檢查引擎是否符合 ECMAScript 規格。相較之下,瀏覽器和 DOM 差異仍然是一個挑戰。這就是為什麼通常最好依賴架構來隱藏這些差異。

JavaScript 是否好用?

世界上最漂亮的程式語言,如果無法讓你撰寫所需的程式,那就毫無用處。

其他補充 JavaScript 的技術

除了 HTML5 之外,還有更多技術補充 JavaScript,讓這項語言更實用:

函式庫
JavaScript 擁有豐富的函式庫,讓您能完成從剖析 JavaScript(透過 Esprima)到處理和顯示 PDF 檔案(透過 PDF.js)等各種任務。
Node.js
Node.js 平台讓您能撰寫伺服器端程式碼和 shell 指令碼(建置工具、測試執行器等)。
JSON(JavaScript 物件表示法,在 第 22 章 中介紹)
JSON是一種植基於 JavaScript 的資料格式,已成為在網路上交換資料(例如網頁服務的結果)的熱門格式。
NoSQL 資料庫(例如 CouchDBMongoDB
這些資料庫緊密整合 JSON 和 JavaScript。

JavaScript 有好的工具嗎?

JavaScript 正在取得更好的建置工具(例如 Grunt)和測試工具(例如 mocha)。Node.js 讓您能透過 shell(而不僅限於瀏覽器)執行這些類型的工具。此領域的一項風險是分歧,因為我們正逐漸取得過多的這些工具。

JavaScript IDE 領域仍然處於萌芽階段,但它正在快速成長。網頁開發的複雜性和動態性讓這個領域成為創新的沃土。兩個開源範例是 BracketsLight Table

此外,瀏覽器正逐漸成為功能日益強大的開發環境。特別是 Chrome,最近進步神速。未來 IDE 和瀏覽器將整合到何種程度,令人拭目以待。

JavaScript 夠快嗎?

JavaScript 引擎已取得長足的進步,從速度緩慢的直譯器演變成快速的即時編譯器。它們現在對大多數應用程式來說已經夠快了。此外,新的構想已在開發中,讓 JavaScript 對其餘應用程式來說也夠快:

  • asm.js 是 JavaScript 的(非常靜態)子集,在目前的引擎上執行速度很快,約為編譯 C++ 的 70%。例如,它可用於實作網路應用程式中效能至上的演算法部分。它也用於將基於 C++ 的遊戲移植到網路平台。
  • ParallelJS 將使用新的陣列方法 mapParfilterParreducePar(現有陣列方法 mapfilterreduce 的平行版本)的 JavaScript 程式碼平行化。為了讓平行化運作,必須以特殊樣式撰寫回呼函式;主要的限制是您無法變異未在回呼函式內建立的資料。

JavaScript 是否廣泛使用?

廣泛使用的語言通常有兩個好處。首先,這種語言的文件和支援會比較完善。其次,知道這種語言的程式設計師比較多,這在您需要雇用人員或為基於該語言的工具尋找客戶時很重要。

JavaScript 廣泛使用,並獲得上述兩個好處

  • 現今,JavaScript 的文件和支援形式多元:書籍、播客、部落格文章、電子郵件時事通訊、論壇等等。第 33 章 會為您指出重要的資源。
  • JavaScript 開發人員需求殷切,但其人數也不斷增加。

JavaScript 是否有未來?

有幾件事顯示 JavaScript 的未來一片光明:

  • 這門語言持續演進;ECMAScript 6 看起來不錯。
  • 有許多與 JavaScript 相關的創新(例如前述的 asm.js 和 ParallelJS、Microsoft 的 TypeScript 等)。
  • JavaScript 是其中不可或缺一部分的網路平台正在快速成熟。
  • JavaScript 受到廣大公司的支援,沒有任何個人或公司可以控制它。

結論

考量到前述讓語言具有吸引力的清單,JavaScript 的表現非常出色。它當然不是完美的,但在目前,很難超越它,而且情況只會越來越好。

下一章:3. JavaScript 的本質