关于Flex:毁了Flash的,或许就是Flex。

Flash Platform | 2010年08月21日 上午 1:37 | RSS 2.0

以下内容仅为个人观点,欢迎讨论,谢绝谩骂。

说起来,小东应当算是比较特别的一个Flash开发者,至少目前还是。

第一,我不用靠Flash开发吃饭,但又足够热爱Flash,这使我可以跳出“生活所迫”的无奈境地来看整件事情;

第二,我从不靠Flex开发,因为我不大喜欢这项技术。

今天想说的是Flex,也可能用“骂”更恰当,因为我认为这项技术阻碍了Flash未来的发展,而我本身是十分热爱Flash技术的。

事情的一开始,无论是Macromedia还是Adobe,都对ActionScript、对FlashPlayer的效率过于自信了。

就在这样的盲目自信下,Flex勉为其难的诞生了,目的在于拉近Flash与传统程序员的距离,却逐渐让Flash技术偏离了其原本的轨道。

最开始的Flash,是设计师的工具,用来实现更独特、更新颖的互联网交互体验。而我认为,RIA一词,也正是为向着这个目标更进一步而提出的。可悲的是,现在很多人一提到RIA开发,就将其与Flex联系起来,事实上,Flex技术与RIA的精髓是背道而驰的。

首先,RIA的全称是Rich Internet Application,简体中文译名是富网络应用程序,这其中的精髓就在于“富”字。此富非彼富,富的是交互体验,而非文件体积。可惜Flex的代码体积较大,影响网络传播时的加载速度(当然,RSL的应用使得这一问题得到了一定程度上的解决),框架庞大,影响运行时的效率(虽说做了这样那样的优化,渲染效率上已能说得过去,但内存的占用却还是硬伤)。

在客户端呈现时有这么多的问题,如果在开发时能够节省时间,充分表达设计者的意图,也是可以容忍的。可惜Flex为了讨好传统开发者,过于强调界面和代码的分离,偏偏很多有趣的交互体验往往是代码与界面结合,原本一个时间轴动画能实现的效果现在却要上百行代码代替,这样等比折算,也难怪写代码没有做动画赚钱了。

圈中牛人很多,按照对传统程序员能力的评定,我能够上牛人行列的尾巴就已经算攀高了。但有些心里话还是不得不说:

首先,现阶段的Flex技术90%没有用,照顾了传统程序员的胃口却无法满足用户的胃口,这样的技术,只能外表光鲜的稍微降低一下我国待就业大学生数量。

为什么Flex没有用?因为体验与桌面端没有任何改变,CheckBox、RadioBox、PushButton、ScrollBar、DataGird,苹果iOS展示给世人多种新的交互方式,简洁有效,我们的网络应用、桌面应用却还局限在这些上个世纪的交互产物。好吧,你会说用户已经习惯了,不愿意改变自己的操作习惯,如果世人真如我们所想的这般专一,这个世界就太无趣了。用户不愿意改变操作习惯,只能说明两点:一、你的产品没有足够的吸引力;二、新的操作方式太过蹩脚。

举例来说,盛大网络做的三国杀Online,不知道是哪位高手开发的,在功能上甚至比客户端版还先进,当时看到时实在是眼前一亮,立马添加到收藏夹,心说以后再也不用开VMWare上XP玩三国杀了,可惜试了三台Mac,只有在i7的MacBookPro上跑得还算理想,其他两台配置也还不低的Mac上往往从出牌阶段直接卡到弃牌阶段。几次不愉快之后,为了不再增加逃跑率,我只得继续选择开虚拟机玩三国杀这条累死累活的不归路。总听有人说Mac上的FlashPlayer效率不理想,是的,我也这么认为,可如果玩个卡牌游戏还要“卡”,那岂不真是特别的不理想了?

有人会辩护,说可以使用ActionScript自己为Flex的交互体验润色。我只能回答说:那太可怕了,就好比要我给斑马刷上豹纹一样可怕。对于侧重交互的应用,对Flex框架进行改造还不如自己写来得快。

所以我对牛人们所挂在嘴边的架构很不感冒,虽然自己写代码时也会与大家讨论架构,但第一位总归应是运算性能和显示效果,毕竟再漂亮的骷髅也只是个白骨精。这样想想,我不再关注Flash圈的那几年,一方面是因为忙其他事情,另一方面就是因为论坛中关于pureMVC、Flex框架等问题的讨论越来越多,让我着实头疼。

这两年情况看起来是好转了,自打网页游戏火了以后,不少公司和个人意识到Flex框架的效率无法满足网页游戏的需要,选择了自行开发UI框架、自行编写。可惜他们大多不是清楚了自己要做什么,只是做着做着发现Flex无法做到而已。

至于用Flex开发企业级应用这顶冠冕堂皇的高帽子,只能说不是完全没有市场。但应该不会对大型企业和小型企业的胃口,中型企业中也只有一部分能够消化。

苹果iOS是潜力无限的,因为他既能让创意人员发挥创意,又能让开发人员赚到钱,还能让用户享受到优质的软件。当然,或许未来的Android也可以做到。而Adobe Flash平台呢?创意人员为越来越讨好开发人员的创作工具(Flash IDE)所困扰,开发人员面对着老掉牙的传统控件和开发方式(Flash Builder),用户还要忍受运行效率等问题(Flash Player)。

Flash技术的本意在于充分发挥创意,呈现新交互体验,为用户带来乐趣,让用户享受使用应用的过程;而非处理复杂的表单、计算繁琐的数据等。所以在我看来,Flash技术无论是应用于网页端还是桌面端,其设计都会也都应更接近iOS/Android上的应用而非传统桌面应用。可惜的是,Flash应用无法像iOS/Android应用那样为个体或小型群体的开发者带来丰厚的利润(当然,个例不算),这般尴尬处境,归根结底在于其更偏向桌面应用的开发方式。

没错,就是Flex惹的祸,Flash的出身和定位决定了其编程方式的特殊性,即便是纯面向对象编程的方式,也不应过度的将代码与创造性的界面抽离(注:这里说的当然不是Flex那种纯代码生成的界面),这种做法在上Flash行不通。

可惜又可悲的是,很多Flash开发者(也包括曾经的我),总是在想尽办法说明Flash不只是做动画的工具,做的应用看起来也更像桌面应用,自己也不是个“臭做动画的”,而是个高尚的“程序员”。现在回想,不是很像某些高雅的“相声艺术家”得势之后的反三俗做法吗?无论是偏向动画,还是偏向程序,用户喜欢是第一位的,用户看三秒就关掉页面了,写个百万行的庞大架构又漂亮给谁看呢?

有人说,你这是在和Flash圈内牛人们唱反调。我倒想说,架构做的好、代码写的好的,不一定都是RIA方面的牛人,认为我上面这些话就算唱反调的,还一定不是RIA方面的牛人。中国写ActionScript写得不错的往少了说数以千计,但那只是写代码,很多公司一味的强调分工,使得一些代码好手成天守着个FlashBuilder和Flex框架,连RIA的概念都不曾理解,这不是莫大的悲哀吗?

记得五六年的Flash动画,小人跟着Loading的进度条跑,那时的新鲜感和兴奋感,再难寻觅了。

记得Adobe和Apple刚出纷争时,作为Apple&Adobe双料忠实用户的我说:“我爱Flash,我怕他完了,可谁爱我呢?”

放眼这个时代的互联网,当中国都有新浪、腾讯、联通、虾米,CNTV、优酷等这么多大网站为iPad做了视频/音频的兼容,Flash又还能抵抗多久?当无数Flash小游戏作者发现自己的创意被人搬上AppStore赚得荷包满塞的时候,心中是否也会闪过一丝凄凉?

麻球要来占领面向个体开发者的这片高高在上的处女地,很多人仿佛看到了曙光,但既然是球,终究是滚着来的,如果没停好,还得滚开。

祝福吧,祝麻球能够创出惊人的业绩,为Flash开发者带来实实在在的福利,也为Flash应用的去Flex化多做一些贡献。或许有空的时候,我也会做一两个小游戏,上传上去,找一找当年的激情。

也请不要再问我喜不喜欢Flex,逼急了我就捅出那句黄教主的名言:

闹太套。

Tags: , ,

“关于Flex:毁了Flash的,或许就是Flex。” 目前有 22 条回应

  1. Raymond 说道:

    说起来,小东应当算是比较特别的一个Flash开发者,至少目前还是。

    第一,我不用靠Flash开发吃饭,但又足够热爱Flash,这使我可以跳出“生活所迫”的无奈境地来看整件事情;

    第二,我从不靠Flex开发,因为我不大喜欢这项技术。

    ———————————————————–
    跳出 生活所迫 不等于看法正确。。。同时,不要以为其他人说出观点的时候,都是 “生活所迫”

    2、从不靠FLEX开发,却自称为 开发者。我很佩服你说出来的勇气。
    我这个人,不太喜欢你这个人。。现在 我 告诉你,你是 一个 GAY。。你自己相信么???

    阿弥陀佛。。。这年头。。年轻人难道都这么勇敢。。

    • Swfdong 说道:

      您好,感谢您的回复,第一,我只是发表自己的观点,标题也写了,“或许就是Flex”;第二,我自称“Flash开发者”,与我不靠Flex来开发并不矛盾。另外附加一点,我理解您在反驳我时的心情,但我更希望看到针对的是正文内容的意见,而不是只在前面的两句话上做文章。

  2. Gofield 说道:

    不小心搜到了这个帖子 不小心点进来看了 于是我不得不有心的挖坟
    不明白楼主都写了些什么?flex和flash有冲突么?出了flex禁止你用flash了吗?底层不都是as吗?flex不是给了之前非flash领域的程序员一个层面吗?不是让他们能从这个层面进入flash开发吗?flex不是一个更高的层面吗?这个层面不是让大型应用更有效率的开发了吗?难………….还有很多反问,懒得写了

  3. Cary 说道:

    非常赞同楼主观点,双手双脚赞成

  4. kakac 说道:

    三国杀作者大概玩的是测试版,是出了错误才卡住的,并不是性能问题,之前我也遇到过。可以去玩一下现在的版本,已经很流畅了。

  5. lymeng 说道:

    作为一个从java走向前端开发的程序员…
    不可否认,现在的前端开发里面
    充斥着从C#,java,php转过来的半专业前端开发人员
    而adobe为了吸引开发人员的进入,做出了很多设计上的牺牲!
    站在flash设计人员的角度讲,确实这个并不是好消息
    但是作为一个程序员而言,ActionScript的出台让我们程序员
    能够更多的参与到前端设计中去,如果单从最终的目的和效果来说
    这个对于市场,对于所有开发者,以及对于所有用户来说
    也并非不是一个好消息!

    对于Flex,我很认可楼主对他的评价,它给人的感觉就像一个
    强扭的瓜。好在,现在的国内市场已经能够鉴别出Flex的优劣
    Flex已经开始走下神坛了,这样也让我可以不去纠结一个问题:
    使用Flex开发,我究竟是设计师还是程序员….

    另外,支持一下蛋疼喵咪,因为我既是程序员也懂美术。
    也支持一下 闪侠,因为我也有同样的疑惑,adobe的商业运作啊…
    须知,首先得专精才能横向扩张!

  6. jinwyp 说道:

    有点道理, 其实flex 这个东西本身就不是做游戏而是做网站的, 问题在于对界面开发非常不友好,很多概念 比如state 也是在尝试阶段, 结合flashbuilder和flash 一起用才是最好的. 但是flashbuilder还是比flash好用的,

    这里说一下flash最牛一点就是画出的图形可以作为一个类链接 在代码里面使用. 真的非常方便.

  7. flashyiyi 说道:

    FLEX枪毙了JavaFX和SL,这已经功不可没了。
    架构对于大型长期项目是非常重要的,并不能因为现在没有大型项目以及框架被大量错误使用就说架构无用。
    守旧派永远是声势巨大的。

    时间会证明一切。

    另外,Apple真的只是个礼花。

  8. 火龙 说道:

    博主确实实情出发分析的很好!我开始也是flash,后面跟着社会风气搞flex,flash builder仅仅起到编辑器作用,开发没有flash实用,而且开发速度总比过flash,flash很容易搞定的东西,flex一长串代码!有悖于企业开发要求的效果高,速度快!

  9. sliz 说道:

    不同意lz的观点。Adobe用flex吸引了,flash程序员开发桌面应用程序,功不可没。
    Adobe用2条腿共同走路,将来那个技术会发展的更好谁知到呢。至少怎么走都能走了。flex进军桌面市场,开发大型程序,还是不可或缺的。

  10. civet 说道:

    Flex根本一点都不flex 吐槽点太多

  11. noxss 说道:

    同感,很多时候当你写下你并不知道自己在干嘛。而且,FLEX的学习成本可一点也不低。

  12. gyye 说道:

    回忆 以前做flash 的感觉真是太棒了,可惜了

  13. Peter 说道:

    这篇文章非常棒!!里面很多观点都相当支持~~:)

  14. 蛋疼喵咪 说道:

    我觉得,Flex并不会毁掉Flash,而且还会对Flash起推动作用。

    第一,Flex第一次让程序员能站在比较专业的角度来开发Flash。回想以前在flashIDE里写东西,那般光景何等惨淡,从代码编辑器,到调试器,什么破玩意。而Flex,由于它是基于比较成熟的Eclipse,虽然与太阳系最强的IDE–VS还有一大段距离,但从编辑器到调试器,都比flashIDE专业很多。而且现在flashCS5和FB4已经无缝链接了,互相调用非常方便。

    第二,楼主提出的几个问题,其实很好解决。楼主觉得Flex工程编译的东西很大,其实楼主完全可以把Flex当做代码编辑器使用,然后用FlashIDE进行编译。其次,Flex的很多东西没用,但其他语言的IDE呢?其实都差不多。就拿VS来说,平时做开发,能用到它全部功能的几分之几?

    第三,效率问题,是多种因素产生的。主要的两个原因,其一是由于目前swf是解释型语言,其二是因为Adobe在flash这一块的工程师和程序员,还有很大的进步空间。

    第四,不要觉得做程序的没有创意不懂艺术。我认识的朋友里,不少学编程的还会搞3D设计以及音乐制作。反观那些纯粹的创意人员,其中一部分,天马星空的设想根本或很难实现,他们自己实现的东西,漏洞百出。另外,高度分工是成熟的工作流程的表现。它能让创意师只负责自己的创意,让程序员只负责去实现这些创意。如果程序写的好,但用户打开几秒后就关闭,只能说其中某些部门水平太低,比如说美术太差,或者创意太庸俗。但这并不代表分工不好。

    第五,flash游戏创意被抄袭,是环境问题。AppStore赚钱,还是环境问题。在中国,赚钱的游戏都是些什么?去年那么火的植物大战僵尸,在中国卖了几个钱?

    至于麻球网的发展,这个不好说。万一它本来赚不了钱,但被牛逼的营销团队成功搞火,或者反之,也说不定。在神奇的国度,一切皆有可能。

    • Swfdong 说道:

      您好,可能存在理解误差,我说的是Flex技术,也就是Flex Framework,而非编辑器,况且现在Flex Builder也改名叫Flash Builder了:-)

  15. libins 说道:

    说真的我对这个也深有感触,曾经也为了入流,学习了下flex,总感觉它会限制自己的发挥,怎么说呢? 因为我是从flash动画上一步步走过来的,之前是动画出身的,后来因为喜欢flash才转型做了程序员,flex开发效率是快,都是模快化的东西之间相互作用,但是和flash风靡时,体积小,传播快,创意无限,动画互动丰富的特点越来越远,虽然flex也能做到这个效果,但是毕竟还是有局限,给我的感觉就是被人掐着脖子跳舞,虽然能跳,但也累的够呛

  16. 闪侠 说道:

    同意楼主的观点。

    我从flash 5开始,经历到现在,感到flex的出现完全违背了macromedia的初衷。
    总所周知,flex尽管只是一个框架,但是Adobe的宣传是否就意味着做flash的就只是做动画的?很多人都这样认为。

    但是我要说不是,要知道,Flex只是基于 Flash API 的一个笨重的框架。
    如果Flash只是用来做动画的工具,请问今天的Flex框架何在?

    我不想解释得太多,flex给我的感觉就是一匹“披着羊皮的狼”,纯粹是搅局。
    另外不要提时间轴,Flex的时间轴有2帧,所以也是动画!

    我经历了 AS1->AS2->AS3的变迁,已经对Adobe的意图完全了解。
    Adobe这样做只是为了炒作,用 flex IDE去赚取更多的 IDE 的收益。
    Adobe希望靠 flash + flex + air 这种框架结构来占领整个地球的全部显示器,
    但是很遗憾,和 sun 一样,带来了一大堆杯具。(现在air占领了多少显示器?)

    我想说的是,有这么多时间,为什么不在 Flash Lite 的版本问题上多下点功夫?
    为什么不做一个兼容 iphone 的 player?
    为什么不把 flash player 和 air 整合到一起?
    为什么不让 AS3 支持udp、多线程、实时3D?
    为什么不能去掉右键的一大堆菜单?
    为什么不能让 swf 无法反编译?
    ……

    太多的失望,太多的叹息,归结为一个字:“懒”,或者说是“贪”。
    Adobe 的商业运作模式让太多的人为之叹息,
    但又一直割舍不下Macromedia时代的产物,在叹息中挣扎。

    我想,这应该是任何一个从Macromedia时代走过来的 ASer 的共同感受。
    我们都在期望Adobe能做得更好,但是事实是,Adobe的商业模式运作得更好了。。
    今天在此发帖,也宣泄一下内心的抑郁,准备晚点贴到博客里。
    欢迎同行者帮顶,谢…

    闪侠’s blog :
    http://hi.baidu.com/online_design

  17. 看来你不喜欢那种套路的 呵呵!

  18. lightoy 说道:

    哦,楼主淡定,虽然我很倾向于使用Flash IDE可以在创意和新的体验方面有更多的表现,但是FLex在比如游戏和其他工具的开发方面也还是有其实用价值的,另外回楼上即便在Flash IDE下我还是觉得应该弱化时间轴的概念,如果能用程序实现的动画效果则可以大大增加交互体验的空间。
    ps:闹太套杀伤力(强化+10)。

  19. photoqiu 说道:

    很同意作者的观点。非常欣赏。FVM其实是个软肋。呵呵,做程序无非就是空间换时间。时间换空间。在漂亮的构架也不能解决一切。关键在于…。(自己去理解)。

  20. Mutoo 说道:

    我就呐闷这些框架啊什么的,把时间轴丢到哪里去了%_%

留下回复