1 趋势
说到Web方面的趋势,特别是HTML5获得的巨大发展,W3C和WHATWG等组织正在不停地推动规范的演进和引入新的规范,这一举动必将极大地推动Web前端的发展。就目前Web前端来说,各种类型的技术非常多,极容易引起大家的误解,有鉴于此,结合笔者自身的理解,总结出一些比较明显的趋势同大家分享,分别从技术上和方向上来解读。首先从技术上来讲,大致包括以下一些可能。
- 首先,是Web能力的逐渐增强 。越来越多的本地功能被加入到JavaScript中去,这意味Web开发者可以使用这些功能控制Web网页的行为并将Web前端扩展到更为广泛的应用场景中去,例如多媒体方面,在HTML5之前,甚至需要通过插件来支持它们,但是现在不仅仅能够播放多媒体资源,开发者甚至可以使用JavaScript代码来开发功能更强、范围更广的Web资源到多媒体网页中。
- 其次,Web中将引入并行计算的能力 。现在的JavaScript只能串行执行,或者有限地并行,如使用Web Worker技术,但是这些都非常的原始,每一个Worker都只能访问有限的资源,而且Worker之间通信的效率非常低(只能用来传递消息),离真正的并行计算还差得非常远。
- 再次,性能问题 。对于性能方面,也是开发者诟病最多的地方之一,因为渲染引擎的复杂性和本身JavaScript语言的某些特性,使得Web网页和应用的性能存在较大的缺陷,好消息是现在性能方面已经获得长足的进步。但目前Web的性能还有很多可以提高的地方,一些应用场景还是离本地应用有不小的距离,还有很长的路需要走。同时,考虑到开发者对于调试性能的需求,标准化组织也在制定规范来帮助收集网页的性能数据,如Navigation Timing、Resource Timing、User Timing等。
- 最后,Web已经从Web网页向Web应用(Web Application)方向发展 。这一推动需要加入大量现有操作系统提供的能力,所以各种不同的本地能力通过JavaScript接口提供给Web前端开发者。例如各个传感器的功能已经通过JavaScript接口提供给了Web应用。除此以外还有文件或者存储系统、用户交互、网络连接、应用的生命周期、安装和卸载等管理,这些方面有些已经比较成熟,但是还有很多的功能在制定过程中。虽然标准化组织将继续加入新标准,但是现在还有很多缺失的地方需要补上。
下面主要从大方向上来讲,主要包括以下一些可能的趋势。
- 首先是平台化策略 :支撑HTML5技术的框架已经从浏览器向Web运行平台快速演进,这是一个非常重大的转变。因为在此之前浏览器只是运行网页而已,而Web运行平台可以管理和运行Web应用,也就是HTML5技术能够开发出同本地应用能力一样的应用程序,所以对于上面提到的大部分功能都需要Web平台支持,而浏览器却并不一定支持这些功能。虽然现在很多Web运行平台是从浏览器基础上开发的,但是这并不意味着两者是同一回事。
- 其次是移动化 :HTML5目前在移动领域得到了长足的发展,很多新技术都是从移动领域发展起来的,如各种传感器功能等。移动领域的这些创新已经并将继续极大地推动HTML5的发展。就目前而言,因为移动领域的高速发展和商店模式,使得现实中存在众多不同的操作系统、Web应用,恰好能够提高跨操作系统的能力,很多开发者可以使用HTML5技术来开发应用,并方便地发布到不同的应用商店,可以说移动领域是HTML5不停向前发展的一个重要推动力。
- 再次是向不同应用领域渗透 :HTML5技术目前能够满足一些领域的需求,这些领域将会为此得到快速发展。对于目前一些热门领域如游戏而言,因为游戏对功能和性能有非常高的要求,所以浏览器和Web平台对于游戏的支持成为一个非常重要的发展方向。同时,如果满足了游戏领域的要求,这就意味着可以促进HTML5技术进入更多的领域。
- 最后,Web和HTML5技术 :向不同的嵌入式领域发展,因为它的跨平台性和低成本性,很适合将它应用在电视、车载系统、家用电器等领域。在这些嵌入式应用场景中,系统只需要支持Web技术,就能够轻易运行众多Web应用,这有利于降低企业成本。
以上这些技术和方向,每个都可以花费很多篇幅去介绍和描述它们,本章主要是想着重从Web应用和Web运行平台两个最重要的地方着手,着重介绍目前的一些进展,未来的发展路程将会很长,笔者希望和读者一起关注它们。当然,如果读者完全相信了笔者这些关于趋势的描述并且认为Web前端就是这些变化,那还是赶紧从其中摆脱出来吧,因为它们会阻碍读者的思维。笔者建议大家理一理自己的思路,可能会发现更多有价值的方向值得投入,千万不要被这里的趋势所固化。