HTML5下一步如何发展?英特尔资深首席工程师探讨HTML5的未来_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > HTML5下一步如何发展?英特尔资深首席工程师探讨HTML5的未来

HTML5下一步如何发展?英特尔资深首席工程师探讨HTML5的未来

 2013/11/9 20:55:58    程序员俱乐部  我要评论(0)
  • 摘要:计算机程序员一直受跨平台问题的困扰,自从需要涉及第二个平台开始。自那之后,问题的数量便迅速增加。如今,开发人员至少需要同时针对四个操作系统(以及更多细分的系统)进行开发,运行这些操作系统的设备具有各种外观、尺寸大小、分辨率、持久度、输入方法、运营商网络、连接速度和状态、用户界面的规定、应用商店、部署及更新机制等。全球许多开发人员一度曾将Java视为跨平台开发的首选。确实,Sun(现在为Oracle)的这种结构化语言持续在解决许多跨平台问题,但它也会引入不少障碍,而其中最重要的一个障碍之一便是
  • 标签:英特尔 未来 HTML5 工程师
class="topic_img" alt=""/>

  计算机程序员一直受跨平台问题的困扰,自从需要涉及第二个平台开始。自那之后,问题的数量便迅速增加。如今,开发人员至少需要同时针对四个操作系统(以及更多细分的系统)进行开发,运行这些操作系统的设备具有各种外观、尺寸大小、分辨率、持久度、输入方法、运营商网络、连接速度和状态、用户界面的规定、应用商店、部署及更新机制等。

  全球许多开发人员一度曾将 Java 视为跨平台开发的首选。确实,Sun(现在为 Oracle)的这种结构化语言持续在解决许多跨平台问题,但它也会引入不少障碍,而其中最重要的一个障碍之一便是,类结构甚至会给最微小的程序功能造成沉重负担。在开发人员转为使用浏览器来进行应用交付时,Java 带来的负担变得更加沉重;Java 小应用程序对浏览器而言是不透明的黑箱,因为该语言对开发人员是封闭的(尽管我们非常尊重 JCP)。

  在 Java 使浏览器大战愈演愈烈的同时,一种名称相似的解析语言横空出世。这种语言开始名叫 Mocha,后来改为 LiveScript,最后定名为 JavaScript。实践证明,它在一些方面比 Java 更加实用,因为它能够与浏览器进行交互,并能够使用 HTML 的级联样式表单 (CSS) 来控制内容显示。JavaScript 支持很快便成为每个浏览器的标准功能。现在它就成为了 HTML5 编程语言,该语言被万维网联盟视为下一种标记语言的标准。

  为了更好地了解 HTML5 的成功原因、现状以及未来发展方向,《Intel Software Adrenaline》杂志采访了英特尔软件与服务事业部软件开发产品部的资深首席工程师 Moh Haghighat。Moh 是英特尔针对 Firefox 浏览器开发的首个 JavaScript 即时编译器 (JIT) 的技术领导。他还领导了首个并行 JavaScript JIT 和并行浏览器布局引擎原型的开发工作,这二者都是在 Firefox 环境下进行开发。他目前负责领导英特尔的 HTML5 技术战略工作。

  Intel Software Adrenaline:对于跨平台开发,HTML5 为何优于 Java?

  Moh Haghighat:启动 Java 小应用程序会让我想起声名狼藉的“加载 Java”状态栏。它在启动时会看到大量进度条,而不像如今的 Web 浏览器那样具有快速响应性,这起码会让人感到厌烦。这是该语言的根本问题,而[Adobe] Flash 在某种程度上解决了这个问题。哪怕是运行一小段 Java 代码,也需要将整个 JVM 载入浏览器,而且在开始执行这些代码前还可能要执行一大串类初始化程序。对于服务器端的代码,您在服务器上针对大量客户端重复运行相同的代码,这种情形还可以接受。但在客户端,您希望运行的代码来自许多不同应用,看到如此大量的进度条会让人无法承受。运行 Java 的最佳位置被证明是服务器端的中间件,Java 应用服务器先驱 WebLogic 便是一款优异的中间件。对于客户端开发来说,这也是 HTML5 优于 Java 的技术原因之一。虽说如此,在建立可管理编程语言的可行性,以及为更高效的高级语言(如 JavaScript、PHP、Python 和 Ruby)奠定基础方面,Java 发挥了重要作用。

  Java 还有一些确实非常出色的特性,可支持高效的代码生成,而几乎无需昂贵的编译器分析,如针对寄存的基于类型和基于偏移量的歧义消除。

  另一个问题在于 Sun 对 Java 项目的运作。Java 一开始并不是开放技术,同时 Web 技术也发生了演变。我认为 Java 没有成功的主要原因是 Sun 忽略了 Web 浏览器;在 JavaScript 变得日益强大的过程中,我们没有看到 Java 在浏览器方面有多少创新。JavaScript 异步使用模型 (AJAX) 让浏览器成为出色的交互平台,这使得许多基于 Web 的应用大受欢迎,如 Google Docs。同时,这些应用的复杂性不断增加。例如,Gmail 的 JavaScript 代码从 2004 年的近万行增加到 2010 年的近 50 万行,仅在六年间就增长了 50 倍(参见图1)。随着 Web 在全球的迅猛增长,已有数百万网页使用 JavaScript,因此就已安装的代码库而言,JavaScript 目前是影响力最大的语言。在与浏览器集成方面,Java 根本无法与 JavaScript 相提并论,因为 JavaScript 是浏览器的“原生”语言。另外,采用 CSS 和 JavaScript 的浏览器对 UI 和逻辑实现了完全分离,而 Java 平台则没有。

  HTML5 提供了更具吸引力的备选方案。您编写的应用可在任何类型的计算设备上运行,无论是电话、平板电脑、笔记本电脑、台式计算机还是电视。如果设备支持 HTML5,它就能在该设备上运行。您甚至无需进行编译;您只需要编写程序,它就会被分发和执行。

  Lines of JavaScript Code: JavaScript 代码的行数

  Gmail 50x larger in 6 years: Gmail 在 6 年内增长了 50 倍

  图1:Adam de Boor,Google

  ISA:JavaScript 和 HTML 已存在多年。最近有什么变化使 HTML5 对跨平台开发如此有效?

  MH:首先,在过去五年里,JavaScript 的速度大幅提升,快了 100 倍(参见图2),这在很大程度上得益于 JavaScript JIT 的出现。由于 Web 应用复杂性和成熟度的显著增加,JavaScript JIT 成为一项不可或缺的技术。在 JavaScript 性能方面,2011 年的最新 Internet Explorer 版本比 2001 年的 Internet Explorer 快了 100 倍以上。其次,通过 HTML5 还突然引入了非常多的新功能。这可能是自浏览器推出以来,HTML 实现创新最多的一次。现在,HTML 的渲染方式已经与过去完全不同。在 HTML5 开始得到广泛采用之后,其性能有了显著提升,新功能也不断增多。

Sunspider runs per minute: 每分钟运行 Sunspider 的次数

  Internet Explorer JavaScript performance improves 100x: Internet Explorer JavaScript 性能提升了 100 倍

  图2:Luke Hoban,Microsoft

  在技术采用方面,我观察到了另一个值得关注的趋势,IT 部门日益发现 HTML5 极具吸引力,这是因为人们会在工作中使用各种不同设备。在如今的业务环境下,所涉及的智能手机、平板电脑和便捷式电脑达数百种之多。HTML5 是唯一的可以让 IT 的应用跑在所有的设备上的方案。另外,公司也无力针对每种设备类型开发相关应用并提供支持。现在,基于 HTML5 的响应式设计模式不断出现,这种设计模式能够使内容适应设备的显示屏尺寸。这些全都是 HTML 的重要组成部分,因为利用 CSS 和 JavaScript 您能动态地适应不同的设备。

  ISA:由于没有静态类型化功能,JavaScript 一直因其仅局限于小型应用程序而饱受批评。这种批评有道理吗?

  MH:JavaScript 将来会提供类、模块及类型化功能。负责下一个 JavaScript 版本相关工作的 ECMAScript 委员会正在研究类的问题,类有利于维护工作。Java 有类,C++也有类。JavaScript 采用基于原型的继承模式,这将允许您实现类,但它不强制要求以某种特定方式实现类。Java 有自己针对类的对象模式;目前 JavaScript 语言没有采用特定的类模式。它使让用户能够实现自己的类版本。

  出于软件工程的原因,在有大量开发人员参与项目的情况下,人们可能需要特定的类模式。对于大型项目,您可能需要做一些限制,例如需要定义特定的编码原则等等。如果每个人都以自己的方式来使用 JavaScript 的话,其灵活性有可能会产生负面作用。

  让我们类比一下老早以前,FORTRAN 等编程语言都使用 GOTO 语句。但在 20 世纪 70 年代,Edsgar Dijkstra 和其他人士发现以非结构化方式使用 GOTO 语句有害无利。因此,程序员被要求使用结构化的编程原则,而不要随意使用 GOTO 语句,从而使编程语言和应用更易于理解和维护。而在 JavaScript 变为低级语言,并在其基础上能够实现大量高级语言时,同样的事情也正在发生。JavaScript 已变为所谓的“Web 的汇编语言”。

  ISA:您能给我们举一个这种情形的例子吗?

  MH:最近,利用限制和结构方面最令人振奋的例子,是 Mozilla 正在开发的一个名为 “asm.js” 的项目,以及另一个有关联的名为“Emscripten”的项目,这基本上是一个将 LLVM 位码转换为 JavaScript 和 HTML5 API 的编译器。(LLVM 是 Apple 公司赞助的一个项目,旨在为C/C++及其他语言开发低级虚拟机编译器基础架构和语言前端)。Emscripten 实质上是将 C++ 转换为 JavaScript。

  Asm.js 是 Emscripten 的一个可选目标,可以提供近乎原生的性能,与经优化的原生代码相比,开销通常降低 2 倍,而目前的全 JavaScript 则约为 5 倍。虽然 JavaScript 使用动态类型,但 asm.js 的要求(如类型推断和注释)仍然完全基于 JavaScript 规范。使用 asm.js,用户能够编写被证明是静态类型的代码。因此,在装载时,用户能够验证代码实际上是静态类型。提前编译器能够生成极其高效的代码而无需进行额外检查,这与动态类型语言不一样;这有助于同时提高灵活性和代码效率。

  如我们所说,这些语言都在不断发展演变,将能够把大段计算密集型代码(如性能库和游戏引擎)转换为 JavaScript,并使其可应用于全球每一个设备成为可能。JavaScript 正在成为高级语言的目标语言。

  ISA:目前有哪些与 JavaScript 相关的语言项目?

  MH:现在有一种叫 CoffeeScript 的语言,Microsoft 也在开发 TypeScript 语言,它是 JavaScript 的超集。Google 的 Dart 是一种采用类概念的新语言,也编译为 JavaScript。我不认为有人能让整个 Web 都更换 Web 浏览器的主语言。然而我相信,各种语言的优异特性汇集到一起,将会对 JavaScript 规范产生影响,而这些特性也将会添加到规范中。这基本上实现了演变、向后兼容性以及增量改变。

  ISA:英特尔直接推动了 HTML5 和 JavaScript 的发展。您能否给我们介绍一下这方面的相关工作?

  MH:英特尔在并行技术领域一直居于领先地位,并行性使 HTML5 能够满足多核的要求。您需要利用并行性提高响应速度和电源利用率。我们对 Firefox 布局引擎的 CSS 规则匹配实现了并行化,使其具有可扩展性。从编程语言的角度看,HTML5 有一个称作“Web Workers”的并行性 API。它非常适用于粗粒度的后台线程,但如果您希望执行大量小型并行[任务],Web Workers 则无法胜任。英特尔一直与 Mozilla 在并行阵列方面开展合作;我们在英特尔实验室的同事首先建立了它的原型。目前我们正在努力解决实施中的所有问题,以使其进入到 ECMAScript,即 JavaScript 的官方语言规范中。

  另外,我们还与 Mozilla 和 Google 进行合作,以确保现在已有(如 Sandy Bridge 和 Ivy Bridge 等等)的 SIMD 矢量功能可以真正采用 JavaScript 进行编程。也就是说,如果您的 JavaScript 代码对数据进行并行的操作,那么该代码会真正实现矢量化,同时开发人员使用这些功能时能够保证代码的执行。这些功能终将进入标准之中。

  结束语

  面对操作系统和设备不断增多的趋势,全球许多开发人员都在寻找经济高效的方法来创建他们的应用。开发人员一度将 Java 视为跨平台开发解决方案。与较老的语言相比,Java 有许多优势,但 Java 没有跟上移动平台的快速创新步伐。开发人员现在转为使用 HTML5 及其核心技术,即 JavaScript 和 CSS,来实现所需的最新功能和跨平台可操作性,以便在当今的应用市场上取得成功。

  据 Haghighat 说,英特尔工程师继续在英特尔平台上对 HTML5 引擎进行优化,并为 HTML5 增加新功能。英特尔将 HTML5 视为迈向透明计算时代的重要步骤。为进一步加快 HTML5 的广泛采用,英特尔现在还提供了英特尔 XDK,这是一个完整的开发套件,可帮助开发人员在 Android、Firefox OS 和 iOS 等各种平台上,构建、测试、调试、打包及部署其 HTML5 应用。

  资源

  英特尔 XDK HTML5 开发环境:http://html5dev-software.intel.com/

  英特尔开发人员专区: http://software.intel.com/zh-cn/html5

  关于作者

  Edward J. Correia 自 1980 年以来一直在计算机行业工作,那时他便开始销售(并偶尔侵入)Atari 公司和 Commodore 公司的电脑。除了为 RH+M3 撰稿,Correia 目前还担任 CRN Test Center 的编辑主任。CRN Test Center 是一家计算机与网络测试实验室,于 1995 年在 Correia 的协助下成立。在脱离 CRN 的母公司 United Business Media 的 10 年期间,Correia 曾担任《Software Test & Performance》杂志的编辑和 SD Times 的执行主编。

发表评论
用户名: 匿名