http://dreamana.com/weblog/
其实很久以前就想写一篇关于自己对Flash的理解的文章,今天有点空,静下心来慢慢总结一下。虽然近来有一些Flash的好消息,比如AGAL2即将发布,AS3在TIOBE统计表上上升至20位;但是总体来说,我觉得Flash的前景是非常迷茫。
过去
首先,我不想再去追溯Flash的历史。我认为,Flash之所以存活多年,最后几乎成为桌面浏览器上各种多媒体插件的“唯一幸存者”,原因是在过去 Flash 补充了 Web。
以前的Web是蹩脚的,对动画、视频及各种前端交互支持很弱,恰恰Flash填补了这片空白,加上Flash并不像其他多媒体插件那样单纯的只有音频视频播放,而是一种RIA技术(类似有Java Applet,以及后来微软的SilverLight,但是他们的市场占有率都不及FlashPlayer)。FlashPlayer插件的安装量一直居高,这样一来,Flash为许多想做创意作品并发布到互联网上的人提供了平台。
ActionScript3的出现无疑是Flash的第一次蜕变。AS3运行在AVM2上面,从技术角度说,整体上是会比旧版的(FlashPlayer 9.0以前)快的。而然,随着FlashPlayer一次次升级,为什么Flash给大家的印象仍然是“吃资源大户”?
我打算不深入解释这个问题,如果有接触过类似于Java技术的人应该很容易理解。
简单地说有几点:
总之,单纯论Flash这种技术,单纯把AS3作为一门语言看待,它本身没有错,说到底它只是个工具。最求性能不是唯一目标,还有易用性、通用性、扩展性等等,牺牲的部分性能却为开发者带来的便利是不言而喻的。
现在
不能抵挡的移动互联网时代来临了。满大街都是移动设备,人们的习惯被改变了。不仅仅是IT行业,许多行业都面临洗牌。
在这个时候,Apple登上了明星舞台。iPhone的出现,iOS的生态系统的形成。曾经的大牌移动电话,曾经的流行桌面操作系统,曾经的风靡的游戏掌机……都已不再。不可否认,世界改变了。
某天,Steve Job发表他的见解,阐述Apple的移动设备不应该支持Flash的原因,把Flash各种缺点、矛盾摆出来,然后搬出另一个所谓更好的解决方案HTML5。
名人发表的言论,未免会被人追捧甚至夸大。好像大家都意识到HTML5是更好的移动Web解决方案。但,HTML5是何物?
最终用户:管他呢,总之只要不用Flash!看视频不会卡机就好了。
传统Web开发者:你看你看,HTML5多厉害!不但播视频不用Flash了,还可以做游戏,3D! WebGL!
Flash开发者:省省吧,各种兼容性问题,开发起来不如Flash方便。功能不全,过几年跟上了再说吧。
许多人都没有深究HTML5是什么东西,他们只会道听途说。做技术的很清楚技术的优缺点。但很多Flash开发者都忘记是Flash是怎么发展起来的。HTML5的总体来说更难用是因为处于发展初期,组织松散,但不代表它没意义。相反,大量开发者的加入会更容易推动其发展。况且,现在已经有相当多JS框架,IDE,以及交叉编译方案可以选择。
而我也稍微接触过网页开发,所以我不会抵触HTML5,也不想袒护Flash。说实话,HTML5要比过去的Web“丰满(Rich)”(不过学习门槛也提高了),而且为了适应移动互联网时代,Web要向前发展是必然趋势。也许哪天不需要Flash这个大补丁了,那么Flash就可以从网页上消失了。很明显Adobe也意识到这个风险,于是自己先妥协了,但这一步,退得太快,伤害了一大群开发者。
归根到底,Flash的没落都因时代的变化,技术的生命周期,不可抗拒。而不是因为被人口诛笔伐,不是它本身很烂,更不是有了更好代替品。
我们不应该把一个新生的工具(HTML5)夸大成瑞士军刀。 为什么?下面换一个话题吧:
众多统计表明,移动设备用户对App的使用频率要赶超Web了。人们已经习惯了使用App去接入移动互联网,Web与App的比例在拉锯着。对于低耗低功率的移动设备,似乎App更有优势。当然,当前也有很多HTML5转APP的方案,但毕竟那已经是变成是客户端,不再是B/S模式的Web。
而目前看来,曾经说大力支持HTML5的iOS系统上的Safari浏览器就不支持WebGL(或者说是屏蔽了)。很明显,Apple需要维护他的App生态系统,而不想被Web侵占。
那么,还能确定HTML5就是救星吗?谁敢保证HTML5生命周期很长?
换了一个名字,大家就认不出来吗?AIR就是属于Flash技术,让Flash应用转化为独立客户端。AIR是就像一个备胎,最初他不是为移动平台设计的,而是桌面系统。AIR本应是Flash的第二次蜕变。因为他可以将Flash技术从浏览器中解放。
但令Flash开发者们最为失望的就是,自从Adobe策略性转移投资在HTML5上,对自家的Flash投入就日渐缩减。各种路线图修改,各种人员调动。Flash开发者不断流失,Flash社区变成“死海(Dead Sea)”。
将来
Flash技术还没有死;但是Flash生态系统已经不如往日。
作为一名长期的Flash开发者,我觉得从这个平台上面学到了许多,也积累了许多很有用的经验。这种经验,就如Thibault Imbert所说的,可以给它一个名字叫Flash DNA。即使现在转向使用HTML5,转向使用移动平台的游戏引擎如Unity, Cocos2d-x等,又或转向使用CreativeCoding的框架如OpenFrameworks等,Flash DNA仍然可以给到很大的帮助。
所以,不要抱怨现状,不要抛弃宝贵经验,只要Stay Hungry Stay Foolish,适应时代的变化,我们仍能很好地面对将来。