Silverlight HTML5 Flash - RIA技术之三足鼎立
未来,“用户体验”将成为所有软件商业价值的首要衡量标准。拥有极好用户体验的RIA(富互联网应用)技术近些年来发展迅猛,其中以Silverlight、HTML5及Flash最受热捧。纵观,互联网上98%的计算机都有安装Flash;HTML5的新特性则强化了Web网页的表现力;Silverlight更是携带着高性能与高生产力等诸多优势异军突起。RIA技术领域逐渐显露三足鼎立之势。
Flash发展至今已有15年历史,时间长河使之在全球孕育了大规模热衷于网页矢量动画的设计者与开发者,以及让无数商家垂涎的插件装机量。在Macromedia和 Adobe的号召下,无数优秀的艺术家、UI设计师和互动程序设计师团结一起,最终成就了今天全盛时期的Flash。
ActionScript是Flash最主要的编程语言,作为当下主流的RIA技术,Flash十数年的积累使其拥有极深的根基,Flash的主导地位短时间内很难被撼动。然而,问题都是相对的,时间的沉淀伴随而来的是漏洞百出,Flash的滥用和参差不齐的Web前端开发人员造成了当前很多网页中的Flash应用效率低下,浏览器极易崩溃等问题;插件越来越臃肿却依旧无法改变封闭的SWF对搜索引擎的不友好支持。更让诸多Flash Fans伤心的是,苹果方面明确地排斥Flash,从iOS到MacBook Air 2010都能看到厌烦的身影,或许Flash真已渐入中年。
HTML是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。HTML4标准已经十多年了,随着世界IT技术的飞速发展,各类软件和平台的不一致性骤增,至今我们还得继续兼容IE6下的CSS样式名,开发差异化的产品,却要提供同质化的功能,多浏览器、多平台上的兼容测试依旧是无数网页设计者心中永恒之痛,HTML4在各类平台上所受到的诸多限制使得HTML5呼之欲出。于是,2004年HTML5第一次被WHATWG提出,2007年最终为W3C所接纳。内置Canvas、Audio/Video以及Web存储等诸多新特性的HMTL5未来将会引领互联网多方面的改进与革新,依旧利用HTML + JavaScript + CSS使得普通网站也能轻松具备更丰富的功能,被世界所公认真正做到跨平台的技术。
然而,看似美好的HTML5却注定一身坎坷,从它出生开始就已被Google所挟持企图号令天下。Google的云计算帝国就差一个RIA的支持,本被高度期望的Gears还未足月即宣布夭折,旨在为HTML5的登基做铺垫,不由得让我们更极端的思考:假若 HTML5真能普及,更多的应用转向B/S模式,微软帝国的桌面软件生态环境必定遭受巨大威胁,虎视眈眈多年的Google将是最大受益者,Chrome OS操作系统即是最给力的证据。
长远看,作为Google玩转于指尖的一枚棋子,HTML5终究还是无法取代Silverlight或Flash等网页插件技术。如果我是项目经理,我会否决一切完全依赖于HTML5的项目,只因为我实在无法忍受耗资巨大的项目源码却能如此轻易的被对手剽窃、掠走,好比敞开着你家的保险柜丢在马路中央,难道你在期待开源组织给予你至高无上之敬意?再说了,HTML5在开发效率和开发工具上着实显得捉襟见肘,且很难实现网页插件所能轻松实现的高级功能,而网页插件则拥有比HTML5更灵活的框架,整体性能更好,还具备跨浏览器(不同浏览器下无差异体验)等优势。另外,HTML5若要真正应用到商业领域,前提是其规范必须得到统一。可现状令人堪忧,微软的IE、Mozilla的Firefox以及主导者Google的Chrome当下都在极力的争夺HTML5标准制定方面的最强话语权,利益驱使下的HTML5标准统一5至10年内依旧一片浮云,对于Silverlight和Flash来说这么漫长的时间已足够开发出几代新版本了,同时亦印证了W3C对当前HTML5/CSS3标准现状的表述:“不适宜用作生产环境”。
新秀Silverlight是微软所发展的Web前端应用程序开发解决方案,2007年9月这个奇迹般的小子横空出世,给本已混乱的Web市场再添一大变数。Silverlight最大的特点在于它精简的.NET框架,你可以使用C#、VB、F#这3大.NET主流开发语言去编写Silverlight应用程序。Silverlight的开发者大多来自传统的.NET产品研发一线,拥有国际顶尖的架构经验和丰富的设计模式知识,在VisualStudio以及Blend等强大开发工具的协同支持下,高性能、高开发效率等诸多优势显露无疑。Silverlight的应用主要集中在电子商务、视频、网页网络游戏,卫星定位、导航、地理系统等领域,作为微软“三屏一云”计划(电脑屏幕、手机屏幕和电视屏幕以及云计算)的核心技术,伴随着近期Window Phone 7的发布,我们已能隐约感受到未来Silverlight“三端(网页、桌面和移动设备)一统”的局面。
Silverlight发展至今短短3年多,仅为HTML5设计时间的一半就推出了四个主要版本,仍在研发中的第五个版本即Silverlight 5 的新特性已经公开,2011年上半年将会发布Beta版。Silverlight在其发展过程中充分吸收其他竞争对手的优点,取长补短,利用GPU硬件加速大幅提升2D/3D应用程序性能,同时突破了Flash无法使用右键的功能限制,还能通过脱离浏览器的模式(Out of Browser)运行于系统桌面(超越浏览器),以及作为Windows Phone等移动设备的主要开发技术,外加其开源框架Moonlight的跨平台特性,使得Silverlight在RIA领域的优势日益明显。不久,Silverlight 5或将带着对3D模型及骨骼动画的原生态支持问世,网页技术即将翻开崭新的一页 – Web 3D时代的来临。
我们可以打这么一个比方,如果把Flash看做一只银行股,那么HTML5就是只题材股,厚积薄发的Silverlight则是名副其实的潜力股。就目前而言,这三者都在不断壮大中,各有各的优势与契机且相互制衡着,短时间内并不存在谁取代谁的问题。微软开发平台产品经理Brad Becker也曾说过:“在网络上,Silverlight从没打算要取代HTML5,而是要做HTML5和其它技术不能让开发人员轻易做到的事情。”
论发展速度,Silverlight有赶超Flash之势,HTML5则更多体现的是某些厂商试图改变软件生态格局的发展战略需求。当然,撇开三者的纷争不论,所有的RIA技术都只为同一目的而存在着:让互联网绚动起来!RIA盛世降临,你准备好了吗?
本文发表于《程序员》2011年01期,有删节和修改