在HTML5发布以前,RIA领域的技术解决方案一直相都是各展所长,并无争议。Adobe体系中,Flash无法胜任的事情,Flex可以完成,反之亦然;.Net系决策者在选用RIA解决方案时,Silverlight是不二之选。
曾经我对Flex的迷恋到了欲罢不能的地步,与我有相同想法的人亦不在少数,Flex也大有“一统江湖”的趋势。然而,随着HTML 5横空出世,Flex“易主”,Silverlight被“雪藏”,RIA领域的技术解决方案开始变得扑朔迷离。
HTML 5无疑是“明日之星”,苹果公司前CEO乔布斯对它赞赏有加,绝大多数智能手机浏览器均支持HTML 5,基于HTML 5的网站也如雨后春笋般出现。这些似乎预示着HTML 5时代来临,人们试图让决策者相信,Flash/Flex时代已经过去了,HTML 5才是RIA领域的最佳解决方案。然而,事实果真如此吗? 我曾经见过一个项目,原计划使用Flex做为前端解决方案,由于当时HTML 5“盛行”,最终决策者决定弃用Flex而转投HTML 5。 接下来会发生什么呢?
从上述情况可见,HTML 5也存在劣势,并不完美。同样,我也可以列举出诸多例子来体现HTML 5的优势。那么,“真相”到底是什么?
HTML 5与Flex是两种截然不同的技术解决方案。HTML 5的出现让Flex更加专注某些方向和领域。所以,它们是互补的,而非替代。因此,“替代”一说并不准确。
虽然,上述例子只是小概率事件。但概率小,不代表不发生,不代表不典型。所以,在这里我想跟大家谈一下Flash、Flex、HTML 5的技术选型。
首先明确一个观点:技术选型没有既定的规律可循,它是由诸多因素决定的,例如:开发人员的技术知识结构是否胜任、项目的开发成本、开发人员构成、项目的开发周期、项目的属性等等。
但是,我们仍可以从这些技术的特点出发,辨别你的应用程序适合采用哪种方案!
优势:
劣势:
下面的表格,描述了这三者在一些关键点的比较:(图1)
下图使用区分法,来辨别应用程序的技术选项方案:(图2)
下面的表格从“项目属性”角度来比较这三者之间的优劣性:(图3)
注1:上文提到的Flash是指使用Flash Pro CS工具(IDE)生成的SWF,而非Flash Platform。
注2:Flash Player不支持IOS以及Android 4.1+系统。在2012年8月15日,Adobe将Flash Player从Google Play下架,并不在对其进行更新,但Adobe仍使用AIR的方式对智能系统进行Flash应用/游戏的支持。
注3:虽然Adobe提供了FTE(Flash Text Engine)与TLF(Text Layout Framework)用于图文混排,但是由于其开发的难度比较大,所以并不完全适合企业开发。
王磊 | Kenshin ([email protected]), Adobe Flex专家、国内第一本Flex图书《Flex第一步》作者、05年开始Flex至今,是国内第一批从事Flex的开发人员,曾任某公司前端技术总监,目前从事Flex顾问、咨询、架构、高端培训等相关工作。 新浪微博:http://weibo.com/23784148, Flex博客:http://www.k-zone.cn/zblog