阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

Flash 与 Flex 路在何方?

  • 2011-09-12
  • 本文字数:4499 字

    阅读完需:约 15 分钟

Adobe 想要强化 Flash 与 Flex 在企业,特别是在移动领域中的地位。但最近的一项调研表明 jQuery 已经超越了 Flash,成为前 17,000 个网站首选的 Web 部署解决方案。

近日,来自 Adobe Systems 开发工具事业部的产品经理 Andrew Shorten 在 Adobe 的官方博客上发表了一篇博文,谈到了 Flash 与 Flex 的当前状态,并就 Adobe 的旗舰平台给出了自己的一些看法。Shorten 承认虽然 Flash 曾是跨平台 Web 开发的唯一解决方案,但现在 HTML5 的发展势头越来越好,也表现出了极强的吸引力:

过去有无数的例子表明 Flex 是富用户体验的唯一解决方案。但现在,很多应用已经开始使用 HTML5 相关的技术并通过浏览器交付。在 Adobe,我们也向设计者与开发者提供工具来实现这些体验——Edge 与 Muse 就是佐证。

就 HTML5 以及相关的工具(Edge 与 Muse)来说,Shorten 认为 HTML5 并不是“万灵丹”,企业出于”性能、框架成熟度以及健壮的工具“等原因仍会选择使用 Flex。Shorten 继续谈到了 Flex 与 Flash 的主要发展方向,即面向企业与移动,特别是后者。他承诺 Flash 与 Flex 会成为企业业务应用的运行时与开发环境:

我们将会继续加大对 Flex 在企业级应用中的投资力度,确保开发者可以交付富于表现力、健壮的应用。由于我们会提供未来发布版本的更详尽的信息,因此大家将会看到我们的承诺来解决很多领域的问题,如 Spark 组件的实现、可访问性、构建系统集成、性能分析工具以及下一代编译器的集成,这些举措会保证 Flex 成为企业级 RIA 应用的首选。

关于移动开发的未来,Shorten 提到:

我们将会继续关注运行时性能、原生扩展、新的组件、声明式皮肤等,并添加更多的平台以及改进工具工作流,这样在下一个主版本发布之际,我们期望大多数应用都可以使用 Flex 进行开发,而完全的原生应用的需求则会降到最低点。

Shorten 对此并未透露太多,只是说在 10 月 1 日至 4 日于洛杉矶举办的 Adobe MAX 大会上对此将会有详尽的介绍。

我不清楚 Shorten 为何会发表这样一篇关于 Flash 与 Flex 路线图的博文,不过这可能与前一天 appendTo, LLC 发布的关于全球前 17,000 个站点的分析报告有关,这个报告的结果可以概括为:在全球的流行站点中,jQuery 已经超越了Flash。appendTo 是个提供基于HTML5 与jQuery 咨询、培训与开发的公司。根据报告所述,全世界流行站点中的48% 已经在使用jQuery 进行部署,47% 则使用Flash。该分析基于 HTTP Archive 所提供的数据,后者则是一个搜集 Internet 数据的组织。appendTo 的 CEO 及联合创建者 Mike Hostetler 说到:

这些数据表明了这两年的一个发展趋势。越来越多的网站开发者选择了 jQuery 与 JavaScript 而非 Flash,而这种转换速度则有愈演愈烈之势。

作为曾经的网站之王,Flash 已经开始不断失守,其地盘不断被 HTML5 与 JavaScript 等 Web 技术所蚕食。这个势头还会继续下去么?众多公司是会因为成熟度的原因继续选择 Flex 还是会等待 HTML5 工具成熟起来呢?HTML5 是否会统治 Web 开发呢?只有时间能告诉我们答案,但现在我们可以根据已有的经验猜测一二。

此文一经发布,即在 InfoQ 英文站引来了众多读者的回应,现摘录几篇评论以飨各位:

读者 Dean Schulze 说到:

Adobe 对 Flex 的处理方式非常差劲。他们到现在为止也没有提供具备商业质量的 Eclipse 插件来帮助开发者构建 Flex 应用。哦,他们对插件收费,但这个插件却是 Eclipse 世界中最差劲的商业插件了。 Adobe 花了好多年才发布新版本的 Flex。

由于 Adobe 的质量一直以来都不咋样,因此除非 Adobe 的文化发生了变化,否则就别指望 Flex 能有啥出息了。

现在 HTML5 标准尚未最终确定,但 HTML5 却已经超越了 Flex,从这个事实就能看出 Adobe 对 Flex 的管理方式有多差劲了。

读者 Clinton Begin 说到:

Flex 已经玩完了。主要原因是它几乎没能提供什么东西,用户体验也变得越来越糟。如果说 Flex 对于开发者来说还不错的话,那么对于用户来说就太差劲了。此外,Adobe 把 Flex 4 搞砸了,Flex 3.5 要更简单,更整洁一些。主要原因在于他们之间的互操作实在是太可怕了,Spark 并没有完全取代 Halo。恶心啊,恶心。我真后悔在两个重要项目中使用了 Flex。Flex 完蛋了。 Flash 的未来要更加光明,Adobe 可以通过多种手段保持 Flash 的统治地位。即便人们讨厌 player 插件,但 Adobe 可以通过 JavaScript 对 VM 进行移植(有一些开发者可以证实这一概念),他们也可以在编译器级别上解决这一问题,将 AS3 和 FLA 文件编译为原生的 JavaScript(其他一些平台已经做到了这一点)。即便他们依旧采用插件方式,他们也依旧可以统治 Web,因为微软、Google 和 Mozilla 与 Adobe 之间保持了良好的关系。

然而,Flash 的使用场景将会发生变化。也许优秀的 Flash 开发者会承认很多站点都在滥用 Flash(请看看那些汽车制造商的网站吧)。在现在这个年头,网站和广告条不应该再使用 Flash 了。或许过去这么干是必要的,但现在早已物是人非了。对了,还有视频。只要浏览器能好好地播放,我才不在乎是 Flash,还是 H.264,或是 Ogg 呢。作为最终用户,我不管那么多。

到现在为止,Flash 最擅长的领域还是游戏和其他交互式媒体等领域。Flash Player、框架、库、AS3 语言和工具大大超出了 HTML5 所能提供的,他们之间有至少 10 年的差距。你试着在各种浏览器和设备上使用 HTML5 来播放音频,看看结果如何。

你可以通过比 JavaScript 更好的语言和一些基于矢量的创建工具实现这种效果,然后将其编译为 JavaScript 与 HTML5 Canvas,但 Adobe 在这方面领先很多,至少有 10 年的优势——更不必说了解这些工具的开发者与设计师的网络效应了。Adobe 所需的就是全新的编译器或是 VM(抑或两者兼而有之)。其他人则要从头开始。

因此我的设想是:Flash 将会越来越好,或许使用不同的运行时。Flex 将会死掉。HTML5 将会统治除了游戏之外的其他领域。移动将会依赖于原生代码以谋求最佳的体验(Java 之于 Android,Objective-C 之于 iOS)。

此外,像 Unity 之类的工具 / 框架是非常有趣的,但最终他们将会变成像 Flash 一样的插件或是像 Java 一样的跨平台语言(下面是 Mono)。因此他们还需要不断努力才行。

读者 Andreas Tasoulas 说到:

能够指出 Flex 与 Flash 之间的差别,这很好。我完全同意你关于 Flex 与 Flash 未来的观点。然而,文章中将 Flex 与 Flash 的处境混为一谈的做法是有误导嫌疑的,做调研的公司说 jQuery 超越了 Flash 是有些偏颇的(用他们自己的话来说就是他们是关于 jQuery 的培训、咨询公司),这影响到了最后的结果。

读者 Alex TicToC 说到:

Web 上使用的 jQuery 比 Flash/Flex 多根本不是什么事儿,要是事实不是这样我反而觉得不正常呢。Flash/Flex 不应该用于显示基本信息或是作为大多数简单网站的技术选型,甚至是电商网站。那些饭店的网站使用了 Flash,最后只不过是显示菜单,然后通过 PDF 下载,这正是对 Flash 的滥用。 HTML5/JS 是个可怕的技术,它可以用于交付企业应用。目前,大多数网站都不是”企业应用“,这个结果不错。语言、工具、浏览器差异性与怪癖、编写程序 /OOP 的开发者之间的层次(Google 可能没有这个问题)都是前进路上的障碍。现在总有人通过一些手段来提供一些工具:我看到在线版的纯 JS PhotoShop,还不赖。但这并不能说明什么。一群聪明的家伙可以创造出很不错的技术(我想到了 PHP)。我还看到有人使用汇编编写出了非常棒的游戏,很有表现力,但这并不是说汇编就是游戏开发的技术选型。

现在说 Flex 已死还为时尚早,但我自己也想过 Flex 的未来,几乎每天都想。

如果你想要开发一个富客户端、跨浏览器 /OS 的应用,那么 Flex 依旧是正确的选择,虽说要付出更多的努力(需要 Flex 专家)。

Flex 有很多问题,有很多遗留下来的代码,堆砌的特性、糟糕的设计决策、甚至有时代码质量也很差(我就见过太多了)。但一言以蔽之,Flex 是个框架,它以性能为代价提供了很多特性(你不能去掉大多数特性),除非你是个性能专家,并且洞察 Flex 的原理,在这种情况下才会保证性能。如果你在配置不错的桌面机上运行 Flex 还好。毋庸置疑,Flex 在移动设备上的表现不尽如人意。

这几年来,Adobe 做过的最糟糕的决策就是重用现有的 Flex 代码基,然后对其进行一些调整就运行在移动设备上了。笨重的皮肤架构、样式系统对 CPU 的消耗、优化失效 / 验证代码(意指空转运行,因为 SDK 开发者有时会调用 invalidate(),并不是所有新特性都会用上)在移动设备上的表现并不好。另一方面,纯 Flash 应用则在移动设备上运转良好!这只不过是膨胀的 Flex/AIR SDK 导致的性能问题。Flash Player 变得越来越好,这都要归功于如 Thibault Imbert 之类的富有激情的人们。AS3 语言则有一些提升。另外,Flex SDK 变得越来越臃肿,其架构也没有什么变化(我上一次听说 Flex 5 将会对框架进行彻底的整理。在 2011/2012 之际,你可以期望 Flex SDK 将会演变为基于插件的平台,而不是像意大利面条一样,充满了大量的单例、静态、过程式代码,这些东西都是 6 年的老古董了)。

在查看 Flex SDK 的代码时,我常常觉得这是一个基于社区的项目而不是一个真正成熟的面向企业的产品;有几个 Flex 的领导 / 架构师是非常不错的,但大多数都不咋地。对基本的 OO 原则的违背比比皆是,有时都达到了无法接受的程度(复杂的类继承中,父类竟然完成了子类该做的具体事情)。即便是一些基本的概念,如私有方法的代码行数不要超过 500 行这种事情也会经常遇到。

千万别让我用 Flash Builder。

虽然有这么多问题,但实际上 Adobe 并没有真正的对手,我想这种情况会使得 Flex 成为赢家。

读者 Russell Leggett 说到:

我觉得”现在“这个词儿是很适合的,这取决于开发者的受众,但确实没有太多的时间了。我曾使用 Flex 开发过一个大型的贷款发放系统,但 4 年前我们却转向了 html/js,因为我们觉得采用 html/js 能够更简洁地实现我们的目标(当然了,还有其他一些原因)。我们之所以这么做是因为我曾经写过框架的重要代码。我们所实现的感觉并不好,但实际效果还不错,这个经验告诉我们可以通过 html/css/js 实现与 Flex 一样的应用。 我们现在使用了声明式 UI 和数据绑定,就像 MXML 一样(甚至比它更好),可以通过 JSON、REST 和代码生成实现与 Java 后端的无缝集成。它拥有一个相当强大的构建系统,可以完成依赖分析,并能自动创建延迟加载代码模块,这样就可以将成千上万行 JavaScript 代码划分到多个文件中,并且根据需要进行加载。在开发过程中,我可以在页面刷新时快速重新编译客户端代码。

UI 与 html/css/js 一样灵活,并且现有的第三方组件可以轻松集成进来,同时能够很轻松地编写自定义组件来得到框架数据绑定的优势。

虽然我所开发的框架没法展示出来,但我看到社区中很多人已经开始采取类似的方式开发框架了。有些框架非常轻量级,如 backbone.js,有些则稍微重量级一些,如 Sproutcore。虽说工具、文档及解决方案并不一定适合于企业业务,但浏览器与语言却没问题。我们只需从背后的公司获得一些反馈即可,如微软,它正在大力推进 HTML5。甚至连 Adobe 都开发出了 HTML5 工具。

查看英文原文: What is the Future of Flash and Flex?

2011-09-12 09:235008
用户头像

发布了 88 篇内容, 共 258.4 次阅读, 收获喜欢 8 次。

关注

评论

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

【开源】低代码引擎 TinyEngine 源码正式开放啦!!!

OpenTiny社区

开源 前端 低代码

深度学习之“线下标注”

矩视智能

深度学习 机器视觉

英特尔研究院副总裁、英特尔中国研究院院长宋继强:英特尔技术为全行业带来卓越贡献

E科讯

RTC才是物联网企业的杀手锏!

X2Rtc

音视频 物联网 IoT RTC

【架构篇】Supabase的Postgrest组件架构介绍

张文平

数据库 postgresql 缓存 多表联查 Postgrest

OWASP Top 10漏洞解析(1)- A1:Broken Access Control 访问控制失效

华为云PaaS服务小智

云计算 华为云 漏洞分析

1024程序员节之天马低代码开发者大赛篇

Openlab_cosmoplat

低代码 1024程序员节

聊聊复杂网络环境下hdfs的BlockMissingException异常|参数dfs.client.use.datanode.hostname

明哥的IT随笔

hdfs TCP/IP

探索全球 AI 产品市场:50 个国内外导航网站助力推广

出海的猹

AI 导航网站 出海

开始报名!龙蜥社区走进 Arm MeetUp 议程硬核剧透来了

OpenAnolis小助手

开源 操作系统 arm Meetup 龙蜥社区

流量治理的基石——基于字节码增强的全链路流量标签透传

华为云开源

微服务 微服务架构 字节码

一站式运营营销平台

Quincy

运营 用户增长技术 营销数字化 用户留存 `后端

开放原子开源大赛 | Pika赛题正式启动,诚邀报名!

开放原子开源基金会

Java虚拟线程简介

FunTester

Vue3中的Ref与Reactive:深入理解响应式编程

互联网工科生

前端框架 Vue 3

大厂旗下的APP们成为自研大模型的“磨刀石”|TE洞察

TE智库

人工智能 BAT 大模型

代理价格监控和分布式价格监控有什么不同点?

巨量HTTP

http代理 分布式代理

真香!为什么设计行业流行部署云桌面?

青椒云云电脑

云桌面

你眼中的程序员 vs 程序员眼中的自己,是时候打破刻板印象了丨KubeCon 主题活动

阿里巴巴云原生

阿里云 容器 云原生 AIGC

中国首个接入大模型的Linux操作系统;ChatGPT支持图片和语音输入;抖音上线方言自动翻译功能丨RTE开发者日报 Vol.57

声网

2024成都电子展|成都国际电子信息展览会

AIOTE智博会

电子信息展 成都电子展 电子信息博览会

【聚梦想 创非凡】2023荣耀开发者沙龙 ● 广州站 精彩回顾

荣耀开发者服务平台

互联网 用户增长 云服务 生态合作 行业经验

混合项目管理:您需要知道的一切,从定义到实践

PingCode

项目管理 看板 敏捷管理 混合项目管理

[Go 夜读 第 148 期] Excelize 构建 WebAssembly 版本跨语言支持实践

xuri

开源 Excel webassembly Go 语言 Excelize

未来PC将是云电脑? 算力优势成为关键

青椒云云电脑

云电脑

被卷到“准下岗”,这九种编程语言要消失了!

这我可不懂

Python 编程语言

C4D在影视动画制作中的局限性

Finovy Cloud

C4D

bsc链一键发币平台哪个好?PandaTool最受欢迎

加密先生

2023英特尔on技术创新大会:英特尔研究院展示多项技术“魔法”

E科讯

Flash与Flex路在何方?_Java_Abel Avram_InfoQ精选文章