Flash 、Flex 、HTML5


Flash 、Flex 、HTML5
2011年09月14日
  Flex已经玩完了。主要原因是它几乎没能提供什么东西,用户体验也变得越来越糟。如果说Flex对于开发者来说还不错的话,那么对于用户来说就太差劲了。此外,Adobe把Flex 4搞砸了,Flex 3.5要更简单,更整洁一些。主要原因在于他们之间的互操作实在是太可怕了,Spark并没有完全取代Halo。
    Flash的未来要更加光明,Adobe可以通过多种手段保持Flash的统治地位。即便人们讨厌player插件,但Adobe可以通过JavaScript对VM进行移植(有一些开发者可以证实这一概念),他们也可以在编译器级别上解决这一问题,将AS3和FLA文件编译为原生的JavaScript(其他一些平台已经做到了这一点)。即便他们依旧采用插件方式,他们也依旧可以统治Web,因为微软、Google和Mozilla与Adobe之间保持了良好的关系。Flash最擅长的领域还是游戏和其他交互式媒体等领域。Flash Player、框架、库、AS3语言和工具大大超出了HTML5所能提供的,他们之间有至少10年的差距。你试着在各种浏览器和设备上使用HTML5来播放音频,看看结果如何。你可以通过比JavaScript更好的语言和一些基于矢量的创建工具实现这种效果,然后将其编译为JavaScript与HTML5 Canvas,但Adobe在这方面领先很多,至少有10年的优势――更不必说了解这些工具的开发者与设计师的网络效应了。Adobe所需的就是全新的编译器或是VM(抑或两者兼而有之)。其他人则要从头开始。
  Flash将会越来越好,Flex将会死掉。
  HTML5将会统治除了游戏之外的其他领域。移动将会依赖于原生代码以谋求最佳的体验(Java之于Android,Objective-C之于iOS)。我们只需从背后的公司获得一些反馈即可,如微软,它正在大力推进HTML5。甚至连Adobe都开发出了HTML5工具。
  如果你想要开发一个富客户端、跨浏览器/OS的应用,那么Flex依旧是正确的选择,虽说要付出更多的努力(需要Flex专家)。
    Flex有很多问题,有很多遗留下来的代码,堆砌的特性、糟糕的设计决策、甚至有时代码质量也很差(我就见过太多了)。但一言以蔽之,Flex是个框架,它以性能为代价提供了很多特性(你不能去掉大多数特性),除非你是个性能专家,并且洞察Flex的原理,在这种情况下才会保证性能。如果你在配置不错的桌面机上运行Flex还好。毋庸置疑,Flex在移动设备上的表现不尽如人意。
    这几年来,Adobe做过的最糟糕的决策就是重用现有的Flex代码基,然后对其进行一些调整就运行在移动设备上了。笨重的皮肤架构、样式系统对CPU的消耗、优化失效/验证代码(意指空转运行,因为SDK开发者有时会调用invalidate(),并不是所有新特性都会用上)在移动设备上的表现并不好。另一方面,纯Flash应用则在移动设备上运转良好!这只不过是膨胀的Flex/AIR SDK导致的性能问题。Flash Player变得越来越好,这都要归功于如Thibault Imbert之类的富有激情的人们。AS3语言则有一些提升。另外,Flex SDK变得越来越臃肿,其架构也没有什么变化,听说Flex 5将会对框架进行彻底的整理。在2011/2012之际,你可以期望Flex SDK将会演变为基于插件的平台,而不是充满了大量的单例、静态、过程式代码,这些东西都是6年的老古董了。
    在查看Flex SDK的代码时,我常常觉得这是一个基于社区的项目而不是一个真正成熟的面向企业的产品;有几个Flex的领导/架构师是非常不错的,但大多数都不咋地。对基本的OO原则的违背比比皆是,有时都达到了无法接受的程度(复杂的类继承中,父类竟然完成了子类该做的具体事情)。即便是一些基本的概念,如私有方法的代码行数不要超过500行这种事情也会经常遇到。

猜你喜欢

转载自dipi61dipi.iteye.com/blog/1358566