JavaScript創始人Brendan Eich:我們不需要Native Client
Native Client 是 Google 支持的開源技術,用來在瀏覽器中像桌面程序一樣運行編譯過的代碼,滿足人們對 web 應用程序的可移植性和安全性的期望,提供更好的富客戶端用戶體驗,允許開發者編寫更強大的移動 Web 應用程序。
JavaScript 創始人 Brendan Eich 上個月在舊金山召開的O'Reilly Fluent ConfereNative Cliente 大會上解釋說 JavaScript 足以滿足 Google 對 Native Client 的設計目的,并懷疑 Native Client 是否能夠像 JavaScript 一樣,得到瀏覽器廠商的廣泛支持。
Eich 認為 JavaScript 自 17 年前誕生起就能夠在瀏覽器中安全運行可移植的本地代碼,而且得到各大瀏覽器廠商如 Apple、Microsoft、Mozilla 的支持。而出品了 Chrome 瀏覽器的 Google 想要使 Native Client 獲得同樣的支持會比較困難,因其自己也是瀏覽器市場競爭者。
現任 Mozilla 的首席技術官 Eich 談到 JavaScript 的可達性和內存安全等優點。或許是回應 Native Client 的“雙沙箱”技術, Eich 指出“JavaScript 也能以沙箱運行,我們不需要 Native Client”。另外,Native Client 支持C/C++程序員將代碼編譯為 Native Client 模塊,從而獲得類似 JavaScript 的可移植性。對此 Eich 引用 Low Level JavaScript 項目作為回應。該項目可以將代碼編譯為 JavaScript,并提供類C語言類型系統的手動內存管理和內存安全特性。
Eich 談到下一個 JavaScript 官方升級版本- ECMAScript 6 已經在 Chrome 和 Spider Monkey 引擎上揭開部分面紗,并將更好的支持應用程序、庫和代碼生成,他強調并不打算將 JavaScript 變成類似 Java 的東西。ECMAScript 6 將包含字符串插值、代替 undefined 值的缺省值、對象索引等變化,并淘汰參數對象。Eich 認為 JavaScript 將不斷變化成為更好的編譯目標語言,“有趣的是,人們以我所不能預見的方式在使用它”。
有人認為即使 JavaScript V8 引擎也要比 Native Client 慢上許多倍,JavaScript 并不能勝任高性能移動應用,對此 Eich 認為與版本和 CPU 架構有關。另外有人質疑 JavaScript 的創始人并不喜歡來自 Native Cient 的競爭,對此,Eich 親自現身稱無論 Native Client 還是 Dart 語言,都很難贏得 Chrome 之外的瀏覽器支持。