Flash: 涅磐与重生

10月3号,Flash Player 11 和 AIR 3.0正式提供下载,一片安静。最近这两年来,关于Flash的新闻一向是以负面为主,先是 Silverlight 的挑战,然后是 iphone和ipad的不支持及html5的良好预期,Flash 看似风雨飘摇,明灭不定。实则不然。我个人观点:Silverlight成不了Flash的竞争对手,主要原因是商业层面的原因。html5还是初生婴儿,需要进一步观察。这些在本文后半部具体分析,本文重心还是Flash。

下面先详细阐述:

(1)什么是Flash平台

(2)Flash平台的两次涅磐与重生

(3)Flash平台的商业策略及这种策略的优势和劣势

我个人只有3年的Flash开发经验和2个月的html5开发经验,受经验所限,本文若有事实错误还请指正。

(1)什么是Flash平台

什么是Flash平台?这个问题绝大多数人、甚至绝大多数程序员都不知道,因为Flash一直游离在主流开发人群之外,大家对它的印象:最开始是网络动画和网络广告,后来是网络视频,接着是现在的网页游戏。

下面用一句话来介绍什么是Flash平台:

Flash平台是与.Net和Java类似的运行时平台,有虚拟机、有GC、有比较成熟的快速开发语言、有比较成熟的IDE。它们之间的不同是:

· Java是从Server端起家的

· .Net是从桌面起家的

· Flash是从Web起家的

Java 现在统治了Server端的快速开发。.Net 统治了Windows下的Web开发、是桌面快速开发(还未统治)的重要选择。谁会统治Web和移动APP的快速开发?目前只有两个选项——JS和Flash。虽然目前JS的呼声比较高,但我觉得Flash的胜机更大,或者是两者的寡头垄断,后面比较html5和flash时再详细分析。

Flash有一个运行时,现在叫avm2,相比Java和.Net的大个头来说,这个运行时很小,只有很少的功能,甚至连线程都没有。Flash Player 10的安装包为2M+,Flash Player 11的安装包为3M+。Flash 的可执行文件格式是swf,库是swc,字节码是abc(ActionScript Bytecode)。Flash的主流开发语言是actionscript 3.0,它是一种ECMAScript语言,我私下叫它javascript ++。actionscript 3.0 既有静态语言的特性,又有动态语言的特性,什么属性啊、事件啊、元数据啊等都有,是一门快速的开发语言。Flash的其它的开发语言有haXe,C,C++。顺便说一句:haXe也能开发html5应用。

Web是Flash平台的起家之地,以Flash Player为核心。在桌面上,Flash的解决方案是AIR(你可以把它看作WPF的类似物),在移动平台上,Flash的解决方案也是AIR,在Android上,AIR是以虚拟机机制运行的,在ios上,是直接编译成二进制执行的。

也就是说,目前的Flash已经从以前的Web平台扩充到三个平台:

· Web平台

· Windows/Linux/Mac osx桌面平台(这次AIR 3.0的发布,大幅度增强了桌面平台的能力)

· 移动平台(Android,ios,黑莓)

Flash是目前唯一一个可以快速开发,然后经过简单的修改(连UI都是公用的)就可以在上面几个平台上跑的技术。就我个人的体验,actionscript 3.0的开发速度比java高得多,比C#要略低。

好吧,顺便在这里说一句,为什么我说Silverlight和Flash看似一样,却是截然不同的。

虽然从技术上Flash能做到的,Silverlight是都可以做到,但是微软是绝对不会放纵Silverlight跨这么多平台的,因此在商业上是绝对做不到的。随着AIR 2.7的出现,以及微软现在对win8、html5的态度,Silverlight已经提前出局了。Silverlight将是windows上的开发利器,但,仅仅限于windows平台。这种层面的战争是商业战争,而不是技术战争。Silverlight虽然是微软自己搞得,但现在看起来是后妈养的。Flash虽然是买来的,但和Adobe的发展习习相关,就像亲儿子一样。

Adobe有一个开源项目叫Alchemy,可以用C/C++写Flash程序,这一方面会继续增强:

We released Alchemy on Labs over two years ago as an experimental prototype that allowed developers to leverage C/C++ code in Flash Player and AIR. We have not updated the original Alchemy prototype, and while we noted from the beginning that it should not be relied upon for production content, we’ve received persistent requests from developers asking for official support in the Flash runtimes.

We’ve been listening and have decided to invest in creating an improved version of Alchemy, which we plan to release as part of a paid production offering for commercial development. We intend to make non-commercial use free of charge.

The production release will offer significantly better performance and productivity over the Labs prototype. By re-architecting major portions of the technology, we aim to enable code execution approaching native performance, scalable support for large code bases, full debugging support, up to 75% reduction in code size, and seamless integration with ActionScript – all while reaching virtually every connected computer on the web.

出处:http://blogs.adobe.com/flashplayer/2011/09/updates-from-the-lab.html

如果这一个目标实现了,直接在Flash平台上写高性能程序不是奢望。

(2)Flash平台的两次涅磐与重生

Flash平台经过了两次涅磐与重生。

第一次是2006年 Flash Player 9的发布。从Flash Player 8到 Flash Player 9的进步是质的飞跃,在虚拟机层面由 avm1 变为 avm2,性能的大幅度提高及由 actionscript 2 演化到 actionscript 3,使得Flash 平台具有了挑战其它平台的可能性。

第二次就是这次Flash Player 11 及 AIR 3的发布。Flash Player 11 有一个重大的特性就是硬件加速的 3D API。虽然Silverlight 5也提供了硬件加速3D API,但是Silverlight 蜗牛般的推进速度令人遗憾。

这里再强调一下,这种战争是商业战争。Silverlight为什么安装率不高?我认为有两大原因:

(a)强行推行Silverlight 存在一定的法律风险,这个不是主要原因;

(b)就算Silverlight占有率是99.5%,微软也得不到什么好处,反而需要花费巨大的推广费用,这个应该是最主要的原因。除非微软能够把每台机器上的Flash 给卸载掉,那个时候才能从Silverlight获得巨大利益。能做到这一点的,只有我们天朝的周大先生,微软没有这样的人物,a8m也不会让他这样干。

再看看Flash Player的成绩。Flash Player 10是2008年发布的,现在的占有率是99+%。我在前几个项目时还要考虑Flash Player 9,现在根本不用考虑了。而如果Flash Player 11能延续这个速度,2-3年之后,几乎每一个机器的浏览器上就有了硬件加速3D  API,这比普及浏览器还快得多。3D Web应用,3D 网页游戏的首选技术呼之欲出了。

AIR 3的意义比Flash Player 11的意义更大。

AIR 3可以调用native api了(之前,只能和可执行文件通讯),这样一来,在桌面开发就可以将界面和逻辑部分用AIR开发,而性能攸关部分用c/c++开发。

AIR3 支持桌面和移动平台。印象中,从AIR 2.6已经支持移动平台了,但是那个版本的性能表现很差劲。AIR 2.7表现还可以,这个是今年6月发布的,没几个月,目前用AIR开发的移动应用已经10000+了。并且,市面上已经有众多的Flash游戏,这些游戏可以以很小的成本迁移到移动平台上去。而游戏,是移动平台上最主流的应用。

OO、快速开发、IDE、跨平台、3D、native invoke,这些加起来,意味着什么呢?虽然移动平台让Flash Player 插件遭到了滑铁卢,但是也给了Adobe一个崛起的契机,AIR3 就是吹响的号角。

(3)Flash平台的商业策略及这种策略的优势和劣势

总体来说,Flash的平台策略是小运行时+类库扩展和源生扩展。这个运行时的核心是UI。UI是开发中工作量非常大的部分,能够简化这一部分的开发是Flash的核心优势,而因为是小运行时,跨平台的工作量不大。因此Flash可以轻轻松松随随便便的跨平台,而.Net,Java这种重量级的选手跨平台的代价就大多了。Silverlight也可以做这一点,但不会傻到真去做。

Flash平台的三个核心优势:

(a)广泛的安装基础(这个拜网络动画、视频而赐)

(b)统一的UI模型(两个层面:基于Sprite层面的和基于mxml/data bindding/style层面的)

(c)跨平台(主流平台都跨了——各大桌面操作系统、各大web浏览器(桌面)、各大移动应用平台)

Flash平台的劣势也是在于小运行时,运行时不完美,缺乏一些能力,对于大型应用不适合,只适用于中小型应用,而这类应用,恰恰是移动应用和Web应用的主流。

Flash、Silverlight和html5的比较分析

上面说了,Flash有三个核心优势:安装基础、统一的UI模型和跨平台。

对于Silverlight来说,.Net在技术上比Flash更为成熟,不过缺陷在于安装基础和跨平台,这导致了Silverlight只能是Windows平台上的移动应用和Web应用的可选方案。

对于html5,需要详细的分析:

(1)安装基础:html5在移动平台上的安装基础比较高,但是在桌面上的安装基础还很弱;

(2)UI模型:html + css + js 比较成熟,虽然浏览器兼容问题也客观存在,但注意一下还是可以解决,js的话是个短板,它和C#,Java这种现代语言来说,生产力差距是明显的,但如果要写大型应用的话,可以用haXe这种万能语言来补充;

(3)跨平台:目前主要是跨移动平台,桌面平台的话,ie7,8的消灭还需要时日,对于中国来说,还得先干掉ie6。

html5最重要的优势是它不是私有技术,受各大厂商欢迎。它的最重要的缺点有两个:

(1)性能:这个性能有两个限制,第一个是由于是公开的技术,各种实现上的性能不一样,js在不同平台上性能差距10倍100倍是常事。移动平台不支持Flash是因为Flash应用在移动浏览器上几乎跑不动。这并不表示Flash平台比html5 平台性能低下,反而目前,根据我的项目经验,flash平台的性能要远远高出html5平台的性能,且是数量级的差异。同等的Flash 2D应用,如果用html5实现的话,在移动平台上的性能简直不忍目睹,即使是在桌面平台上,IE9的Canvas有硬件加速,跑起来也还是显得慢。当然,这些会随着时间发展慢慢完善,但是,想想多浏览器,等每个厂商都完善是个漫长的过程。而对于私有技术来说,AIR 2.6在移动平台上慢得像蜗牛,仅仅翻了个年,AIR 2.7在移动平台上的性能就有了数量级的提升,这是私有技术的好处。第二个限制是js,js不是强类型的,这不利于大规模开发和高性能开发,会成为瓶颈。对于前者,由于js非常灵活,我们可以通过haXe这类语言引入强类型,但高性能,却是实打实的问题。

(2)解决方案:出于发展初期,各种解决方案欠缺。

因此,未来的RIA可能三分天下:

·50K以下的和50K以上的用户众多的非计算密集性应用,html + js统治

·50K-2M之间(Windows平台)、50K+(其它平台)Flash统治,并会在桌面和移动应用上有一块不小的领地

·2M之上的(Windows平台),Silverlight统治

IT界,新的竞争者总是出现在意想不到的地方升起。

若标题中有“转载”字样,则本文版权归原作者所有。若无转载字样,本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
posted @ 2011-10-05 06:57 xiaotie 阅读(5456) 评论(87) 编辑 收藏

 回复 引用 查看   
#1楼 2011-10-05 07:10 幕后玩家      
在企业开发上,我觉得SL远强于Flash。但Html5应该是以后的重点,毕竟只有html才是真正跨平台的技术。
 回复 引用 查看   
#2楼[楼主] 2011-10-05 07:20 xiaotie      
@幕后玩家
大点的应用,目前用html5开发是灾难(性能、生产力)。现在网上到处流传的html5应用对应于flash大概是hello world那一级别。2M以上的企业应用,flash的优势会消失,sl占优。sl弱势就是平台局限性,微软投鼠忌器。

 回复 引用 查看   
#3楼 2011-10-05 07:41 klos      
niubi
 回复 引用 查看   
#4楼 2011-10-05 08:57 【当耐特砖家】      
引用现在网上到处流传的html5应用对应于flash大概是hello world那一级别。


no !no! no!javascript 3D引擎+HTML5写出来的东西用flash实现也是相当费劲的。

 回复 引用 查看   
#5楼[楼主] 2011-10-05 09:03 xiaotie      
@【当耐特砖家】
那是得指定浏览器吧。Flash 3D对战,赛车等跑的爽爽的:
http://alternativaplatform.com/en/showcase/

 回复 引用 查看   
#6楼 2011-10-05 09:14 轩辕法王      
9月1日,微软Silverlight 5 RC 发布,预计年末微软会正式推出Silverlight 5正式版。同时今年的BUILD开发者会议上,微软会揭晓最新的Silverlight定位。微软创造Silverlight的目的,是为了促成一个跨平台跨浏览器的解决方案,并直接与Flash平台展开肉搏。然而这个目标似乎不再是那么重要了,恐怕当初的微软也不会想到今天的Flash平台本身也变得不是那么重要。一向自诩为跨平台的Flash,却已经无法登陆乔帮主的ios战船,不得不说这是一种尴尬。Silverlight与Flash成了难兄难弟,因此,微软果断地转移了自己的战略重点,投奔“真正的”跨平台跨浏览器技术,那就是HTML 5 ,这是否意味着微软将抛弃Silverlight ,HTML 5将从根本上替代 Silverlight ?在去年PDC大会微软的答案是:我们对Silverlight不抛弃不放弃。事隔一年回头看,这个亲妈对Silverlight还是很给力的,2011年微软发布了Silverlight 5 Beta版,但在这个HTML 5的时代,微软能否撑起Silverlight的明天?
 回复 引用 查看   
#7楼[楼主] 2011-10-05 09:26 xiaotie      
@轩辕法王
there are now over 10,000 AIR apps in mobile markets.
(http://blogs.adobe.com/flashplayer/)
10000+移动应用了啊,大哥啊!Flash不能登陆ios那还是前年的事情,去年开始都能跑了……

 回复 引用 查看   
#8楼 2011-10-05 09:43 轩辕法王      
http://developer.51cto.com/art/201109/295038.htm

引用xiaotie:
@轩辕法王
there are now over 10,000 AIR apps in mobile markets.
(http://blogs.adobe.com/flashplayer/)
10000+移动应用了啊,大哥啊!Flash不能登陆ios那还是前年的事情,去年开始都能跑了……

 回复 引用 查看   
#9楼 2011-10-05 09:57 【当耐特砖家】      
引用xiaotie:
@【当耐特砖家】
那是得指定浏览器吧。Flash 3D对战,赛车等跑的爽爽的:
http://alternativaplatform.com/en/showcase/

链接很给力

 回复 引用 查看   
#10楼[楼主] 2011-10-05 10:01 xiaotie      
@轩辕法王
网文以讹传讹的多。网文主流观点还是flash不能开发ios。可是已经有大量的移动应用了:
《完全Flash开发的游戏, 在免费iPad/iPhone游戏中分列第一和第二》:
http://bbs.9ria.com/thread-83990-1-1.html
itunes地址: http://itunes.apple.com/us/app/dr.stanleys-house-2-6-stones/id432047970?mt=8
http://jamesli.cn/blog/?p=833&cpage=3#comment-3664
(写一份程序,Web、桌面、Android、iOS上都能跑,多爽)
《Running Panda》作者的移动游戏开发心得分享:
http://bbs.9ria.com/thread-98797-1-1.html
连大赛都开始了:http://bbs.9ria.com/thread-99044-1-1.html
不过也难怪那些网文作者:真正能上台面的AIR2.7才出来没几个月。
千鸟在林,不如一兔在手啊,html5再是未来,在目前也带来不了现钱。

 回复 引用 查看   
#11楼 2011-10-05 10:05 Artech      
我也觉得HTML5才是王道,对HTML5的支持肯定是各个浏览器厂商竞争的主战场(目前主流的浏览器对最终消费者来说已经没有了太大的差距),相信各种主流的浏览器在未来的时间内会加速更新的频率,很多问题对得到解决,毕竟这早已不是IE/Netscape争雄的时代了。
 回复 引用 查看   
#12楼 2011-10-05 10:09 Aicken(李鸣)      
.Net是从桌面起家的?.Net发布之时只是包含了桌面开发平台,但不仅限于桌面开发,而且现在主流的桌面程序哪有DotNet的?

AS 3.0不知现在有没有封装之类的了,我玩那会是没有,智能提示基本忽略,一个脚本动画很吃CPU,转成线性的才能流畅播放。

 回复 引用 查看   
#13楼 2011-10-05 10:10 Jake Lin      
Alchemy也是SL for WinCE的代码。
 回复 引用 查看   
#14楼[楼主] 2011-10-05 10:11 xiaotie      
@Artech
估计还得5-15年,html5及相关工具才能成熟。

 回复 引用 查看   
#15楼[楼主] 2011-10-05 10:12 xiaotie      
@Aicken(李鸣)
早有了。as3现在只比C#差,比java都强很多。

 回复 引用 查看   
#16楼 2011-10-05 10:22 goding      
周大先生何许人也?那么牛B
 回复 引用 查看   
#17楼 2011-10-05 10:23 【当耐特砖家】      
引用xiaotie:
@Artech
估计还得5-15年,html5及相关工具才能成熟。

工具确实很重要。有了好的工具,才能实现优秀产品的批量生产。

 回复 引用 查看   
#18楼[楼主] 2011-10-05 10:32 xiaotie      
@goding
流氓教父

 回复 引用 查看   
#19楼 2011-10-05 10:49 magicDict      
@goding
周公。。。。
做梦的意思

 回复 引用 查看   
#20楼 2011-10-05 10:54 深蓝色右手      
好文章呀~
关于Silverlight,5.0正式版的时候微软会再次重申它的定位,到时就拨云见日了。

 回复 引用 查看   
#21楼 2011-10-05 11:09 地狱门神      
@xiaotie
我最近看ActionScript的东西,发现似乎还不广泛支持泛型。编程最基础的集合类也没有简单统一的实现。
感觉比起Java来都还有很长的距离。

 回复 引用 查看   
#22楼 2011-10-05 11:20 syx278250658      
确实是好文章 但我到时希望SL那天跨平台...
 回复 引用 查看   
#23楼[楼主] 2011-10-05 11:24 xiaotie      
@地狱门神
flash player 10支持泛型。flash这边的指导思想是能不提供给你的就不给你。Array,Vector一般情况够用了,Object自身就是字典,其它数据结构我到目前也就用过queue和stack,在Array上简单封装就行了。如果想用其它的,可以找第三方库。在语言层面,as3比java用的爽,主要爽的地方是dynamic和数据绑定。as3特点是小而精,有很多C#,Java的东东它没有或者简化过,存在较大的限制。而它有的东东,用的都比较爽,除了event。

 回复 引用 查看   
#24楼 2011-10-05 11:26 羽之      
看了博主的文章有下列问题:
1、sl不仅能跑在windows上,还能跑在mac上,如果借用moon还能跑在linux上。至于xbox360和wp7以及未来的win8都采用sl的前端展示技术
2、flash由于其后端的as限制和其ide问题,很难与.net和vs相抗衡
3、flash现在的装机量是不少,但你是否看到sl的装机量呢?现在你买台笔记本,只要带win7的都预装了sl。而且腾讯、迅雷、新浪等公司的应用也在内嵌sl
4、博主的三分天下,是不对的,随时时代的进步,网速肯定是朝着高速大流量发展的,因为这个三分天下只是当前,在上海北京这种大城市可以说是历史。2014年上海要达到200M的宽带,北京2012年要光纤全面到户。
5、不要和HTML5去比,flash和sl比是对的,和html5根本就是两个东西。
6、统一UI不知从何谈起,哪个语言不是统一UI的,除了JAVA这个没有UI的以外。
7、关于sl出局一事,我们从微软的态度和win8的预览版就能看出来,微软并没有放弃sl,而是更大范围的应用sl了。至于sl还是不是sl这个要看微软的做法了。

 回复 引用 查看   
#25楼[楼主] 2011-10-05 11:26 xiaotie      
@syx278250658
要跨也是跨微软的平台。跨别的平台,就是为他人做嫁衣了。支持win phone 可以卖手机OS,方便企业开发,可以卖服务器和数据库。。。。。。silverlight目前的定位已经是赤裸裸的了

 回复 引用 查看   
#26楼 2011-10-05 11:27 羽之      
HTML5的事情,W2C说2022年会有至少两款浏览器全面支持html5.

各位HTML5的粉丝们可以慢慢等

 回复 引用 查看   
#27楼[楼主] 2011-10-05 11:35 xiaotie      
@羽之
1、sl不仅能跑在windows上,还能跑在mac上,如果借用moon还能跑在linux上。至于xbox360和wp7以及未来的win8都采用sl的前端展示技术
>> 现在移动这一块是黑马,微软现在还在赶考,前途未明
2、flash由于其后端的as限制和其ide问题,很难与.net和vs相抗衡
>> 大错。Flash Builder很好用。
3、flash现在的装机量是不少,但你是否看到sl的装机量呢?现在你买台笔记本,只要带win7的都预装了sl。而且腾讯、迅雷、新浪等公司的应用也在内嵌sl
>> 需要具体的数字。flash装机量是adobe官方的数据。还有啊,移动,移动!比如,你用sl开发一款游戏,想推广到手机、平板电脑上,又得从头开发是不? 你开发的一款应用,你的老板想用ipad访问,你咋办呢?移动终端现在发展这么快。
4、博主的三分天下,是不对的,随时时代的进步,网速肯定是朝着高速大流量发展的,因为这个三分天下只是当前,在上海北京这种大城市可以说是历史。2014年上海要达到200M的宽带,北京2012年要光纤全面到户。
>> 说的是应用的大小。素材等忽略。
5、不要和HTML5去比,flash和sl比是对的,和html5根本就是两个东西。
>> 其实是一个东东。html5提供的功能都是flash现在有的。两者大部分重叠。只是一个是私有技术一个不是而已。
6、统一UI不知从何谈起,哪个语言不是统一UI的,除了JAVA这个没有UI的以外。
>> 跨平台统一UI。Flash在Web、桌面、移动三类平台上的UI是统一的。
7、关于sl出局一事,我们从微软的态度和win8的预览版就能看出来,微软并没有放弃sl,而是更大范围的应用sl了。至于sl还是不是sl这个要看微软的做法了。
>> 不跨移动平台已经出局了,跨移动平台微软不会干。

 回复 引用 查看   
#28楼 2011-10-05 12:27 陈梓瀚(vczh)      
@xiaotie
不就是俩类库,争什么争。你在android用flash,在wp7用silverlight,在ios用苹果自己的那套不就得了,有那么严重吗,很难学吗?真是的。

 回复 引用 查看   
#29楼 2011-10-05 12:33 羽之      
@xiaotie
我实在不知道怎么说了。
1、如果移动这块微软还在赶考,那么flash就是直接弃权了,连考的机会都没有
2、你会认为flash builder好用?别误导大家,在开发工具中vs的好用是大家有目共睹的
里面你主要说了移动端,我认为这里大家理解有个偏差。我认为如果你是开发桌面、平板、手机、WEB用的UI肯定是不同的,如果你打算用同样的UI对应四个平台,结果肯定很差。

为什么说HTML5和RIA不是一个呢,因为HTML5是HTML4的扩展,还属于WEB层面,功能的相似并不是说两者是一回事。一个是插件一个浏览器这两个东西怎么比呢?

跨平台的事微软不会干??微软是没少干这种事啊。只是都不是以微软的名义来做的。微软的三屏一云肯定会进行下去的,而sl的展现模式正是这三屏一云的界面唯一选择。我觉得相比总会比flash有生存空间。

另外就是别从技术来看技术,我们从市场来看,先看微软和adobe的两家公司的差距,再看两者技术支持的程度,再看两边合作伙伴的力度。再看看程序员的数量(别算设计师,我说的是开发)。我相信在同等条件下微软的生存能力肯定比adobe强

 回复 引用 查看   
#30楼 2011-10-05 12:37 羽之      
(b)就算Silverlight占有率是99.5%,微软也得不到什么好处,反而需要花费巨大的推广费用,这个应该是最主要的原因。除非微软能够把每台机器上的Flash 给卸载掉,那个时候才能从Silverlight获得巨大利益。能做到这一点的,只有我们天朝的周大先生,微软没有这样的人物,a8m也不会让他这样干。

这段有点意思?为什么占有率99.5%还得不到好处啊?

微软可以把flash给卸掉,只要收购adobe就行了,反过来你让adobe收购微软看看?

a8m为什么不让微软这么干,只要微软能出钱并支持a8m连任就行了。

一切是利益使然,微软有最大的利益化能力,而adobe没有。微软现在手里的现金就能收至少4个adobe了

 回复 引用 查看   
#31楼 2011-10-05 12:46 我是打酱油的      
四个字:垂死挣扎。

这四个字也可以用在SL上。

所有这两个平台上的程序员:回头是岸。

 回复 引用 查看   
#32楼 2011-10-05 12:53 诺贝尔      
flash,做动画的定位导致他不可能翻身。

sl ,可以行跨win,mac,wp,xbox多个平台,这是他得优势。
html5 比sl更强, 理论上html5会取代sl之类的,但是微软的强势支持,sl就如vb那样,还是无处不在的。

现在是网络时代,跨平台是主要诉求,微软就算不愿意,也无法阻挡潮流的前进。windows的价值会越来越低,所以微软云计算是他的唯一出路。当然,微软云如果成功,也会加速业界的发展。

 回复 引用 查看   
#33楼 2011-10-05 12:55 Highflyer      
中肯,客观!代表了大多数的看法。
 回复 引用 查看   
#34楼 2011-10-05 13:12 nothing better      
引用Aicken(李鸣):
.Net是从桌面起家的?.Net发布之时只是包含了桌面开发平台,但不仅限于桌面开发,而且现在主流的桌面程序哪有DotNet的?

AS 3.0不知现在有没有封装之类的了,我玩那会是没有,智能提示基本忽略,一个脚本动画很吃CPU,转成线性的才能流畅播放。

现在主流的桌面程序没有DotNet这个确实是,但你忽略了一个问题,当win7作为主流操作系统的时候dotnet自然就成了主流的桌面程序了。你觉得xp还能抗多长时间??微软一旦停止xp补丁服务哪个企业还继续敢用xp??第三方提供的补丁你敢打嘛?win7当家那一天肯定会到来,到那时dotnet也就自然成了桌面应用开发的首选!

 回复 引用 查看   
#35楼 2011-10-05 13:42 通用权限组件源码      
支持铁哥.
 回复 引用 查看   
#36楼 2011-10-05 14:11 Mainz      
Let's see....
 回复 引用 查看   
#37楼 2011-10-05 15:55 家猫47      
我虽然是.net阵营的。但是flash仍然是当下的首选。

游戏这块更是难以撼动。。。SL在企业应用与wp7.xbox360会有一块天地的。

 回复 引用 查看   
#38楼 2011-10-05 16:01 zhmkof      
虽然我是实打实的AS3开发者,我也很坚定地用AS3开发各平台的应用,但是,不可否认的是,目前AIR的情况还没有LZ说的那么乐观,并且在移动平台上的境地是非常尴尬的。
 回复 引用 查看   
#39楼 2011-10-05 16:33 Jeffrey Zhao      
在不同的移动设备上,UI肯定都该是不一样的,怎么公用啊?
 回复 引用 查看   
#40楼[楼主] 2011-10-05 16:43 xiaotie      
@Jeffrey Zhao
UI都是Sprite或MovieClip,不考虑操作习惯的话,没什么不同: http://bbs.9ria.com/thread-98797-1-1.html

 回复 引用 查看   
#41楼 2011-10-05 16:57 Jeffrey Zhao      
@xiaotie
我当然就是指不同设备的操作习惯应该是不同的,否则要做到UI一致太简单了。不同设备UI一致这就是很多人不买账的地方。

 回复 引用 查看   
#42楼[楼主] 2011-10-05 17:03 xiaotie      
@zhmkof
AIR2.6比较鸡肋,2.7起性能上中小型应用够了,3.0可以调用native api了

 回复 引用 查看   
#43楼[楼主] 2011-10-05 17:29 xiaotie      
@Jeffrey Zhao
这个因应用而异,就我做的应用类型来说,电子书没差异,大头贴啥的没有差异,化妆的要改一下,Web版设计的太挤了,不利于触摸屏,核心控件不用动。要把能按的地方扩大几号。当然,我这都是针对平板电脑的。针对手机的话,UI变动比较大,在控件级还是可以实现很大程度的公用的。

 回复 引用 查看   
#44楼[楼主] 2011-10-05 17:42 xiaotie      
@Jeffrey Zhao
如果不用AIR的话,我要让程序支持Android 手机、Android 平板、iphone、ipad、web、桌面,那会是多大的工作量啊。每个平台都是大量的用户,未来还要考虑winphone。用的话,至少 web、桌面、Android平板、ipad共用一套(需要修改一个控件,那个控件不利于触摸屏操作),手机的话需要修改大概20个控件。如果真像上面某位说的那样,对Android写一套,这一套还得两套UI,一个针对手机,一个针对平板;对ios写一套,这个又得两套UI,一个针对手机,一个针对平板,Web一套,桌面一套,winphone起来了,又得两套……

 回复 引用 查看   
#45楼 2011-10-05 17:49 asboy      
我还是很看好FLASH,最近发布的Flash Player11 增3D加速,支持FLASH 3D的东西逐渐增多。Epic CEO Tim Sweeney今日(2011-10-5)在Adobe MAX 2011大会震撼宣布虚幻3引擎将支持Flash Player 11。为演示如何运作,他以《虚幻竞技场3》作为Demo,在Adobe的最新Flash版本运行这款游戏。

再有之前的 unity 3d 也支持导出为FLASH。 个人认为如果即将出场的WIN8,如果表象良好,或许FLASH 也会受益,对Android和IOS造成一定的影响(主要是移动平台和平板电脑上,MS之前一直不给力,也许忙XBOX了吧),即使HTML5存在,FLASH也会一直存在和发展(当然ADBOE不放弃),至少天朝是这样,如IE6 ^_^ 。

相关连接:
在这里,你可以阅读在Epic Games的网站公布。
Epic Games Announces Unreal Engine 3 Support for Adobe Flash Player:
http://adf.ly/821527/banner/www.unrealengine.com/news/epic_games_announces_unreal_engine_3_support_for_adobe_flash_player/

 回复 引用 查看   
#46楼 2011-10-05 17:57 Jeffrey Zhao      
@xiaotie
两套AI?AI是指什么?

 回复 引用 查看   
#47楼[楼主] 2011-10-05 17:59 xiaotie      
@Jeffrey Zhao
写错了,UI

 回复 引用 查看   
#48楼 2011-10-05 18:06 Jeffrey Zhao      
@xiaotie
如果你能接受每个设备都用类似的UI,自然这是个不错的选择了。

 回复 引用 查看   
#49楼[楼主] 2011-10-05 18:26 xiaotie      
@Jeffrey Zhao
可以看作是两套UI,小屏幕一套UI,大屏幕一套UI,阅读类应用,文本型应用,小游戏,图像类应用这样做没有问题。如果用Flex的话,有强悍的Style机制,UI变化只修改css就可以满足大部分需求。不过用Flex会增加程序尺寸及降低性能,我用的是自己的一套,采用数据绑定来定制UI。

 回复 引用 查看   
#50楼 2011-10-05 18:39 Jeffrey Zhao      
@xiaotie
我还是觉得交互方式每个设备都不同,比如你说iPhone用户看到Windows Phone界面可以吗?你可以说可以,可以说没问题,这个就是个人判断了。我觉得还是不行的。

 回复 引用 查看   
#51楼[楼主] 2011-10-05 19:06 xiaotie      
@Jeffrey Zhao
win phone Adobe还没给出这方面的解决方案,只是说有这方面的计划。 其它类型的不清楚,我的无非就是显示区,左侧(和/或右侧,和或下侧)是操作区,界面自己绘制,请美工做的漂漂亮亮的。还是看应用类型,做pdf阅读器之类的肯定不合适,做游戏,动画,图形应用,菜谱,楼书,展示演示,杂志,这些没问题,已经很大的覆盖面了。如果有其他的UI需求,这不还有style机制嘛……有style的话,大部分ui都能实现……不但能实现,在项目之间还可以共用,共享……复制个css文件就可以了。到时候win phone/win 8下的版本出来了,如果UI相差过大的话,估计有人会写一套style,拿过来直接用就行了。自己写也不费事。

 回复 引用 查看   
#52楼 2011-10-05 19:35 Jeffrey Zhao      
@xiaotie
我只是打个比方,因为Windows Phone和iPhone的区别很大很明显,比如Metro和全景视图的操作方式,完全跟iPhone的Navigator,Tab的方式不一样,不光是看上去,连操作也不同,所以我比较难以想象能通过一个Style解决问题。

当然如果你不用平台标准的方式,自然就可以用一个东西来通杀的。

 回复 引用 查看   
#53楼[楼主] 2011-10-05 20:23 xiaotie      
@Jeffrey Zhao
要做到Metro效果比较容易,前提是用自己的控件(主要就是layout逻辑,缓动、特效等flash从动画时代就很强悍),然后数据绑定一下就可以了。用官方控件有许多限制,除非官方提供解决方案。flash是基于位图、矢量、帧的,因此各种各样的界面都能实现,性能基本能保证,mxml+数据绑定很灵活,写界面工作效率高,不能说通杀,但是对中小型应用是杀器级别的。

 回复 引用 查看   
#54楼 2011-10-05 21:15 Jeffrey Zhao      
@xiaotie
你没懂我的意思。要做到Metro当然容易了,我说的是用一套UI代码(套用不用style)同时做到iPhone和Metro/全景的样子。

 回复 引用 查看   
#55楼[楼主] 2011-10-05 21:30 xiaotie      
@Jeffrey Zhao
自己写一个容器控件,实现多种layout就行了。无非使用时,指定不同的layout。

 回复 引用 查看   
#56楼[楼主] 2011-10-05 21:49 xiaotie      
@Jeffrey Zhao
Metro铺开放,iPhone叠着放。设一个数据源,每个数据源有一个头部,一个内容,然后数据绑定时,当layout采用iphone风格时,将不同的数据源的头部排开,然后内容叠在一起,Metro把头部和内容组合在一起进行layout,然后监听事件,针对不同的layout采用不同的切换方式就行了,iphone就直接隐藏其它层,显示要显示的层,而metro呢就直接来个缓动动画。挺简单的呢,二百行代码可以搞定。真正实现起来可能比这个复杂,但移动平台界面再复杂也复杂不到哪里去。

 回复 引用 查看   
#57楼 2011-10-05 21:59 sweetwxh      
我主要是做.NET的,但是在RIA上,还是选择了Flash。估计也是因为以前有Flash游戏开发的基础,不过说真的,就目前而言,Flash的优势较SL更为明显。
另外,M$的Metro Style App比较给力,布局支持HTML、XAML,开发语言支持JS、C#、VB,而且开发起来感觉也很有意思,用HTML的话,你会觉得是在做Web应用程序,用C#的话,会感觉是在做SL。
最后,就是我个人认为Win8应该会比Win7更成功,用了1个多月的WDP版了,感觉各个方面都比Win7好,资源占用更低,资源管理方面也更强,而且也没有出现过稳定性的问题。反正SL的定位很难明确了。

 回复 引用 查看   
#58楼 2011-10-05 22:04 Jeffrey Zhao      
@xiaotie
没看到实例之前还是难以相信,主要是两者的交互和操作方式是不同的,不单是说一个数据如何呈现成一个界面。

 回复 引用 查看   
#59楼[楼主] 2011-10-05 22:15 xiaotie      
@Jeffrey Zhao
flash还不能到winphone上跑呢,等官方后续版本。

 回复 引用 查看   
#60楼 2011-10-06 00:43 火地晋      
非常讨厌flash的右键菜单
 回复 引用 查看   
#61楼 2011-10-06 00:49 YaoTong      
Mark
 回复 引用 查看   
#62楼 2011-10-06 01:07 darklx      
@goding
周大SB你都不知道?就是搞360的那个SB!
博主的文章很好,但是我看到这个周X,就想骂之,勿怪!

 回复 引用 查看   
#63楼 2011-10-06 01:10 darklx      
@羽之
HTML5普及相当迅速!当然,除了IE浏览器用户。

 回复 引用 查看   
#64楼 2011-10-06 01:17 darklx      
引用羽之:
(b)就算Silverlight占有率是99.5%,微软也得不到什么好处,反而需要花费巨大的推广费用,这个应该是最主要的原因。除非微软能够把每台机器上的Flash 给卸载掉,那个时候才能从Silverlight获得巨大利益。能做到这一点的,只有我们天朝的周大先生,微软没有这样的人物,a8m也不会让他这样干。

这段有点意思?为什么占有率99.5%还得不到好处啊?

微软可以把flash给卸掉,只要收购adobe就行了,反过来你让adobe收购微软看看?

a8m为什么不让微软这么干,只要微软能出钱并支持a8m连任就行了。

一切是利益使然,微软有最大的利益化能力,而adobe没有。微软...

人才!哈哈。

 回复 引用 查看   
#65楼 2011-10-06 20:19 kenyfun      
不了解就不要说话,更不要充专家,SL本来就是跨平台的.SL的失败在于发展太晚,失去的市场,并是不是SL不能垮平台.连这都不知道..悲剧....
请大家真正的了解清楚一样东西以后再说。FL再以后几年里还是有发光发热的余地,至于它在移动平台上的表现,那还得看各家移动设备的系统提供商的支持情况。毕竟以后的世界是一个移动计算的世界.移动平台上能否有所作为,将会直接影响到一个产品今后的发展,所以FL不断的提高性能,希望移动平台来采用。大家也不要争,现在的比赛是FL和HTML5之间的比赛,在通用性上HTML5占了先天的优势,但是在效率上FL要比HTML5 Canvas的效率要高,所以不要说这个要死,那个要活,各取所需。一个技术存在,总有它存在的价值。

 回复 引用 查看   
#66楼[楼主] 2011-10-06 22:05 xiaotie      
@kenyfun
仔细通读全文,我说过silverlight不能跨平台吗?

 回复 引用 查看   
#67楼[楼主] 2011-10-06 22:13 xiaotie      
@kenyfun
关于sl跨平台我就说了一句:“微软是绝对不会放纵Silverlight跨这么多平台的”。以微软的财力和技术力量,Silverlight程序->ios原生程序轻而易举。这样做对微软一点好处都没有,反而促进apple产品销售。如果你是微软的老大,你会批准这类项目吗?

 回复 引用 查看   
#68楼 2011-10-07 12:44 傻瓜力量大      
楼主是跑博客园来攻击silverlight
 回复 引用 查看   
#69楼 2011-10-07 12:53 傻瓜力量大      
其实这就是一个口水文章 哈哈哈
 回复 引用 查看   
#70楼 2011-10-07 14:00 火禾      
不敢苟同……
 回复 引用 查看   
#71楼 2011-10-08 08:15 kenyfun      
@xiaotie
微软怎么就没有放纵SL跨平台了?“以微软的财力和技术力量,Silverlight程序->ios原生程序轻而易举”这就更可笑了,那你问问android的程序为什么不能直接转换成SL程序呢??

 回复 引用 查看   
#72楼 2011-10-08 09:09 zhmkof      
@xiaotie
AS3和JAVA所擅长的领域根本就没有交集,怎么比较?你说比JAVA强多,那你用AS3写个SERVER看看。

 回复 引用 查看   
#73楼 2011-10-08 10:49 Junfeng Liu      
分析比较在理,不看好javascript+WebGL,HTML需要一种新的编程语言,据说Google正在开发Dart语言
 回复 引用 查看   
#74楼 2011-10-08 11:26 eflay      
flash 11有3D游戏引擎虚幻引擎了。。。就像是给flash游戏打了兴奋剂一样,SL和HTML5还没有吧
 回复 引用 查看   
#75楼[楼主] 2011-10-08 12:11 xiaotie      
@kenyfun
只要微软想做,Silverlight程序可以轻易转换成Android程序或ios程序,这个Flash这边已经实现了(当然,Android下没转换,Android可以直接跑虚拟机)。

 回复 引用 查看   
#76楼[楼主] 2011-10-08 12:12 xiaotie      
@zhmkof
说的是语言又不是平台。as3写起来比java写起来爽,生产力高。

 回复 引用 查看   
#77楼 2011-10-08 13:08 zhmkof      
@xiaotie
写得爽不爽是主观感受吧,至于生产力,我觉得两者没啥区别。我是写AS3的,也是写JAVA的,AS3精通点。

 回复 引用 查看   
#78楼 2011-10-08 13:10 zhmkof      
@xiaotie
不是说以前的版本怎样,现在的版本怎样,是说AIR的装机量、用户知名度、市场影响力,目前来说都尴尬。

 回复 引用 查看   
#79楼[楼主] 2011-10-08 13:19 xiaotie      
@zhmkof
直接打包的话装机量无所谓了。爽是我主要写界面的,mxml+数据绑定用的爽。

 回复 引用 查看   
#80楼 2011-10-09 11:31 羽之      
写个软件,还要搞java和as3两个语言。学习成本就高了。

在UI方面flex是的他的优势,但是在其他的方面的劣势使他很难有再大的发展了。

 回复 引用 查看   
#81楼 2011-10-10 10:04 boypig      
@goding
360的头儿 即 国内某安全卫士头

 回复 引用 查看   
#82楼 2011-10-10 10:20 Gu      
SlideShare从Flash迁移到HTML5
http://www.infoq.com/cn/news/2011/10/slideshare-html5

这个怎么看...

 回复 引用 查看   
#83楼[楼主] 2011-10-10 13:16 xiaotie      
@Gu
目前还不具备实用性。非移动设备中Html5的渗透率不如Flash没必要Flash->Html5,移动设备中移动浏览器的Canvas没硬件加速,性能很差,移植过去,略微复杂的都跑不动,带缩放的卡的要死。

 回复 引用 查看   
#84楼 2011-10-12 14:23 ocean      
SL不能跨平台这个显然有问题啊,微软官方首先就支持Windows和Mac两种最主要的操作系统,同时第三方mono支持linux上运行SL。
微软扩大了SL的范围,比如扩展到winphone上。
其实我的观点和楼主相反,无论是flash的功能,开发效率,adobe的资本,都无法和MS抗衡,没法和SL相比。
SL和微软后端的集成可以快速提升开发效率,如果我后端用了WCF,或者我写了一个Data Service,或者我要用来访问一下SharePoint数据,这些在SL里面都有现成的调用方式,用flash不累死你。
所以flash在web上做做动画,做做广告还蛮不错,你说扩展到企业里面去做RIA应用,和SL相比实在差太远了。

 回复 引用 查看   
#85楼 2011-10-12 14:27 ocean      
HTML5现在标准还没定下来,才是个草案,然后各家浏览器就开始支持了,等到正式发布之后,你会发现各家的浏览器肯定都支持了一些标准之外的特性,肯定又有了一大堆符合不同草案的html5的网页,情况和html4一样,最终又会陷入混乱的情况。真正要统一,只有先定下正式标准,然后各家厂商再出支持的浏览器,现在翻过来做的结果最终将重现html4的窘境。据说html5的标准还要10年左右才能正式确定下来。
 回复 引用 查看   
#86楼 2012-01-31 18:46 AlfredLee      
多说无益,官方停止维护更新FLASH是最有力的证明。HTML5得到的将是未来。虽然没统一。最开始JS 一样没统一。规范就再那里。不是你说了算。主要的:技术这东西不是天朝能限制的,只能是有点顾忌,微软的强制更新浏览器就是例子。决定权在老外手里。没自主生产力以后连说话的余地都会丢失。
 回复 引用 查看   
#87楼[楼主] 2012-02-01 14:28 xiaotie      
@AlfredLee
停止更新的是Flash Player移动平台的插件,不是Flash。Flash的外延比Flash Player大得多。在移动平台上有三个Flash的运行环境,一个是AIR本地应用,这个不但没放弃,反而增强了很多,版本一个接一个在更新;一个是浏览器上的插件环境,这个停止更新了;一个是基于Html5的Flash运行时,这个主要是开源社区在搞,Adobe也在搞,也有类似的产品,不过我没用过,不做评价。开源社区的版本,在ios4下性能很懒,ios5下没测试过,估计简单的应用性能还行。