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