本文和大家重点讨论一下Flex如何迎接HTML5的挑战,最近业界对HTML5展开了大量的讨论。以GoogleWave为代表的产品,已经实现了HTML5的部分功能,其他诸如Opera这样的公司,更加直白的认为基于插件的RIA产品将会成为多余。
Flex如何迎接HTML5的挑战
最近业界对HTML5展开了大量的讨论。以GoogleWave为代表的产品,已经实现了HTML5的部分功能,其他诸如Opera这样的公司,更加直白的认为基于插件的RIA产品将会成为多余。在本文中,我不想去比较Flex(SL、JavaFX不做讨论)和HTML5的种种,我认为他们的目标市场是不一样的,我的观点是Flex这样的产品不会被代替,国外也在进行相关投票,参考“HTML5,areFlash,Silverlight,andJavaFXintrouble?”.
从2004年我的***篇关于RIA的文章(上、下)开始我就已经认定Flex是未来的趋势,诚然那时才从学校出来水平很低,文章写得很烂。也许是Flex机遇问题也许我蒙对了,纵观近5年Flex(AIR)的发展,速度是相当的快,可以参考riameeting的“AdobeAIR现在的安装量已经超过了2亿次”还可以参考7yue最近写的“HTML5与Flash,不得不谈的话题”,以及他附赠的插图:
当然,现有的成就不代表Flex是万金油人人都可以随意使用,下面提出5点问题。
1.应用场合
“Flex和AIR不适合你的5个理由”一文中详细说明了什么场合下不宜使用Flex,后面那位朋友的评论更加精彩。
2.编译器性能
如果上面的某些理由比较牵强的话,那么下面的缺陷是实实在在的了,在“FlashBuilder,LinuxandWinningtheRIAWar”中,作者指出了编译器方面的问题,比如对于一个大型的项目,修改一个地方重新编译竟然需要5分钟,在我的实际应用中,编译后大小约700K的项目,在修改源码重编时有明显的延迟感,相当难受,不得不盯着右下的进度条。
3.操作系统支持
再有就是Linux平台的支持,尽管官方说Linux下的市场很小,不过开源社区的力量不能忽视,在AdobeBugSystem上有“FlexBuilderonLinux”的FeatureRequest,看来大家都希望能在Linux上开发Flex,Adobe的CEO、VP们,请继续支持Linux吧。
4、令人讨厌的Bug
经常使用Flex进行开发,如果遇到某些地方用起来奇怪的时候,这时可直接判断其为FlexBug.话说上周五测试提交了一个问题给我:选择一个日期然后再选择相同的日期后文本框内的日期被清空了(PS:我们用的是Flex2的SDK)。好吧,主观感受这就是一个Bug,不是我,而是Flex的Bug.随后在这里找到了答案“Flex3DateFielddoesnotclearselecteddatewhenitisclicked”,根据JoannChuangAnderson同学的回答,可知这是Flex2的Bug,但是这位可爱的用户却认为Flex3没有这项功能而专门提个Bug,更搞笑的是Flex3还专门“Forconsistency,nowyouCTRL+Clicktodeselectthedate.”,让人哭笑不得。遗憾的是,像这样的小Bug能经常被发现。
5、易用性
界面上的文字不能随意复制,用惯了HTML,想把上面的标题或者某些内容复制下来是相当的方便,还有图片内容无法另存为,等等……(就算是目标市场不一样,也得迎合部分来自于HTML中的使用习惯吧?)
Flex下一步会怎样?不错,Flex4要出来了,FlexBuilder3也将被FlashBuilder4替代,在“了解FlashCatalyst”一文中展示了如何消除UI和开发人员之间的障碍。更多关于Flex4和FlexBuilder4的消息可关注RIAMeeting网站。对于HTM***dobeCEO在其quarterlyfinancialcall上表示(译文来自于InfoQChina):
“此标准能够增进Web内容的变革及一致性,从工具角度来讲,我们非常支持。我们的工具将支持创建和管理这一层次上的HTML内容。
我认为HTML5受到越来越多的关注,表明RIA实现及提供具有吸引力的用户体验对我们的客户来说越来越重要了。我觉得对于HTML5来说,挑战仍然是跨浏览器如何保持HTML5显示一致这一问题。……
因此,随HTML5的发展,我们将在我们的web著作工具中对其提供支持。但是从持续推动Flash及围绕Flash和RIA的变革角度来看,我们仍认为浏览器的分裂实际上使得Flash更加重要了。“
◆更完整的InfoQ报道可参考“GoogleWave加速HTML5发展?”一文。Adobe也开放了其RTMP规范,看起来Adobe正在热情的报答开放社区的支持,之前我在写“Ajax轮询以及Comet模式—写在Servlet3.0发布之前”一文中提到了关于消息实时性的问题,到目前为止何时融入到自己的开源产品我认为只是时间问题。Adobe制定了野心勃勃的FlashPlatform,这个平台包括了FlashPlayer、AIR、Flex、FlexBuilder(FlashBuilder)、FlashProfessional、FlashMediaServer、BlazeDS.基于这一平台,今年Adobe又宣布了“OpenScreenProject”项目,旨在利用现有的平台为Web、桌面、手机、电视以及其他的消费类电子产品提供统一的运行时环境,并联合Nokia为开发者提供了1千万美元的奖励基金。貌似Java之前也有这种雄心,不过目前看来并不成功,希望Adobe不要重蹈覆辙。
***,再来看看HTML5,“GoogleWave加速HTML5发展?”一文中,看官们的回复比文章本身更重要,大家的回复揭示了:HTML5标准的推出尚需时日,而Google就急急忙忙的宣布自己的HTML5实现是为了占领市场,肯定要为自己的Chrome扫清规范障碍;而OperaCEO的言辞我就没搞懂是何意图了,规范是由几家公司共同制定的,而这些公司之间的关系很微妙,Opera是站在哪边呢?还是跟着Google叫好?还是多关心下自己吧。至于FF和Safari,比较低调,默默的做着自己的事情,而微软则提出了精简HTML5规范……
***企业做规范,二流企业……这些都是老生常谈,在HTML5规范的多方角力中,最终会有个结论,但别忘了Adobe也是HTML5规范参与者之一。
【编辑推荐】