一位名叫mabrams_us 的网友在flexcoders的mailinglist中征求大家对使用flex的意见(why one should invest in learning Flex as a career move opposed to focusing on other technologies.)
于是有两位网友作了精彩回答,我认为比较经典,现在摘出来给大家分享。
------------------------------------------------------------------------------------
boy_trike :
let me give you some of the reasons why I have decided to embrace FLEX as our featured
development tool (notice I did not say RIA tool, but development tool.) I have been
building custom data-centric solutions for about a zillion years (ok, over 30 anyway) and
always am on the lookout for a new and better tool. My friends call me "database of the
month club" since I keep trying, switching, switching back from all of the latest and
greatest solutions. (Tried AJAX, but did not find the right toolset yet.). The reasons are:

FLEX FEATURES
Flex's main advantage is the agility it adds to building a rich user interface with database
connectivity.

  • Performance is very good

  • Can use external style sheets
    o Allows a graphic artist to work on the UI
    o Easy customization

  • Any object can move, be resized, skinned, wiped
    o Better use of screen real-estate
    o Can eliminate overlapping windows
    o Users attention can be focused / directed

  • Screen Independent - Run Anywhere
    o PC
    o Web
    o Phone???

  • Open / extensible
    o Expect library of components to be released
    o Can connect to other server objects
    o Can connect to Web services
    o Eclipse IDE is open and expandable

  • Adobe / Macromedia
    o Support / Training
    o Inexpensive Toolkit
    o Free Runtime

    Good luck with whatever you decide to embrace, but DO embrace it. (as someone once
    asked me, how can a computer programmer drive a Porsche? I said its easy, just be the
    best at something!

    Bruce
    ---------------------------------------------------------------------------------------------------------
    Grant Davies :
    I've done user interfaces in C, C++, C#, Pascal, Java (its its 20 million gui frameworks), .NET, VB etc.. etc..

    I started programming GUI's in flash about 3 or 4 years ago, and still doing my backend development in java, .net or php. Flash gives me the user experience I'm after, the rich, cool looking user interface that allows me to create on line applications, instead of websites that are inferior to desktop apps when built in html.

    AJAX is lipstick on the pig, its still ugly as hell under the covers, hard to debug and doesn't run consistently across browsers. I personally dislike it with a vengeance, updating div tags on the fly is once of the lamest solutions to a rich UI I've ever seen.

    Flex is flash with a strong architecture, a stronger language (as3), a traditional programming environment (similar to jsp or asp.net development) and a very rich suite of controls, its aimed at programmers and its easier to learn than the flash IDE since is similar to other language development environments.

    for graphics heavy apps I'll probably still use flash, for online data centric applications I'll use flex, and use flash for the fancier components that need fancy graphics or effects. I personally can't wait for the flex component explosion that happened to VB and will happen to flex..

    Flex will reduce my flash development cycle for real applications by about 30% since I won't have to keep building all my own components.

    Cheers,
    Grant
  • 评论
    hax 2007-08-08
    xiaoyu 写道
    对于楼上的回答. 我只想问, 你测试过多少种浏览器? 有没有在不同的平台下测试各种浏览器(例如:在linux下测试Firefox, MAC OS下测试IE, FIREFOX, SAFARI等).
    喔. 我喜欢的是纯HTML + CSS, 好优雅喔(就算不支持CSS, 也不会什么都不显示, 就算TMD不支持HTML, 还是知道原来程序是有反应的(有返回结果)).


    支持所有浏览器是不现实的。用flex(flash)也做不到。

    通常的策略是有一个baseline。比如flex的baseline其实就是安装有flash的现代浏览器。而ajax的baseline至少是IE6,FF2,而更多的就要付出更多的成本。

    我自己现在做ajax的支持目标(测试环境)按照重要程度排列是以下:
    IE 7 (Windows Vista)
    IE 6 (Windows XP SP2)
    FF 2 (Windows)
    Safari 3 (Windows)
    Opera 9 (Windows)
    FF 1.5 (Fedora Core 6)
    Konqueror 3.5 (Linux)

    这是我认为对90%的项目来说合理的baseline。而且如果这些都测试通过了,其他浏览器环境出问题的几率其实还是很小的。

    对于一些特殊项目来说可能要考虑IE5.5或其他浏览器,无论如何我个人是不会考虑IE5.0和Mac IE的,要兼容这两者,付出的代价太大(除非有人愿意花这个成本)。

    不过Browser有个特点,就是仅仅html也行。如果在设计时有一个basic的基于html的版本(比如gmail的basic版本),那很可能最古老或者罕见的浏览器也能运行。
    bsmg 2007-08-07

    bsmg 2007-08-07
    1.整个应用体积大,载入慢。一个AJAX页面若不用大图片,带上JS、CSS都只有20k30k的样子,而一个FLEX生成的FLASH APP至少要100k。

    2.UI响应速度慢。虽说adobe在推出flash9后,优化了ActionScript的执行效能。个人感觉,全FLEX的界面停顿感要比用JS实现同样的界面效果的停顿感明显多。这是AS的问题,期待FLASH10能达到现在浏览器处理JS的速度。

    3.开发还不容易。没有MVC框架,没有单元测试,极少第三方包,没有好的开发社区。
    习惯了JAVA社区饭来张口的开发方式,在FLEX更多要自己做,自己从头来。
    比如自定义组件的国际化就需要自己动手从头写,没有同步的URL调用要自己从socket写起。
    最简单例子是,里面的内置的日期选择控件非常漂亮好用,但只有英文版本,现实的是MAY,SUNDAY。
    若是在JAVA社区,这些常见的问题早就有大牛提供了NICE的方案。
    ================================
    第一点,使用共享库,每个页面不是非常复杂的,也可以到几十k的
    第二点,我还没有觉得非常慢,除非你使用太多的效果
    第三点,mvc模式有啊,cairngorm,riawave不都是应用的非常多多flex多mvc模式吗?第三方的支持也不少啊,日期控件,楼上说的两行代码改中文的确是这样啊,而且改一下,到处用,多方便,呵呵,松散耦合设计方式,挺好,

    做技术嘛,不要太偏见。不熟之前就不用太妄加评论,我就不熟悉ajax,我就不评论,只是觉得js比较罗嗦,呵呵,不想用而已
    bsmg 2007-08-07
    呼呼,哪样赚钱用哪样,
    heimu 2007-01-25
    bsd无法用flash确实是很讨厌的事,以前还有些古董级的plugin,后来因为licence问题连这些都灭了...
    jfy3d 2007-01-25
    flash 里的东西大多是矢量图 体积小 但对CPU占用多点

    脚本写的不合里 很影响运行
    whisper 2007-01-24
    flash很好不?
    同样的flv能够支持不同版本的flash player不?
    flash9的内存泄露会不造成浏览器崩溃不?
    混蛋的adobe会让BSD合法的用flash不?
    能让文字浏览器也看不?

    至少js没有2 4的问题,DOM泄露也好说
    treenode 2007-01-24
    澄清几个问题:
    1、Flex不是没有单元测试,而是至少有两个(ASUnit和FlexUnit)。唯一的问题是它们还没有集成到IDE里面;
    2、Flex是MVC的。因为Flex基本上是一个客户端的解决方案,所以它的MVC结构和Web MVC的做法有很大差别。不要用后者的标准来衡量前者。
    3、日期控件默认的确是英文的,但只要两行代码就可以换成中文。Flex开发人员考虑已经很周到了,根本不是什么非要大牛才能来解决的问题。

    Flex生成文件比较大的确是个问题。不过为了公平起见,也应该注意到如下的事实:Flex通常能在一个Application里面完成三四个Web页面才能做完的工作。三四个HTML包括js/css加起来一般也会有100多k吧?
    当然,我也希望Adobe尽可能再多做一些大小优化的工作,不然在低带宽下的确体验不够好。
    knight 2007-01-24
    flybart 写道
    FLEX与AJAX比较起来优点的确是非常明显,上面的评论也很中肯。
    BUT
    FLEX缺点同样明显
    1.整个应用体积大,载入慢。一个AJAX页面若不用大图片,带上JS、CSS都只有20k30k的样子,而一个FLEX生成的FLASH APP至少要100k。

    2.UI响应速度慢。虽说adobe在推出flash9后,优化了ActionScript的执行效能。个人感觉,全FLEX的界面停顿感要比用JS实现同样的界面效果的停顿感明显多。这是AS的问题,期待FLASH10能达到现在浏览器处理JS的速度。

    3.开发还不容易。没有MVC框架,没有单元测试,极少第三方包,没有好的开发社区。
    习惯了JAVA社区饭来张口的开发方式,在FLEX更多要自己做,自己从头来。
    比如自定义组件的国际化就需要自己动手从头写,没有同步的URL调用要自己从socket写起。
    最简单例子是,里面的内置的日期选择控件非常漂亮好用,但只有英文版本,现实的是MAY,SUNDAY。
    若是在JAVA社区,这些常见的问题早就有大牛提供了NICE的方案。


    瑕不掩瑜,FLEX是非常非常好的东西,UI的表现力强大,内置的库一般情况也够用,调试方便,各浏览器表现一致。单从能力上来将是内网应用的第一选择。但没有社区支持(没有优秀框架,没有第三方包),AS效率一般,注定了开发FLEX是一件吃力的事情。


    的确是的,只能说需要什么,我们就用什么
    技术并没有什么好坏而言

    2007 年会关注FLEX
    lwz7512 2007-01-23
    flex1.5的高价格给它带来了坏名声,如果早期在2003或者2004推广得当,采取现在的开源策略,也就不至于现在这么让人这么抵触了。
    而且flex的编程模型和理念(用户体验)在当时来看确实超前了,而ajax更符合广大开发者的胃口,更加容易接受,最主要的是ajax的框架、类库是开源的,这符合大背景,这是它流行的主要原因。
    不过相信flex的印象在今年会有很大改观,看看国外的状况就知道了,有越来越多的大企业开始采用这项技术,招聘flex开发者的岗位也越来越多,相信国内也离这种局面不远了。
    netfishx 2007-01-22
    坦白说,我对flex的改观正是基于as3的改进。于此同时,flex的开发还是很方便的。不过flex社区还是不如ajax社区活跃,有点像.net社区对java社区的感觉。
    lwz7512 2007-01-22
    前面说的基本同意,但是这句:
    "但没有社区支持(没有优秀框架,没有第三方包),AS效率一般,注定了开发FLEX是一件吃力的事情。"
    想说明一下:
    flex的开发社区很庞大,看看http://www.flex.org/,http://www.onflex.org/ted/,Flexcoders们每天上百的邮件,看看adobe那些flex evangelist的博客们,就知道它们是多么热衷于flex了。
    此外,flashplayer9采用新的AVM2,以一个"Just In Time"“JIT”编译器,来翻译actionscript字节码成本地机器码,从而获得最大的执行速度,其速度是AVM1的十倍以上(其运行速度据说达到C的运行速度)。

    如果你看到的flash应用相应慢,只能说其代码写的有问题,或者不是as3。

    至于开发吃力,也不能成立,flex开发有flexbuilder2,flashdevelop,flexible等所见即所得工具,而且有代码自动完成功能,非常好用。
    flybart 2007-01-22
    xiaoyu 写道
    如果硬要AJAX和FLEX比的话, 不用说AJAX败得一踏湖涂:
    1. 代码难读(为了兼容往往写一些不知道是什么鬼东西, 而且还兼容不到一些);
    2. 容易被禁止(现在动不动游览器就禁止, 因为鬼知道它会不会是病毒呀);
    3. 不同游览器的效果可能会不一样(当然这不怪它, 这是游览器的问题);
    4. 最后一点就是不跨游览器(太垃圾了, 现在好久没有上那些只支持IE的网站了, 见到转身就跑).

    FLEX就不一样了: 有好的调试工具, 跨平台性往往不用我们去想, ADOBE这些专业的公司会去搞定的了. 主流的游览器都支持(比AJAX的支持率要高多了).

    有人会说, FLEX的内容不可搜索? 这个缺点好严重. 多想想, 如果AJAX用二制进数据通信的话, 一样是没有可搜索性, 用XML的话, 这是因为XML的特性,而不是AJAX.




    FLEX与AJAX比较起来优点的确是非常明显,上面的评论也很中肯。
    BUT
    FLEX缺点同样明显
    1.整个应用体积大,载入慢。一个AJAX页面若不用大图片,带上JS、CSS都只有20k30k的样子,而一个FLEX生成的FLASH APP至少要100k。

    2.UI响应速度慢。虽说adobe在推出flash9后,优化了ActionScript的执行效能。个人感觉,全FLEX的界面停顿感要比用JS实现同样的界面效果的停顿感明显多。这是AS的问题,期待FLASH10能达到现在浏览器处理JS的速度。

    3.开发还不容易。没有MVC框架,没有单元测试,极少第三方包,没有好的开发社区。
    习惯了JAVA社区饭来张口的开发方式,在FLEX更多要自己做,自己从头来。
    比如自定义组件的国际化就需要自己动手从头写,没有同步的URL调用要自己从socket写起。
    最简单例子是,里面的内置的日期选择控件非常漂亮好用,但只有英文版本,现实的是MAY,SUNDAY。
    若是在JAVA社区,这些常见的问题早就有大牛提供了NICE的方案。


    瑕不掩瑜,FLEX是非常非常好的东西,UI的表现力强大,内置的库一般情况也够用,调试方便,各浏览器表现一致。单从能力上来将是内网应用的第一选择。但没有社区支持(没有优秀框架,没有第三方包),AS效率一般,注定了开发FLEX是一件吃力的事情。
    lordhong 2007-01-22
    还是flex好
    charon 2007-01-19
    我最烦企业门户页面上的flash了。我这儿几百台电脑,2/3不允许上外网,但大多数安装过flash插件。
    后来,门户改版,首页上面做了一个大而炫的flash(老大们选定的),包括导航链接都是在flash里面。
    但就出现了n多问题,一个是有些老点的机器上去,感觉都快死了一样。另一个是,这个flash需要最新的插件板本才能运作正常,否则能够播放,但不能导航, 然后,多数机器上不了外网,只能手工复制安装。
    这个维护成本太高了。还不如直接做个client端呢,现在都支持自动从服务器升级。
    lwz7512 2007-01-19
    目前在公网上跑的门户应用还不多,因为flex应用在传输速度上的确受到文件尺寸和客户端性能的限制;但是,在企业内部,以flash为平台的应用已经开始崭露头角,并逐渐蚕食ajax份额。
    可以预见,在不远的将来,flex应用将会以apollo为运行平台,大展身手。
    采用flex技术的视频共享网站BrightCore,已经融得5千多万的风投($59.5 million in a Series C round) ,如果没有一个坚实的技术平台作为后盾,这种成功根本不可能。
    这里做了详细报道:
    这个是brightcore获得风投的官方申明.
    raptor 2007-01-19
    flex没用过,倒是看过朋友发过来的几个国外用flex作的网站,还跟我说什么是下一代网站的开发标准,哈哈,挺搞笑,楼上的竟然有人说flex的兼容性比AJAX好,难道不知道显示flash是需要下载插件的吗,哪天台湾多震几次,包你网站玩完,哪天我编一客户端让你们都安上,肯定和我都兼容,不要再用兼容性攻击AJAX了,作为门户网站,速度是首要因素,用户关心的是页面的显示速度,并不是华而不实的界面,特别是企业用户,对页面的显示速度有近乎于苛刻的时间限制,flex在这方面就没有任何优势,我并没有攻击flex的意思,但他似乎比较适合那种喜欢玩炫的人们.
    edge_hh 2007-01-19
    winfx完美
    adablue77 2007-01-18
    随便说一句,我的firefox没装Flash插件 呵呵
    netfishx 2007-01-17
    JavaVision 写道
    dennis_zane 写道
    IE会禁止某些JS,难道用户就不会禁止flash吗?firefox可以安装no script,难道用户不能禁止安装Flash插件吗?这样的假设很没意义。测试各种浏览器?说句不厚道的,你真的有这么认真考虑过支持所有的浏览器吗?

    您这就是抬杠。
    ajax就是n多tricky,好不容易做出点花哨效果,开心死了,


    人家哪里抬杠了?你硬要禁了script说ajax适用范围小,同样的假设用到flex上也很合理啊。

    btw:敬LS,鬼王永远不死!!!
    lwz7512
    搜索本博客
    最近加入圈子
    存档
    最新评论