最近关于Flash的媒体报道真是越来越不靠谱了。这事儿本来就是内行看门道,外行看热闹,之前一些媒体发的通过贬低Flash来肉麻吹捧HTML5的片面报道,我们大多数做过几年Flash的开发者都一笑了之了,懒得计较。
大家心里都有数,两个平台各有优缺点,项目选型的时候,哪个合适就上哪个。就拿游戏来说,Flash还是占统治地位的,HTML5做游戏虽然已经有了很好的尝试,但还是问题很多,一些进入这个领域的公司要么退出,要么倒闭,火候还远远不够啊。
不过有时候这些片面报道看多了(注意我们不怕负面,任何技术都有缺点,大家都能接受,受不了的是片面),我也忍不住叨叨几句了。正如James Li所说,这些报道影响不到行内人,确实如此,但对很多刚刚进入这个领域(或打算进入的),有可能还是能造成混淆视听的影响。这里再批评一下Adobe的公关组(如果有的话),实在是不给力啊。所以写下这篇非官方的辟谣blog,期待出现更多理性的声音。
媒体的言论
其实部分媒体说的Flash即将终结什么的,无非都是基于一个原因:Adobe不再为移动设备浏览器提供Flash Player插件支持。这也不是什么新闻了,原先公布这个消息的时候就已经引起媒体轰动了。不过事隔这么久,当Android 4.1冒出不支持Flash Player的消息之后,还是有媒体捕风捉影,说什么乔布斯的胜利了,Flash再次受挫什么的。
这其实是混淆概念。Flash Player已经不再是Flash内容的唯一载体。即使移动设备上没有了Flash Player,Flash内容依然能够进入。发布这些信息的媒体,不知道是不了解,还是装不知道?
假设您不了解吧,容我给您介绍一下,先把几个概念区分清楚:
Flash平台
曾经我们一说Flash,就是指Flash Player,但现在已经不是了。Flash是个宽泛的概念,它已经包含了很多内容。从大的角度说,Flash是指Flash平台,这个平台由一系列基于Flash技术的元素构成,包括:
- 运行时:Flash Player , AIR
- 语言:ActionScript, MXML(Flex Only)
- IDE: Flash Builder, Flash Professnal, Flash Develop, FDT等等
- 框架:Flex,还有更多第三方UI或架构框架
- 周边技术:Alchemy等等
再次强调,Flash Player已经不再是Flash内容的唯一载体。对于桌面浏览器,Flash Player仍然占据统治地位,且特性不断增强;对于移动设备(iOS,Android,BlackBerry等等),虽然没有Flash Player支持,但有AIR同样可以让我们的Flash内容进入:Android可以安装AIR运行时,您也可以打包的时候将运行时和APK捆绑。对于iOS,因为不允许运行时的存在,我们的Flash内容会被ADT编译为iOS本地代码来执行。
因为在移动设备上,APP仍然是王道,所以我们的Flash内容进入移动设备的通道是很通畅的,不会因为移动设备没有浏览器的Flash Player支持而受明显的影响。
当然在移动设备浏览器上,HTML5将大有作为,但和Flash已经没有什么重合的地方了,一个走WEB形式,一个走APP形式。很多HTML5开发者认为移动设备的APP将消亡,WEB将是主流。这个观点只能让时间来验证了,或许对,或许错,现在谁也不知道。不过我猜苹果肯定不会同意。
HTML5
我们承认HTML5很有潜力,大有可为,但纵观多年HTML和Flash的发展路线,两者都不具备完全取代对方的能力。两者的协作和有机结合,才是最理性的选择。很多优秀的网站或应用,都是融合两者的典型案例。Adobe同时支持Flash平台和HTML5标准的进化,同时为两者准备好用的IDE,这并不代表会放弃Flash(Adobe明确表示不会放弃Flash),而是Adobe认为帮助开发者完成优秀的WEB或Native应用才是最重要的,开发者可以根据项目特点和目标平台选择合适的技术,而Adobe的开发工具仍然是利器。