HTML 5来临 Flash死亡倒计时?
关于HTML 5的现状与未来的发展,HTML 5的拥趸和Flash的开发者们都有自己不同的观点,但不否认的是,历史的车轮向前滚进,技术的脚步永不止歇,在这即将迎来HTML 5的全新世代,一度荣登王者宝座的Flash技术,又能继续行走多远呢?
谈到Flash能走多远的问题时,我们不得不先聊聊作为Flash前辈的Applet。所以要提它,是因为人类历史上第一个运行在浏览器之上的交互式应用,本来就是Java小程序,而非什么Flash。
早在1995年之初,当Gosling和Gage在WebRunner浏览器(即日后的HotJava浏览器)上展示3D分子模型之际,人们对Java的第一印象就是“这是种可以将静态网页变成动态的语言”,而并非这是种“开发手机应用的语言”或者这是种“开发企业级应用的语言”。直言不讳的说,自从Java与Applet诞生之初,直到2000年Flash5出现以前,Java和Applet一直都是网站动态效果实现的首选媒介(尤其是网络教学)。而在此以前的Flash还算不得主流,登不得台面。
为什么Java(Applet)会变得不如Flash普及?
关于这点,抛开WindowsXP后期版本不再内置JVM的影响不谈,应该说同Sun高层的愚蠢无能,以及Macromedia高层的下作龌龊不如关系(某个时期的Flash真的就像流氓软件一样,不经过任何预警便自行安装,也没有必要的砂箱保护,什么都能运行)。
正是这群墨守陈规,不思进取,被Java技术所带来的惊天财富冲昏了头脑(2000-2001年Sun最兴盛时,股票峰值曾达258.75美元/股,公司估价超过2000亿美金),对技术趋势把握犹如童蒙的Sun高层,最终葬送了Java在网页乃至桌面领域的大好河山。要知道,当时的Applet虽然有着相当完善的Java类库支持,并有稳妥的砂箱机制保证程序安全,但运行速度却异常缓慢(特指JRE1.0-1.3),运行界面也远没有Flash那么鲜艳友好,已经变得渐渐无法适应越来越复杂的网络展示需求,业界甚至开始出现关于Java与Applet的不利消息。
更关键的是,假如当时没有Macromedia的Flash,或者Flash根本就是个连Applet也不如的垃圾那还好说。可偏偏,偏偏Flash在界面效果与运行速度方面都远胜于当时的Applet!而这群理应在脸上被刻下S13星烙印的Sun高层,不单在不必要的时刻过早地与微软决裂,甚至还对Flash这样新兴技术的威胁无动于衷!他们即不想办法走正道完善自己的Java与Applet体系,又不会运用邪道将Flash挤出市场,既没能预见到网页前端市场中蕴含的巨大商机,更无法适时的调整公司经营战略寻求新的Java赢利模式,任凭别人风生水起,自己却只管悠哉游哉的数着因股价飞涨而带来的绿色钞票。
——此辈若能成事,岂有天理乎!
事后的结果证明,相对于系统内置,小巧灵活,并有足够强大图形编辑工具支持的Flash。原有的Applet技术显得臃肿、缓慢、不易开发,甚至没有一款拿得出手的图形编辑器,要知道,在IT领域中按资排辈这种事情根本就不曾有过。
更何况,在那些愚不可及的Sun高层眼里,网页前端甚至桌面市场或许本就是一盘可有可无的生意,赢了没什么不好,输了也不可惜。毕竟Applet只是Java功能中的一小部分,Sun有SPARC、Solaris、Java这三大法宝,即便Java中舍弃了Applet,依然有大把本钱,根本不必在意,很明显,当时的Sun高层,对于“占领桌面,跳进口袋”这样的经营理念还缺乏认知。假如他们明白,那么无论Applet/AWT/Swing也好,J2ME也罢,也决计不会是今天这种地位。
此消彼长下,Flash的兴起与Applet的堕落几乎都成了必然,越来越多的开发者投向Flash阵营,最终导致了今天Flash的兴起与Java(Applet/AWT/Swing)在网页前端领域的没落,在新的时代里,伴随HTML 5的逐渐普及,网页技术的大洗牌时代将会再次来临,就像当时的Applet技术,会被更先进,更进取的Flash技术所取代一样,新技术体系的出现,永远是旧有技术体系所无法回避的恐怖梦魇。
——就连Adobe公司与Flash也无法逃避这种规律。
诚然,现今的Flash比之当初改进了很多,Adobe将它变得比以前更完善(他们干脆重写了Flash核心),除了原有的小动画、小广告、小游戏之外,Flex的出现让J2EE或其它技术体系能够利用Flash开发商业应用,ActionScript脚本让死硬技术派们可以直接编写出Flash程序而不必拖拽界面。小到网络视频展示,大到网络游戏应用,几乎到处都可以见到Flash的踪影,Flash简直成了RIA的代名词,无论实际怎样,在当今这个时代里,“够快、够简、够普及”早已成了人们对Flash技术的潜在共识。
——然而,这些印象恐怕也只能维系到HTML 5普及以前。
没错,HTML 5标准的出现,将彻底颠覆现有的网页前端生态体系,因为HTML 5的诞生,很大程度上就来源于浏览器厂商们对于网页前端技术需求的反思。干脆点说,根本就是对于Flash大红大紫的一种醒悟,在这里,我们姑且将其想象为一场阴谋,一场“HTML 5”诡计。
在某个阴暗偏弊的房间里,业界的大佬们,或许曾经进行过类似这样的讨论“既然Flash用几MB的支持库就可以在浏览器上实现的功能,难道我们这些平台(浏览器)就做不到吗?既然是人人都要用到的功能,我们又为什么非要通过Flash进行中转实现呢?既然现在大家都需要这些功能,并且寻求更好的用户体验,干嘛不将它们绕过Flash,直接内置到浏览器中,以换取既快且稳的效果呢?!”
正如站在汽车上跑步,无论跑得再快,始终跑不过汽车一样。任凭Flash的UI再漂亮、制作再简便、运行速度再快,它又该如何超越它所在的浏览器平台本身?如何摆脱这群大佬巨鳄的魔掌呢?事实上,HTML 5所提供的API标准,彻底克制于Flash之上。一旦标准普及,毫无悬念的,HTML 5将秒杀Flash。
可以设想一下,随着HTML 5的逐渐普及,当你通过一个<video>标签就可以播放高清网络视频,当你通过一个<canvas>标签就可以渲染出相当靓丽的网页动画,当WebGL让你网页硬件加速,当WebSQL让你在浏览器中保存数据就像操作桌面应用那么简单,当WebSocket轻而易举地实现浏览器与服务器端通讯之际,谁还会关心什么swf,谁还会记得什么Flash?
Ext3.0提供的<video>标记应用效果:
Web3D效果:
不客气地讲,当HTML 5真正普及之日,Flash的优点都将变得不能再称为优点,而它的缺点却会开始凸现得越来越严重,所有依靠Flash,特别是依靠Flash在网页方面养家糊口的同仁们,我劝大家千万不要相信那个关于HTML 5要到2022年才会正式实施的传闻,误以为还有很长的周期让Adobe改进技术甚至相信自己能在此前就熬到主管级别。
只要稍微看看最近Chrome、FireFox的更新趋势,乃至未来的IE9规划,你立刻就会发现,它们会等你到2022吗?绝对不会!不到2015年,HTML 5就已经是各个浏览器的事实标准了,看到这里,你或许会说:“胡说!Flash可不只是那么一点功能,况且现在有那么多的Flash应用,难道都能轻易舍弃吗?兼容性问题你都解决了吗?”
——没错,原有的Flash功能,就是会被人们所遗忘舍弃。
正如有声电视机取代无声电视,电话机取代传声筒一样,让你在一台免费的PS3,一台免费的Xbox中抉择你想要哪台主机,你可能很难下决定。然而,如果换成一台是免费的小霸王,一台是白来的Xbox间抉择,该搬哪台回家,肯定不用笔者去教。
即便网络上有97%的网站在使用Flash,即便网络上有数不清的Flash/Flex应用存在,一旦更简便、更快捷、更高效的HTML 5标准普及,这些都会变得毫无意义,毕竟新近的开发者们决不会选择一种低效、缓慢、过时、并且可以被替代的技术作为自己的开发语言。
到了这时,就算你给地球上60多亿人口每人配备一个Flash应用,这60亿也将成为一个永远不会增加的死数,也就是Flash的极限。而人有寿命,网站同样也有寿命,即便某些死硬派不愿放弃,即便某些死硬网站不改初衷,他们也只能维系自己这点地盘,却丝毫影响不了别人的选择。最终,他们不是被别人吞并,就是自己也改弦更张,至多是死抱着Flash直到寿终正寝,但无论如何,迟早都是同样的下场。
谈到这里时,我希望大家不要忘记,当初Netscape的市场占有率有多少,现在又有多少?更加不要忘记,当初Applet在网页前端应用的市场占有率有多高,现在又有多高?假如他们的被取代大家都能想通,到了Flash被取代时,我们会再犯糊涂吗?不会。
——应该说,只要未来普及了HTML 5,Flash回老家结婚就是注定的。
或者你还会想,如果低端走不通,那么我就走中高端,让Flash继续增加HTML 5所不具备的特性,毕竟Flash10以后的安装文件也有10多MB了,所谓“虱子多了不咬,债多了不愁”,再加点也没什么,自然有人会用,如果Abode继续复杂化Flash功能,并能够完成那些HTML 5所无法实现的复杂应用固然很好。
——但是,您是不是忘了点什么,真以为Java和C#都是摆设不成?
Applet/Javafx,Silverlight这些现成的网页前端应用解决方案是摆着好看的吗?Oracle、Microsoft在复杂应用,尤其是企业级应用上是吃素的吗?莫非Flash开发者就真的集体空闲到会用N多年来逐一重复开发轮子,然后再做项目?莫非有现成的一体化解决方案不用,资方还非要用你的Flash前台,微软或甲骨文的后台?即便你一口咬定Flash开发就是简单,但这时已经有了更简便的HTML 5可用(甚至连swf的加载都省了),你又何苦自残呢?照此发展下去,就算开始时真有几个想不开的,可一旦做HTML 5的渐渐多了,傻子始终会不够用的……
就在此刻,只要你去下载最新版本的Chrome,稍微尝试下HTML 5即将带来的全新功能,你就会发现,以前看上去那么短小精悍的swf文件,曾几何时,怎么就变得这样臃肿没用了呢?!以前那么艳丽生动的Flash动画,曾几何时,怎么就变得这样繁琐呆滞了呢?!
——我们应该清楚的看到,HTML 5的出现,并不仅是一场技术革新,更是一场业界洗牌!