写点什么

HTML5 VS. Flash&Flex? – 浅谈 Flash/Flex/HTML 5 技术选型

  • 2012-08-14
  • 本文字数:2476 字

    阅读完需:约 8 分钟

在 HTML5 发布以前,RIA 领域的技术解决方案一直相都是各展所长,并无争议。Adobe 体系中,Flash 无法胜任的事情,Flex 可以完成,反之亦然;.Net 系决策者在选用 RIA 解决方案时,Silverlight 是不二之选。

曾经我对 Flex 的迷恋到了欲罢不能的地步,与我有相同想法的人亦不在少数,Flex 也大有“一统江湖”的趋势。然而,随着 HTML 5 横空出世,Flex“易主”,Silverlight 被“雪藏”,RIA 领域的技术解决方案开始变得扑朔迷离。

HTML 5 无疑是“明日之星”,苹果公司前 CEO 乔布斯对它赞赏有加,绝大多数智能手机浏览器均支持 HTML 5,基于 HTML 5 的网站也如雨后春笋般出现。这些似乎预示着 HTML 5 时代来临,人们试图让决策者相信,Flash/Flex 时代已经过去了,HTML 5 才是 RIA 领域的最佳解决方案。然而,事实果真如此吗? 我曾经见过一个项目,原计划使用 Flex 做为前端解决方案,由于当时 HTML 5“盛行”,最终决策者决定弃用 Flex 而转投 HTML 5。 接下来会发生什么呢?

  • 由于 HTML 5 的浏览器兼容性问题,导致需求设计阶段的很多功能都需要推倒重做。
  • 在实现过程中,不仅要写 HTML 5 标签,还要写 CSS 与 JavaScript,对于项目来说,增加了人员构成,项目的开发成本也随之增加。
  • HTML 项目可以方便获取源码,因此需要增强保密性及安全性设计。
  • 在插件的编写、框架的选择上,其难度也要远远大于 Flex。

从上述情况可见,HTML 5 也存在劣势,并不完美。同样,我也可以列举出诸多例子来体现 HTML 5 的优势。那么,“真相”到底是什么?

真相只有一个:

HTML 5 与 Flex 是两种截然不同的技术解决方案。HTML 5 的出现让 Flex 更加专注某些方向和领域。所以,它们是互补的,而非替代。因此,“替代”一说并不准确。

虽然,上述例子只是小概率事件。但概率小,不代表不发生,不代表不典型。所以,在这里我想跟大家谈一下 Flash、Flex、HTML 5 的技术选型。

首先明确一个观点:技术选型没有既定的规律可循,它是由诸多因素决定的,例如:开发人员的技术知识结构是否胜任、项目的开发成本、开发人员构成、项目的开发周期、项目的属性等等。

但是,我们仍可以从这些技术的特点出发,辨别你的应用程序适合采用哪种方案!

Flash 的特点:

  • 优势:

    • 借助时间线(Time Line)和 Action Script 3.0 可以方便地制作出任意效果动画。
    • 完备的开发工具。(Flash Pro CS 系列开发工具)
    • 完备的工作流。(Adobe CS 系列全线工具均可以导入到 Flash 并可二次编辑)
  • 劣势:

    • Flash Player 不支持 iOS。
    • Flash Player 不支持 Android 4.1+。(Android 4.0 以下系统均可支持)

Flex 的特点:

  • 优势:
    • 完备的、可以媲美 C/S 架构(桌面软件)的大量控件支持。
    • 与 Flash 及 Adobe CS 系列全线工具的完美结合。
    • 完整的企业化开发流程及工作流(代码的编写、编译、调试、发布等)
    • 多种框架可供选择,并支持高级特性,如:IoC、视图绑定、数据绑定实时更新等。
  • 劣势:
    • 生成的 SWF 过大。(虽有完善的“瘦身”方案,但仍比 HTML 方案大很多)
    • 效率问题。(在某些情景下,比 HTML 5 的效率要差一些)
    • 较差的图文混排支持。(无法媲美 HTML 5 的图文混排,这是 Flash 系的通病)
    • 储备人员相对 HTML 来说还是太少。

HTML 5 的特点:

  • 优势:
    • 完备的技术人员储备。(前端开发人员的数量完全可以跟 Java、.Net 程序员媲美)
    • 借助 HTML 5 的诸多新特性,在某些层面完全可以取代 Flash 技术。(Flash 属于 Plug-in 方式,而 HTML 则是浏览器原生支持)
    • 不逊色于 Flex 的大量控件。(Bootstrap、基于 jQuery 的控件比比皆是)
    • 真正意义上全平台支持。
    • 借助 Node.js 可以胜任后台(前 / 后台通吃);借助 Coffee Script,可以媲美 Ruby/Python 的语法糖衣。
    • 比 Flex 拥有更大、更全面、更活跃的社区。
  • 劣势:
    • 作为企业开发,不具有媲美 Flex 的工作流及开发流程。
    • 作为游戏开发,在支持 3D 及运行效率方面,不如 Flash Stage3D。
    • 编写 HTML 5 的应用程序,很大程度上还要编写 CSS 与 JavaScript,对初学者来说,学习曲线较 Flex 高一些。
    • HTML 5 依然存在浏览器兼容问题。(随着 W3C 与 WHATWG 的分裂,估计这种情况会被进一步加深)
    • 在大型 HTML 5 的项目中,Flex 遇到的问题在 HTML 5 中依然存在(例如:效率问题),在此基础上还增加了浏览器兼容性、Ajax 跨域通讯等新问题。

下面的表格,描述了这三者在一些关键点的比较:(图 1)

下图使用区分法,来辨别应用程序的技术选项方案:(图 2)

下面的表格从“项目属性”角度来比较这三者之间的优劣性:(图 3)

总结:

  • Flash:
    • 适合强交互、强效果、少数据展示、少图文混排、偏展示 / 工具属性的应用程序。例如:Flash 交互广告展示、页游(Flash Game)等。
  • Flex:
    • 适合较强交互、适当效果、多数据展示、少图文混排、偏工具属性的应用程序。例如:图片在线修改、企业内部系统、ERP 系统、金融系统等。
  • HTML 5:
    • 适合较强交互、适当效果、多数据展示、多图文混排、偏应用属性的应用程序。例如:Google 系网站、各种传统意义的网站、SNS 系网站等。

注 1:上文提到的 Flash 是指使用 Flash Pro CS 工具(IDE)生成的 SWF,而非 Flash Platform。

注 2:Flash Player 不支持 IOS 以及 Android 4.1+ 系统。在 2012 年 8 月 15 日,Adobe 将 Flash Player 从 Google Play 下架,并不在对其进行更新,但 Adobe 仍使用 AIR 的方式对智能系统进行 Flash 应用 / 游戏的支持。

注 3:虽然 Adobe 提供了 FTE(Flash Text Engine)与 TLF(Text Layout Framework)用于图文混排,但是由于其开发的难度比较大,所以并不完全适合企业开发。

关于作者

王磊 | Kenshin (kenshin.wangl@gmail.com), Adobe Flex 专家、国内第一本 Flex 图书《Flex 第一步》作者、05 年开始 Flex 至今,是国内第一批从事 Flex 的开发人员,曾任某公司前端技术总监,目前从事 Flex 顾问、咨询、架构、高端培训等相关工作。 新浪微博: http://weibo.com/23784148 , Flex 博客: http://www.k-zone.cn/zblog


感谢黄玲艳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-08-14 00:0012070

评论

发布
暂无评论
发现更多内容

未来智安入选FreeBuf《CCSIP 2022中国网络安全行业全景册(第五版)》

未来智安XDR SEC

国有企业财务数智化转型实践,用友BIP一路随行

用友BIP

财务数智化

ios开发者账号到期了如何续费(详细步骤)

雪奈椰子

iOS上架App Store详解(图文)

雪奈椰子

海泰方圆又双叒叕连获两项隐私计算专利

电子信息发烧客

测试人社区——软件测试技术沙龙分享

测试人

人工智能 软件测试 精准测试 工程效能 ChatGPT

什么是智慧公厕?智慧公厕存在的意义!

光明源智慧厕所

智慧城市

从“可用”到“好用” 京东云构建融合开放适配国产化应用的全栈产品矩阵

京东科技开发者

国产化 京东云 国产化替代 京东云峰会

前端有边界,但低代码没有

引迈信息

前端 后端 低代码 ChatGPT

五大方面多管齐下,用友助力企业建设世界一流司库体系

用友BIP

以“业财合一”构建业务财务体系,让财务更在行,让业务会经营

用友BIP

GitHub 润色框架,让你的GitHub不再索然无味

做梦都在改BUG

GitHub

全网超火Blender零基础教程!从零上手的免费3D软件

Finovy Cloud

blender 3D软件

企业支出如何一眼看全局,用友BIP很在行

用友BIP

商旅费控

Application Loader及Transporter App上传ipa外、可以在Windows上架iOS APP工具

雪奈椰子

ios打包

Kubernetes玄幻问题一览

陆云

#Kubernetes#

《中国奇谭》打动万千观众,一首歌道尽现代人心酸

HIFIVE音加加

音乐 音乐播放

CDN省钱大法!华为云开年采购季低价购,CDN0.03元/GB起,短信0.006元/条起

科技怪授

CDN 华为云

焱融为国家电网打造存算一体的融合基础架构 助推能源行业新基建

焱融科技

文件存储 容器存储 分布式文件存储 高性能存储 国家电网

“AI 上运动,直播更精彩” 百度智能云联手 Pixellot 创新中国大众体育传播新模式

Baidu AICLOUD

视频云 云导播

Copilot 用“粉紫色磨砂UI”和“啊啊啊BGM ”,梦境了这届网友

B Impact

AGI时代即将降临,现代化产业建设的出路又在何处?

加入高科技仿生人

低代码 AGI 现代化产业

华为工单宝——为企业客户提供更强大的数字化现场作业解决方案

科技怪授

CDN 华为云

强大的录屏:Camtasia 2022 汉化激活版

真大的脸盆

Mac 软件 屏幕录制 录屏软件 录屏工具

华为云视频直播,流量大放“价”,超好用!

科技怪授

面试官:String字符串的最大长度是多少?

做梦都在改BUG

Java

阿里表哥甩我一份Redis笔记,看完还进不了阿里让我卖豆腐去

做梦都在改BUG

Java 数据库 nosql redis 缓存

这是我见过最好的JVM笔记,拿到阿里offer后我哭了

做梦都在改BUG

Java JVM 虚拟机 垃圾回收

常用MQTT客户端库简介

EMQ映云科技

物联网 IoT mqtt 客户端 企业号 3 月 PK 榜

如何通过Java更改Word中的页面大小和页面方向

在下毛毛雨

Java word 页面布局

强!阿里P9限时开源的实战笔记:SpringBoot2精髓

做梦都在改BUG

Java 面试 微服务 Spring Boot 框架

HTML5 VS. Flash&Flex? – 浅谈Flash/Flex/HTML 5技术选型_HTML5_王磊_InfoQ精选文章