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 之外的浏览器支持。
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论