今年MIX10大会上微软的工程师在介绍IE9时,从前端技术的角度把互联网的发展分为三个阶段:第一阶段是Web 1.0的以内容为主的网络,前端主流技术是HTML和CSS,第二阶段是Web 2.0的Ajax应用,热门技术是Javascript/DOM/异步数据请求,第三阶段是即将迎来的HTML 5时代,亮点是富图形和富媒体内容(Graphically-Rich and Media-Rich)。
Web 2.0时代把大量服务从桌面转移到网络上,B/S架框的应用迅速流行起来,这个时期Ajax和Javascript框架得到广泛的应用。网站成为提供Web服务的主要形式,但随着智能手机和3G网络的普及,手机应用和手机上的Web应用将会成为新的产品形态。原有的互联网产品需要对各种形式的终端提供友好的展现形式。
比如豆瓣电台(douban.fm)目前就有网页版、iPhone版、Android版、不久还会看到HTML 5版和桌面版。网络逐渐变成一个传输和存储数据的透明仓库,向不同形式的产品终端输送数据。而且这个数据内容将会非常丰富,这就是微软眼中的富图形和富媒体内容,所以,IE9必须、也不得不支持SVG和HTML 5的Video和Audio。
苹果推出iPad无疑又是一场革命,在拥有更大的多点触摸屏幕的终端上跑智能手机系统,把硬件成本降到一个足够低的程度,我想iPad和类似的平板电脑将会流行起来。同时也意味着,产品前端又增加一种形态。
PC上的Web应用受浏览器历史原因的束缚太大,在国内IE6等低端浏览器目前仍占据绝大多数的市场份额。因此这些不称职的平台需要靠第三方插件来弥补先天的不足,像Flash/Flex、Silverlight、JavaFx等,包括Google Chrome,本质上都是为了弥补浏览器的缺陷,当浏览器足够强了也就不需要这些插件了。智能手机出现的比较晚,所以完全没有历史包袱。
现在的智能手机系统iPhone OS和Android加起来就占了90%以上的市场份额,默认的浏览器都是基于Webkit内核的HTML浏览器,对HTML 5和CSS3的支持比较好。这让HTML 5和CSS3有了最佳实践的机会。产品形态向不同终端转变的成本因此大大降低了。这是HTML5技术升温的原因。
比如iPhone上的Mobile Safari浏览器支持HTML 5的Canvas/Canvas2D、Video、Audio、Geolocation、Local Storage/Session Storage、Application Cache、Web SQL Database等,CSS3的3D/2D动画、RGBA、圆角、阴影和渐变等主要功能都支持。用你的手机浏览器访问http://html5test.com,可以测试一下都具体支持哪些。利用这些特性加上传统的Javascript/HTML/CSS就可以打造一个很强悍的Web应用。
Paul Graham在2005年Web2.0时代来临时曾说“Javascript now works”,那现在可以说“HTML 5 now works”了。HTML 5发挥作用同时,也意味着HTML5&CSS3将成为前端开发者的必修技能。
HTML 5和Flash之间的讨论前段时间很热。插件技术本身是在原生技术满足不了的情况下才会使用。在学习路线上,HTML/CSS/Javascript到HTML5/CSS3将是前端开发者的必修课,插件技术永远是选修课。Flash CS5将支持导出HTML 5的Canvas,可见Adobe毕竟是一家软件公司,它会想办法实现不同技术之间转换和包容,有人说也许几年后Flash会成为Canvas开发工具,我们只需坐享其成。像从Flash到Flex再到AIR的发展过程中可见一斑。
做为前端开发者来说,一定要身兼多技,但务必要先学好必修课。很多公司会设置一些专一性技术的职位,比如Flash开发工程师,这会误导一些人只学Flash,对日后的职业发展很不利。套句老话“形势喜人,形势逼人”,前端技术越来越丰富,前端开发者的担子越重,越多东西要学。