Flash还能走多远?

谈到Flash能走多远的问题时,我们不得不先聊聊作为Flash前辈的Applet

 

所以要提它,是因为人类历史上 第一个运行在浏览器之上的交互式应用,本来就是Java小程序,而非什么Flash

装扮小游戏 换装小游戏 化妆小游戏 美女小游戏 古装公主小游戏 装扮仙女小游戏 装扮男友小游戏 情侣约会小游戏 婚纱礼服小游戏 阿sue小游戏 做饭小游戏 美女餐厅小游戏 理发小游戏 美甲小游戏 芭比娃娃小游戏 大头妹小游戏 布置房间小游戏 照顾宝宝小游戏 祖玛小游戏 连连看小游戏 对对碰小游戏 泡泡堂小游戏 超级玛丽小游戏 黄金矿工小游戏 密室逃脱小游戏 魔塔小游戏 找茬小游戏 发泄小游戏 双人小游戏 儿童小游戏 奥特曼小游戏 海绵宝宝小游戏 虹猫蓝兔小游戏 哆啦A梦小游戏 喜羊羊与灰太狼小游戏 搞笑小游戏 休闲小游戏 冒险小游戏 模拟经营小游戏 棋牌小游戏 测试小游戏 策略小游戏 动作小游戏 体育小游戏 敏捷小游戏 射击小游戏 益智小游戏 综合小游戏

 

早在1995年之初,当GoslingGageWebRunner浏览器(即日后的HotJava浏览器)上展示3D分子模型之际,人们对Java的第一印象就是“这是种可以将静态网页变成动态的语言”,而并非这是种“开发手机应用的语言”或者这 是种“开发企业级应用的语言”。

 

直言不讳的说,自从JavaApplet诞生之初,直到2000Flash5出现以前,JavaApplet一直都是网站动态效果实现的首选媒介(尤其是网络教学)。而在此以前的Flash还算不得主流,登不得台面。

 

为什么Java(Applet)会变得不如Flash普及?

 

关于这点,抛开WindowsXP后期版本不再内置JVM的影响不谈,应该说同Sun高层的愚蠢无能,以及Macromedia高层的下作龌龊不如关系(某个时期的Flash真的就像流氓软件一样,不经过任何预警便自行安装,也没有必要的砂箱保护,什么都能运行)。

 

正是这群墨守陈规,不思进取, 被Java技术所带来的惊天财富冲昏了头脑(2000-2001Sun最兴盛时,股票峰值曾达258.75美元/股,公司估价超过2000亿美金),对技术趋势把握犹如童蒙的Sun高层,最终葬送了Java在网页乃至桌面领域的大好河山。

 

要知道,当时的Applet虽然有着相当完善的Java类库支持,并有稳妥的砂箱机制保证程序安全,但运行速度却异常缓慢(特指JRE1.0-1.3),运行界面也远没有Flash那么鲜艳友好,已经变得渐渐无法适应越来越复杂的网络展示需求,业界甚至开始出现关于JavaApplet的不利消息。

 

更关键的是,假如当时没有MacromediaFlash,或者Flash根本就是个连Applet也不如的垃圾那还好说。可偏偏,偏偏Flash在界面效果与运行速度方面都远胜于当时的Applet!而这群理应在脸上被刻下S13星烙印的Sun高层,不单在不必要的时刻过早地与微软决裂,甚至还对Flash这样新兴技术的威胁无动于衷!

 

他们即不想办法走正道完善自己 的JavaApplet体系,又不会运用邪道将Flash挤出市场,既没能预见到网页前端市场中蕴含的巨大商机,更无法适时的调整公司经营战略寻求新的Java赢利模式,任凭别人风生水起,自己却只管悠哉游哉的数着因股价飞涨而带来的绿色钞票。

 

——此辈若能成事,岂有天理 乎!

 

事后的结果证明,相对于系统内 置,小巧灵活,并有足够强大图形编辑工具支持的Flash。原有的Applet技术显得臃肿、缓慢、不易开发,甚至没有一款拿得出手的图形编辑器。

 

要知道,在IT领域中按资排辈这种事情根本就不曾有过。即使几十年的老店,也很可能会被某个车库中诞生的新生公司 打的体无完肤。

 

更何况,在那些愚不可及的Sun高层眼里,网页前端甚至桌面市场或许本就是一盘可有可无的生意,赢了没什么不好,输了也不可惜。毕 竟Applet只是Java功能中的一小部分,SunSPARCSolarisJava这三大法宝,即便Java中舍弃了Applet,依然有大把本钱,根本不必在意。

 

很明显,当时的Sun高层,对于“占领桌面,跳进口袋”这样的经营理念还缺乏认知。假如他们明白,那么无论Applet/AWT/Swing也好,J2ME也罢,也决计不会是今天这种地位。

 

此消彼长下,Flash的兴起与Applet的堕落几乎都成了必然,越来越多的开发者投向Flash阵营,最终导致了今天Flash的兴起与JavaApplet/AWT/Swing)在网页前端领域的没落。

 

在新的时代里,伴随HTML5的逐渐普及,网页技术的大洗牌时代将会再次来临。

 

正所谓“长江后浪推前浪,前浪 死在沙滩上”,就像当时的Applet技术,会被更先进, 更进取(也更流氓)的Flash技术所取代一样,新技术体系的 出现,永远是旧有技术体系所无法回避的恐怖梦魇。

 

——就连Abode公司与Flash也无法逃避这种规律。

 

诚然,现今的Flash比之当初改进了很多,Abode将它变得比以前更完善(他们干脆重写了Flash核心),除了原有的小动画、小广告、小游戏之外,Flex的出现让J2EE 或其它技术体系能够利用Flash开发商业应用,ActionScript脚本让死硬技术派们可以直接编写出Flash程序而不必拖拽界面。小到AV视频展示,大到网络游戏应用,几乎到处都可以见到Flash的踪影,Flash简直成了RIA的代名词。

 

无论实际怎样,在当今这个时代 里,“够快、够简、够普及”早已成了人们对Flash技术的潜 在共识。

 

——然而,这些印象恐怕也只能 维系到HTML5普及以前。

 

没错,HTML5标准的出现,将彻底颠覆现有的网页前端生态体系。

 

因为HTML5的诞生,很大程度上就来源于浏览器厂商们对于网页前端技术需求的反思。干脆点说,根本就是对于Flash大红大紫的一种醒悟。

 

在这里,我们姑且将其想象为一 场阴谋,一场“HTML5”诡计。

 

在某个阴暗偏弊的房间里,业界 的大佬们,或许曾经进行过类似这样的讨论“既然Flash用几MB的支持库就可以在浏览器上实现的功能,难道我们这些平台(浏览器)就做不到吗?既然是人人都要用到的 功能,我们又为什么非要通过Flash进行中转实现呢?既然 现在大家都需要这些功能,并且寻求更好的用户体验,干嘛不将它们绕过Flash,直接内置到浏览器中,以换取既快且稳的效果呢?!”

 

这些人大概会达成这样一种共 识,那就是Flash很牛,牛到了几乎没它不成。可 长此以往,兄弟们恐怕也都没得混了。所以,只好委屈Flash先走一步吧!

 

正如站在汽车上跑步,无论跑得 再快,始终跑不过汽车一样。任凭FlashUI再漂亮、制作再简便、运行速度再快,它又该如何超越它所在的浏览器平台本身?如何摆脱这群大佬巨鳄 的魔掌呢?

 

事实上,HTML5所提供的API标准,彻底克制于Flash之上。一旦标准普及,毫无悬念的,HTML5将秒杀Flash

 

可以设想一下,随着HTML5的逐渐普及,当你通过一个<video>标签就可以播放高清网络视频,当你通过一个<canvas>标签就可以渲染出相当靓丽的网页动画,当WebGL让你网页硬件加速,运行出不次于《魔兽世界》的3D效果,当WebSQL让你在浏览器中保存数据就像操作桌面应用那么简单,当WebSocket轻而易举地实现浏览器与服务器端通讯之际,谁还会关心什么swf,谁还会记得什么Flash

 

Ext3.0提供的<video>标记应用效果:

Web3D效果:

 

 

 

不客气地讲,当HTML5真正普及之日,Flash的优点都将变得不能再称为优点,而它的缺点却会开始凸现得越来越严重。

 

所有依靠Flash,特别是依靠Flash在网页方面养家糊口的同仁们,我劝大家千万不要相信那个关于HTML5要到2022年才会正式实施的传闻,误以为还有很长的周期让Abode改进技术甚至相信自己能在此前就熬到主管级别。

 

只要稍微看看最近ChromeFireFox的更新趋势,乃至未来的IE9规划,你立刻就会发现,它们会等你到2022吗?绝对不会!不到2015年,HTML5就已经是各个浏览器的事实标准了。

 

看到这里,你或许会说:“胡 说!Flash可不只是那么一点功能,况且现在有那么多的Flash应用,难道都能轻易舍弃吗?兼容性问题你都解决了吗?”

 

——没错,原有的Flash功能,就是会被人们所遗忘舍弃。

 

正如有声电视机取代无声电视, 电话机取代传声筒一样,让你在一台免费的PSP3,一台免费 的Xbox中抉择你想要哪台主机,你可能很难下决定。然而,如果换成一台是免费的小霸王,一台是白来的Xbox间抉择,该搬哪台回家,肯定不用笔者去教。

 

即便网络上有97%的网站在使用Flash,即便网络上有数不清的Flash/Flex应用存在,一旦更简便、更快捷、更高效的HTML5标准普及,这些都会变得毫无意义。

 

毕竟新近的开发者们决不会选择 一种低效、缓慢、过时、并且可以被替代的技术作为自己的开发语言。

 

到了这时,就算你给地球上60多亿人口每人配备一个Flash应用,这60亿也将成为一个永远不会增加的死数,也就是Flash的极限。而人有寿命,网站同样也有寿命,即便某些死硬派不愿放弃,即便某些死硬网站不改初衷,他们也 只能维系自己这点地盘,却丝毫影响不了别人的选择。最终,他们不是被别人吞并,就是自己也改弦更张,至多是死抱着Flash直到寿终正寝,但无论如何,迟早都是同样的下场。

 

谈到这里时,我希望大家不要忘 记,当初Netscape的市场占有率有多少,现 在又有多少?更加不要忘记,当初Applet在网页前端应用的 市场占有率有多高,现在又有多高?

 

假如他们的被取代大家都能想 通,到了Flash被取代时,我们会再犯糊涂吗? 不会。

 

——应该说,只要未来普及了HTML5Flash回老家结婚就是注定的。

 

或者你还会想,如果低端走不 通,那么我就走中高端,让Flash继续增加HTML5所不具备的特性,毕竟Flash10以后的安装文件也有10MB了,所谓“虱子多了不咬,债多了不愁”,再加点也没什么,自然有人会用。

 

嗯,没错,如果Abode继续复杂化Flash功能,并能够完成那些HTML5所无法实现的复杂应用固然很好。

 

——但是,您是不是忘了点什 么,真以为JavaC#都是摆设不成?

 

Applet/JavafxSilverlight这些现成的网页前 端应用解决方案是摆着好看的吗?OracleMicrosoft在复杂应用,尤其是企业级应用上是吃素的吗?莫非Flash开发者就真的集体空闲到会用N多年来逐一重复开发轮子,然后再做项目?莫非有现成的一体化解决方案不用,资方还非要用你的Flash前台,微软或甲骨文的后台?即便你一口咬定Flash开发就是简单,但这时已经有了更简便的HTML5可用(甚至连swf的加载都省了),你又何苦自残呢?照此发展下去,就算开始时真有几个想不开的,可一旦做HTML5的渐渐多了,傻子始终会不够用的……

 

就在此刻,只要你去下载最新版 本的Chrome,稍微尝试下HTML5即将带来的全新功能,你就会发现,以前看上去那么短小精悍的swf文件,曾几何时,怎么就变得这样臃肿没用了呢?!以前那么艳丽生动的Flash动画,曾几何时,怎么就变得这样繁琐呆滞了呢?!

 

——我们应该清楚的看到,HTML5的出现,并不仅是一场技术革新,更是一场业界洗牌!它将彻底破坏现有网页前端技术的游戏规则,将Flash打入万劫不复之地!

 

再者,这么多年来Flash普及甚广,吃这碗饭的人不在少数。而反过来说,Flash程序员品质参差不齐,技术有高有低,被人利用Flash中马,被人利用Flash盗取个人信息者更不在少数,对Flash深恶痛绝者也不在少数。

 

且不提乔布斯这样痛骂Flash的业界领军人物,单单是你我这样的普通技术人员,又有几个从没有被网站上的Flash广告搞的页面崩溃,又有几个没有安装过FlashBlock的呢?

 

有些Flash开发人员看到此处或许会心有不甘,但至少在网页前端领域,Flash的衰落已不可避免,并非你我这样的凡夫俗子所能干预影响。

 

在这里,就让我们提前说一 句:“Flash你好,Flash再见” 吧!

 

Flash不成了,Applet/JavaFxSilverlight还能有什么作为?

 

此刻,我们回头去看Applet,就会发现到它已然错过了一场本该属于它的技术革命,错过了一场本可以大赚特赚的饕餮盛宴。

 

假如当时的Sun管理者有幸穿越时间隧道到现今看看,并且活着回去。我想Macromedia的下场无非两个,要么被Sun收购,要么就是被Sun打的连北都找不到了。

 

更直接的讲,如果当时的Sun高层来到今天,看到JavaFX这种“后知后觉”的网页前端技术,看到JDK1.6这种“迟到”的性能改进,甚至捎带手将Android的做法也学习一下,并且在那个时代就付诸实践的话,还有什么Flash/Flex?哪来什么SilverlightJava早该“千秋万载,一统江湖”了。

 

——但当时又有几个人能想到, 网页前端市场会发展到如今这样白热化的地步呢?

 

历史不允许假设,穿越的事情更 是“可求而不可遇”,我们所面对的,是一个MacromediaAbode收购,SunOracle收购的时代,也是一个HTML5即将渐渐普及的时代。

 

放眼当今,即便Flash真如笔者所言即将成为明日黄花,抛开有微软银弹力挺的Silverlight不谈,莫非连Applet/JavaFx这路“古董货”也会有所作为吗?

 

——笔者认为是可能的。

 

事实上,任何了解Flash的人都知道,Flash是很简单,很快捷,很高效没错。

 

但是,这也仅仅局限于简单的动 画效果,或者说仅仅局限于一些比较简单的业务实现当中。

 

——任何一位有经验的Flash程序员,即便你有多爱Flash,恐怕也很难讲出ActionScript是一门设计完善,性能卓越的语言吧?

 

Flash开发诸如偷菜、调教秘书的小游戏,抑或制作个上传下载的简单界面确实又快又好。但轮到真正复杂的应 用时,譬如让你用它开发个3D的《魔兽世界》(仅指模拟效 果),甚至要求再低些,让你去搞个《传奇》级别的网游,就根本不是那么一回事了。

 

Java方面,我们都知道如蓝港在线之类的国内公司,在很早以前就率先尝试过利用Java技术开发过诸如《倚天剑与屠龙刀》之类的2.5D即时战斗类游戏,现今该公司所开发的《西游记》也依旧延续了这一体系。但假如我们将它转换为Flash,而非Java开发,试问哪家游戏公司既能做出这样的即时战斗效果,又不被活活卡死?谁敢说这样的话?!

 

 

 

 

你或许会说这只是个桌面应用, 那我们就单说网页游戏,我们都很清楚现在国内有不少尝试用Flash开发网页游戏的公司,更有不少Flash开发者对于《黑暗契约》之类的国外网页游戏津津乐道。

 

但是,当你望着屏幕上每次过屏 都反复下载的各种模块时,当你望着相互PK却突然静止不动 或者模糊不清的画面时,当你望着稍不留神就会CPU占用达到100%,直到被敌人杀死也未必会再动的游戏时,你除了选择清空缓存永不再玩,还能干些什么呢?

 

事实上,即便Flash网页游戏如同雨后春笋般发展到今天,笔者始终没有见过一款哪怕是“不太卡”的ARPG游戏,甚至于连续玩上一段后不用刷新重进的RPG类也很少见。否则,笔者也不会在某Flash网游中白投了数百元去刷金龙蛋、凤凰卵,却最终选择不玩了事了。

 

在这里笔者不想刻意褒贬国内的 一些Flash网游,只是随意摘取了某Flash游戏GM对某玩家评语的回复,或许就能稍见端倪(玩家具体评了什么,请大家自行从对话中推导)

 

 

 

事实上,在这里还有一个比较鲜 明的对比(好吧,我承认这是我截图的主因),那就是上面某位玩家提到了汉森的《倾城》,这是一款非常罕见的JavaApplet)网游。对比玩家的评论就不难发现,FlashJava技术的决定性差异,究竟体现在了什么地方。

 

下图为《倾城》截图:

 

 

 

应该说,相对于适合简单图形应 用的Flash而言,Applet(含JavaFX)截然相反,它庞大的类库与体积并不适应于很多需要快速加载的场合,以致某些人初次运行时会觉得它很 慢。但是,只要加载过一次的应用,Applet(含JavaFX)都将自动建立其相关缓存,直到你修改相关应用并重新发布之前,Applet都不会再有重复下载的行为出现。

 

也就是说,Applet的慢仅仅局限于首次运行,而后便没有了那种烦恼。而Java本身固有的丰富支持库,以及超级强悍的网络通讯功能,更加不是Flash所能比拟的(更极端的讲,Java逼急了能上JNIFlash怎么办?)。可以这样说,越复杂的游戏,对于Java就越是得心应手,越是复杂的应用,对于Java就越是驾轻就熟(类似于Sun公司的奇异特性,复杂的事简单,简单的事复杂……)。

 

Flash的小巧、简单,却在这时变成了缺点,因为类库的不完备,你必须亲自开发大量的程序模块,才可能让它 正常运行在诸如网游这样复杂的环境中;因为性能的不到位,你必须自行处理海量的图形资源,斤斤计较于某个对象的释放与否,才能保证程序不会突然静止不动。 而即便你全部处理了这些,以Flash的固有能力来看,应用 的稳定性将依旧欠佳,哪怕画面再好,只要稍微运行久些,迟早都原形毕露,该卡则卡,该崩则崩,该死则死。

 

更何况,一旦在Java中使用了OpenGL,那么即便是画面效果这个Flash中唯一的优点,也将不复存在。

 

比如Java网游中大名鼎鼎的RuneScapehttp://www.runescape.com/),可以在网页前端高效运行3D游戏,却没有一丝一毫的延迟停顿。而在Flash网游的世界里,又有什么能和它比肩的3D应用(不卡的3D人物打斗示例都算)吗?如果有的话,麻烦哪位给个链接我看。

 

事实上,假如Sun最初就能像JRE1.6以后版本那样大幅度的提高图形运算速度,或者将DirectXOpenGL调用更 方便的绑定(直接提供API)在JDK当中的 话,现在网页游戏的开发主流或许将是Applet甚至JavaFX了。

 

正因为Sun最初的不作为,才直接导致了后来许多人关于Java性能的误解与迷茫,造成了人们对Java性能 “低劣”这种陈芝麻烂谷子的刻板印象,最终导致了很多人误上Flash的“贼 船”。(最可气的是,因为Sun的行动过于缓慢,现今虽然有了JOGL之类的 拓展应用,但很多搞Java的已然变得不会用OpenGL了……)

 

——古人云“观古今之成败,能先见事机者,则恒受其福”,诚不我欺。

 

伴随HTML5的普及以及Java性能的逐渐提升,Flash在前端的领先优势将不复存在,网页低端与高端应用将会产生分流,未来Applet/JavaFxSilverlight究竟谁主沉浮,始终还是未知之数,希望Oracle不要再走Sun的老路,真真正正的认清形势,抓住机遇吧!

你可能感兴趣的:(Flash)