是什么让 Adobe Flex 更“容易被接受”? 比它的前辈?
过去 10 年我一直在构建企业软件。 这一次,我们看到企业应用程序从客户端服务器转移到瘦客户端。 我们还看到了向托管解决方案的转变,尽管名称不多(asp、SaaS、云计算)。 对于所有这些变化,浮躁主要来自 IT 部门而不是最终用户。 在这些革命的第一轮中,以单点管理和减少桌面占用空间的名义降低了用户体验。
在此期间,我们进行了许多尝试,既要为用户提供丰富的体验,又要满足反复无常的 IT 部门的要求。 第一个是行业领导者 Microsoft 以 ActiveX 控件的形式推出的。 Sun 公司的人随后也效仿推出了 applet,以及最近的 java webstart。 所有这些解决方案似乎都能解决问题,但从未获得更严格的 IT 部门的广泛期望。
然后 Flex 从 Macromedia 出现了。 他们做了什么不同的事情? 它可持续吗? 微软对Silverlight的模拟是否证明他们已经改变了游戏规则? Web 编程会永远改变吗?
I have been building enterprise software for the last 10 years. In this time we have seen enterprise applications move from client server to thin clients. We have also seen the move to hosted solutions, albeit under a few names (asp, SaaS, cloud computing). With all these changes the impetuous has been mainly from driven from the IT department not the end user. In the first rounds of these revolutions the user experience was reduced in the name of single point of management and reduced desktop footprint.
During this time there have been many attempts to give the user a rich experience while still satisfying the crotchety IT department. The first was by the industry leader Microsoft in the form of the ActiveX control. The guys from Sun then followed suit with the applet and then more recently java webstart. All of these solutions seemed to scratch the itch but never gained wide expectance by the more stringent IT departments.
Then flex came on the scene from Macromedia. What did they do differently? Is it sustainable? Does Microsoft’s emulation with Silverlight prove they have changed the rules of the game? Will Web programming be changed forever?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Adobe 之所以成功,是因为几乎所有主要平台上主要浏览器的用户都已经安装了 Flex 所需的唯一运行时组件; 这是Flash播放器。 Flash 播放器已经证明它不是 Bad Stuff 的载体; 它在浏览器中自己的沙箱中运行,与硬件和操作系统隔离。 因此,没有安装新的(并且有潜在危险的)软件。
Flash 技术存在一个庞大的开发人员社区,Flash 中添加的一些新控件以及用于编写软件的 ActionScript 的成熟度,使其突破了作为 RUI 完全有用的门槛。
(Activex 是 Windows-0nly;java 中的任何东西都被认为是不稳定且过于沉重;而 java 还没有成功地普及,也可能永远不会这样做。所以两者通常都是通过法令安装的,尽管事实上 Adobe 可能是我们在生态系统中处理的未经请求的“更新检查程序”和其他近乎恶意软件的最具破坏性的来源。)
网络编程正在以这样或那样的方式永远改变; 用户将需要更好、更细粒度的 UI; 目前还没有完美的答案,但至少存在着人心的竞争。 我认为最令人鼓舞的迹象来自于 Microsoft 大力进军平台中立的东西,如 MVC、Iron Stuff 以及越来越无污染的浏览器代码流。
Adobe have succeeded because almost all users of the main browsers on the main platforms already have installed the only runtime component required for Flex; which is the Flash player. The Flash player has already demonstrated that it isn't a vector for Bad Stuff; it runs in its own sandbox in the browser, isolated from the hardware and the OS. So no new (and potentially dangerous) software is installed.
There exists a substantial developer community for Flash technology, and the addition of some new controls in Flash, and maturity in ActionScript for writing software, has tipped it over the threshold for being fully useful as a RUI.
(Activex is Windows-0nly; Anything in java is perceived as destabilizing and too heavy; and java hasn't managed to wangle its way into ubiquity, nor will it probably ever do so. So both generally get installed by edict, rather than user choice. This in spite of the fact that Adobe is probably the most disruptive source of unrequested "update-checkers" and other near-malware we deal with in our ecosystem.)
Microsoft started out with Silverlight pretty aggressively, requiring only the installation of the equivalent of the Flash runtime; but it's not ubiquitous even on Windows machines yet; penetration to other platforms is quite a way in the future; and MS hasn't proven to have the political smarts to appear harmless yet. But don't count it out. I think they've moved a step back by switching to .NET languages (with a limited CLR) for development; this seems to me to be the same strategy that has deoxygenated their WinCE strategy; but again we'll see. But at least they have made an obvious move away from language agnosticism to appearing to want to coerce developers into .NETland.
Web programming is changing forever one way or another; users will demand a better, more fine-grained UI; there's no perfect answer in sight yet, but at least there is competition for hearts and minds. I think the most encouraging signs come from Microsoft's strong move into platform-neutral stuff like MVC, Iron Stuff, and increasingly unpolluted code streams to the browser.
我对 Flex 成功的看法:
1- Adobe 在开源方面采取了正确的举措,不仅开放 AIR,而且现在还开放 Flex、Flash VM 和 PDF 标准。
2- Flex 丰富的 Flash 传统(它可以在任何支持 Flash 的浏览器上运行)意味着绝大多数浏览器已经支持它,并且不需要下载大型插件来访问它。
3- Adobe 拥抱了所有主要的服务器端技术并为它们提供了支持,以便 PHP. MS 或 Java 商店都会对使用 Adobe 的客户端技术感到满意。
以前,Flex 是闭源的、昂贵的,甚至依赖于服务器端安装,这削弱了它的影响力,尽管 Flash 客户端如此广泛可用。
My take on Flex's success:
1- Adobe made the right move in opensourcing not only AIR, but Flex, the Flash VM, and the PDF standard now as well.
2- Flex's rich Flash heritage (it runs on any Flash enabled browser) means that the vast majority of browsers already support it and do not need to download a large plugin to access it.
3- Adobe embraced all the major server-side technologies and provided support for them so that a PHP. MS, or Java shop would all feel comfortable using Adobe's client side technology.
Previously, Flex was closed-source, expensive, and even relied on a server-side installation, which negated it's reach even though the Flash client was so widely available.
Flash视频巩固了Flash的地位
95%以上的浏览器都可以播放
正在接触公众的
互联网。
设计与小部件和一个极其
设计良好的GUI SDK是一个主要的
Flash播放器的转折点。
Flex 2 和 Flashplayer 9 是
当这个的临界点
技术真的凝结了。 企业
开发人员开始迅速意识到
这项技术只是
做他们的正确方法
应用程序。 (2006 年在 JavaOne 上,
Adobe Flex 2 给人印象最深刻
和我看到的pivatol技术
那里。)
在网络中很好地运行 RIA GUI 的东西
浏览器沙箱设置 - Java
小程序需要完整的 JRE(大约
16MB)。 Flash 运行时非常长
更精简、更智能的设计
预期目的。 (太阳现在才
开始通过以下方式为 Java 解决这个问题
他们的 JavaFX 和重新设计的 JRE
可以下载几MB就够了
运行网络小程序。 他们没有
任何类似于 YouTube Flash 视频的内容
不过,驱动他们的安装。)
相比之下,经验非常丰富
编写老式网络
HTML/JavaScript AJAX 应用程序。 能
取得更多成就并拥有
更少的努力来完成这样的事情。
重要的部分,例如 BlazeDS
(现在他们正在与
SpringSource 制作 BlazeDS 和
Spring-Framework更流畅
一体化)。
单线程GUI组合
异步服务调用(或
消息传递)和 ActionScript3
闭包是很棒的编程模型:
Flex 异步 I /O 与 Java 和 C#
显式线程
属性的实现,
事件和数据绑定。
确实是一个更好的方法
描述一种形式(什么是
本质上是 MVC 中的视图
图案)。 它比
等效的命令式 ActionScript
可以完成相同任务的代码
的事情,从而更加清晰。 这
MXML的层次结构
脚本往往自然匹配得很好
到面板/小部件构造
意见也是如此。
模式可以实现
完全在客户端层。 网络
实现 MVC 的框架
中间层 - 与
表示层执行在
远程客户端层,是
根本上有缺陷的方法
MVC。 MVC 应该在正确的位置完成
直接面向用户的层。
(Adobe Flex 再次做了一些事情
架构上是正确的。)
被认为是普遍标准
互联网、Adobe Flash
玩家实际上是一个更普遍的
和一致的标准——跨越
不同的浏览器和操作
系统平台。 这
HTML/DOM/JavaScript 标准位于
现实是支离破碎的混乱
每天都变得更加支离破碎
谷歌和微软驱动不同
有关事项的指示
网页浏览器。 Adobe Flash 播放器结束
成为一场精彩的终结比赛
这种困境。 这是一个伟大的
的编程经验
编码员并具有足够的普遍性
对于商务套装。
主要平台 Windows、Mac OS
X 和 Linux。 他们支付特殊费用
关注Linux平台。
从长远来看,这将会带来回报
因为开发商已经在解决
在 Linux 上进行开发
来自,并且它被广泛用于
托管中间层的服务器。
Adobe 最新的 64 位 Flash 播放器
对于Linux来说简直就是一个奇迹。 他们
已经有 AIR 1.5 可用
Linux。 他们做得不错
有支持平台的
是开发商关心的。
Flash video entrenched the Flash
player into over 95% of the browsers
that are accessing the public
Internet.
design with widgets and an extremely
well designed GUI SDK was a major
turning point for the Flash player.
Flex 2 and Flashplayer 9 were the
tipping points of when this
technology really jelled. Enterprise
developers began to quickly realize
that this technology was just the
right approach for doing their
applications. (At JavaOne in 2006,
Adobe Flex 2 was the most impressive
and pivatol technology that I saw
there.)
stuff to run RIA GUI well in a web
browser sandbox setting - Java
applets required the full JRE (about
16 MB). The Flash runtime was a much
leaner and smarter design for its
intended purpose. (Sun has only now
begun to remedy this for Java via
their JavaFX and redesigned JRE that
can download a few MB as sufficient
to run a web applet. They don't have
anything like YouTube Flash video to
drive their installations, though.)
very leveraged experience compared
to writing old-school web
HTML/JavaScript AJAX apps. Can
achieve a great deal more and have
less effort to accomplish such.
important pieces, such as BlazeDS
(and now they're cooperating with
SpringSource to make BlazeDS and
Spring-Framework a smoother
integration).
The single-thread GUI in combination
to async service calls (or
messaging), and ActionScript3
closures is great programming model:
Flex Async I/O vs Java and C#
Explicit Threading
implementation of properties,
events, and databinding.
indeed a better approach to
describing a form (what is
essentially the view in the MVC
pattern). It is more concise than
equivalent imperative ActionScript
code that would accomplish the same
thing, and thus clearer. The
hierarchical structure of MXML
script tends to naturally match well
to the panel/widget construction of
views as well.
pattern can be implemented
completely on the client tier. Web
frameworks that implemented MVC in
the middle-tier - with the
presentation layer executing in the
remote client-tier, was a
fundamentally flawed approach to
MVC. MVC should be done right at the
tier that is directly user-facing.
(Once again, Adobe Flex does things
right architecturally.)
considered the pervasive standard of
the Internet web, the Adobe Flash
player is actually a more ubiquitous
and consistent standard - spanning
different browsers and operating
system platforms. The
HTML/DOM/JavaScript standard is in
actuality a fragmented mess that
grows more fragmented everyday as
Google and Microsoft drive different
directions on things regarding the
web browser. Adobe Flash player ends
up being a wonderful end-run around
this dilemma. It's a great
programming experience for the
coders and has sufficient ubiquity
for the business suits.
major platforms of Windows, Mac OS
X, and Linux. They pay special
attention to the Linux platform.
This will pay off in the long term
as developers are already settling
on Linux to do their development
from, and it's used extensively for
servers hosting their middle-tier.
Adobe's recent 64-bit Flash player
for Linux is just a marvel. They
already have AIR 1.5 available on
Linux. They are doing a decent job
there of supporting the platform
that the developers care about.