最近业界对 HTML5 展开了大量的讨论。以 Google Wave 为代表的产品,已经实现了 HTML5 的部分功能,其他诸如 Opera 这样的公司,更加直白的认为基于插件的 RIA 产品将会成为多余。在本文中,我不想去比较 Flex ( SL 、 JavaFX 不做讨论)和 HTML5 的种种,我认为他们的目标市场是不一样的,我的观点是 Flex 这样的产品不会被代替,国外也在进行相关投票,参考“ HTML 5, are Flash, Silverlight, and JavaFX in trouble? ” 。
从 2004 年我的 第一篇关于 RIA 的文章(上 、 下 )开始我就已经认定 Flex 是未来的趋势,诚然那时才从学校出来水平很低,文章写得很烂。也许是 Flex 机遇问题也许我蒙对了,纵观近 5 年 Flex(AIR) 的发展,速度是相当的快,可以参考 riameeting 的 “ Adobe AIR 现在的安装量已经超过了 2 亿次” 还可以参考 7yue 最近写的 “ HTML5 与 Flash ,不得不谈的话题” ,以及他附赠的插图:
当然,现有的成就不代表 Flex 是万金油人人都可以随意使用,下面提出 5 点问题。
-
应用场合
“Flex 和 AIR 不适合你的 5 个理由” 一文中详细说明了什么场合下不宜使用 Flex ,后面那位朋友的评论更加精彩。
-
编译器性能
如果上面的某些理由比较牵强的话,那么下面的缺陷是实实在在的了,在“ Flash Builder, Linux and Winning the RIA War ” 中,作者指出了编译器方面的问题,比如对于一个大型的项目,修改一个地方重新编译竟然需要 5 分钟,在我的实际应用中,编译后大小约 700K 的项目,在修改源码重编时有明显的延迟感,相当难受,不得不盯着右下的进度条。
-
操作系统支持
再有就是 Linux 平台的支持,尽管官方说 Linux 下的市场很小,不过开源社区的力量不能忽视,在 Adobe Bug System 上有“ Flex Builder on Linux ” 的 Feature Request ,看来大家都希望能在 Linux 上开发 Flex , Adobe 的 CEO 、 VP 们,请继续支持 Linux 吧。
4 、令人讨厌的 Bug
经常使用 Flex 进行开发,如果遇到某些地方用起来奇怪的时候,这时可直接判断其为 Flex Bug 。话说上周五测试提交了一个问题给我:选择一个日期然后再选择相同的日期后文本框内的日期被清空了( PS: 我们用的是 Flex 2 的 SDK )。好吧,主观感受这就是一个 Bug ,不是我,而是 Flex 的 Bug 。 随后 在这里找到了答案“ Flex 3 DateField does not clear selected date when it is clicked ” ,根据 Joann Chuang Anderson 同学的回答,可知这是 Flex 2 的 Bug ,但是这位可爱的用户却认为 Flex 3 没有这项功能而专门提个 Bug ,更搞笑的是 Flex 3 还专门“ For consistency, now you CTRL + Click to deselect the date.” ,让人哭笑不得。遗憾的是,像这样的小 Bug 能经常被发现。
5 、易用性
界面上的文字不能随意复制,用惯了 HTML ,想把上面的标题或者某些内容复制下来是相当的方便,还有图片内容无法另存为,等等……(就算是目标市场不一样,也得迎合部分来自于 HTML 中的使用习惯吧?)
Flex 下一步会怎样?不错, Flex 4 要出来了, Flex Builder 3 也将被 Flash Builder 4 替代,在“ 了解 Flash Catalyst ” 一文中展示了如何消除 UI 和开发人员之间的障碍。更多关于 Flex 4 和 Flex Builder 4 的消息可关注 RIAMeeting 网站。对于 HTM5 , Adobe CEO 在其 quarterly financial call 上表示(译文来自于 InfoQ China ):
“此标准能够增进Web内容的变革及一致性,从工具角度来讲,我们非常支持。我们的工具将支持创建和管理这一层次上的HTML内容。
我认为 HTML5 受到越来越多的关注,表明 RIA 实现及提供具有吸引力的用户体验对我们的客户来说越来越重要了。我觉得对于 HTML5 来说,挑战仍然是跨浏览器如何保持 HTML5 显示一致这一问题。……
因此,随 HTML5 的发展,我们将在我们的 web 著作工具中对其提供支持。但是从持续推动 Flash 及围绕 Flash 和 RIA 的变革角度来看,我们仍认为浏览器的分裂实际上使得 Flash 更加重要了。”
更完整的 InfoQ 报道可参考“ Google Wave 加速 HTML5 发展? ”一文。 Adobe 也开放了其 RTMP 规范 ,看起来 Adobe 正在热情的报答开放社区的支持,之前我在写“ Ajax 轮询以及 Comet 模式—写在 Servlet 3.0 发布之前 ”一文中提到了关于消息实时性的问题,到目前为止何时融入到自己的开源产品我认为只是时间问题。 Adobe 制定了野心勃勃的 Flash Platform ,这个平台包括了 Flash Player 、 AIR 、 Flex 、 Flex Builder(Flash Builder) 、 Flash Professional 、 Flash Media Server 、 BlazeDS 。基于这一平台,今年 Adobe 又宣布了“ Open Screen Project ” 项目,旨在利用现有的平台为 Web 、桌面、手机、电视以及其他的消费类电子产品提供统一的运行时环境,并联合 Nokia 为开发者提供了 1 千万美元的奖励基金。貌似 Java 之前也有这种雄心,不过目前看来并不成功,希望 Adobe 不要重蹈覆辙。
最后,再来看看 HTML5 ,“ Google Wave 加速 HTML5 发展? ”一文中,看官们的回复比文章本身更重要,大家的回复揭示了: HTML5 标准的推出尚需时日,而 Google 就急急忙忙的宣布自己的 HTML5 实现是为了占领市场,肯定要为自己的 Chrome 扫清规范障碍;而 Opera CEO 的言辞我就没搞懂是何意图了,规范是由几家公司共同制定的,而这些公司之间的关系很微妙, Opera 是站在哪边呢?还是跟着 Google 叫好?还是多关心下自己吧。至于 FF 和 Safari ,比较低调,默默的做着自己的事情,而微软则提出了精简 HTML 5 规范……
一流企业做规范,二流企业……这些都是老生常谈,在 HTML5 规范的多方角力中,最终会有个结论,但别忘了 Adobe 也是 HTML5 规范参与者之一。
参考资料
Flex vs. HTML5 for RIAS
广告
介绍一成都外企—— 活跃网络 ,该公司有一定知名度,是 QCon Beijing 2009 赞助商之一,这是他们的 黑板报 。根据我的初步了解不是那种所谓的“海归外企”,看他们的 招聘信息 ,对英语要求,所以如果你有一定的 Java Flex 经验并且英语过关不妨一试吧。为什么要宣传这个公司,是因为成都的外企少之又少,遇到一个招 Flex 的外企,可谓 罕见 !故此友情宣传一把。
请注意!引用、转贴本文应注明原作者:Rosen Jiang 以及出处: http://www.blogjava.net/rosen