市面上有許多程式語言,為何你應該使用 JavaScript?本章將探討七個在選擇程式語言時重要的面向,並論證 JavaScript 在整體表現上表現良好:
是與否。我曾使用過不同範例的數種程式語言撰寫過不少程式碼。因此,我非常清楚 JavaScript 並非優雅的頂點。然而,它是一種非常靈活的語言,有一個相當優雅的核心,並允許你混合使用物件導向程式設計和函式式程式設計。
JavaScript 引擎之間的語言相容性曾經是個問題,但現在已經不是了,這部分要歸功於test262 套件,它會檢查引擎是否符合 ECMAScript 規格。相較之下,瀏覽器和 DOM 差異仍然是一個挑戰。這就是為什麼通常最好依賴架構來隱藏這些差異。
世界上最漂亮的程式語言,如果無法讓你撰寫所需的程式,那就毫無用處。
在圖形使用者介面的領域,JavaScript 受益於成為HTML5 的一部分。在本節中,我將「HTML5」一詞用於「瀏覽器平台」(HTML、CSS 和瀏覽器 JavaScript API)。HTML5 廣泛部署,並持續進步。它正逐漸成為撰寫功能齊全、跨平台應用程式的完整層;類似於,例如,Java 平台,它幾乎就像一個嵌入式作業系統。HTML5 的賣點之一是它讓你撰寫跨平台圖形使用者介面。這些始終是一種折衷:你放棄一些品質,以換取不受限於單一作業系統。過去,「跨平台」是指 Windows、Mac OS 或 Linux。但現在我們有兩個額外的互動平台:網路和行動裝置。使用 HTML5,你可以透過PhoneGap、Chrome Apps 和TideSDK 等技術,鎖定所有這些平台。
此外,許多平台將網頁應用程式當成原生應用程式,或讓您以原生方式安裝它們,例如 Chrome 作業系統、Firefox 作業系統和 Android。
除了 HTML5 之外,還有更多技術補充 JavaScript,讓這項語言更實用:
JavaScript 正在取得更好的建置工具(例如 Grunt)和測試工具(例如 mocha)。Node.js 讓您能透過 shell(而不僅限於瀏覽器)執行這些類型的工具。此領域的一項風險是分歧,因為我們正逐漸取得過多的這些工具。
JavaScript IDE 領域仍然處於萌芽階段,但它正在快速成長。網頁開發的複雜性和動態性讓這個領域成為創新的沃土。兩個開源範例是 Brackets 和 Light Table。
此外,瀏覽器正逐漸成為功能日益強大的開發環境。特別是 Chrome,最近進步神速。未來 IDE 和瀏覽器將整合到何種程度,令人拭目以待。
JavaScript 引擎已取得長足的進步,從速度緩慢的直譯器演變成快速的即時編譯器。它們現在對大多數應用程式來說已經夠快了。此外,新的構想已在開發中,讓 JavaScript 對其餘應用程式來說也夠快:
mapPar
、filterPar
和 reducePar
(現有陣列方法 map
、filter
和 reduce
的平行版本)的 JavaScript 程式碼平行化。為了讓平行化運作,必須以特殊樣式撰寫回呼函式;主要的限制是您無法變異未在回呼函式內建立的資料。
廣泛使用的語言通常有兩個好處。首先,這種語言的文件和支援會比較完善。其次,知道這種語言的程式設計師比較多,這在您需要雇用人員或為基於該語言的工具尋找客戶時很重要。
JavaScript 廣泛使用,並獲得上述兩個好處
有幾件事顯示 JavaScript 的未來一片光明:
考量到前述讓語言具有吸引力的清單,JavaScript 的表現非常出色。它當然不是完美的,但在目前,很難超越它,而且情況只會越來越好。