除了这些,还有更多的原因,但一些主要的原因是:
运维成本:大多数“工程师”对此不屑一顾,因为他们以开发为中心,但事实是运维是目前运行 IT 系统的主要成本。使用 Flex(或 Silverlight 或 JavaFX)之类的 VM 方法,您不必担心每次新浏览器出现时更新库、测试、应用修复等。使用难以维持日常运行的遗留技术会直接损害客户的底线。
性能: Flash (Flex) 是 JIT 编译的,(如果 SL 也是如此,也不会感到惊讶),Java 也是如此。解释型的 JavaScript 依赖库(例如 GWT)根本无法与您从已编译的 VM 客户端获得的性能相提并论——它甚至不是一个密切的比较。“AJAX”(尤其是使用 XML 时)不是“快”。(请注意 Gmail 通常加载的速度有多慢 - 一个非常简单的启用 AJAX 的脚本。)证明在基准中。
一致性/可靠性:每个人都知道,当您使用 JavaScript 或 HTML 编写任何东西时,必须在每个浏览器中进行测试(如果您真的想要安全,包括一些旧版本)。当您针对 VM 平台时,没有这样的问题。使用 AJAX:每当发布新的浏览器或浏览器版本时,您都会担心。如果有问题,它会为你创造工作。
更丰富的组件和更好的用户体验:这是 Adobe 的一大卖点,但确实如此。虽然纯粹使用浏览器脚本 (JavaScript) 完成的一些工作令人印象深刻,但 Flex 或 Silverlight 组件更好。当您不需要编写(和维护!)跨浏览器 JavaScript 魔法时,创建自己的自定义组件也很容易。
Flex 特有,但值得一提——AMF:这是 Flex 数据服务二进制协议,可用于与服务器通信。基准测试(询问 Google)已经证明该协议比 AJAX 框架使用的协议更快且带宽效率更高。在当今网络正在成为主要瓶颈(如果还不是很清楚)的世界中,这是一个相当大的胜利。
对许多人来说,这是一个敏感话题。大多数 AJAX/DHTML/JavaScript 的“工程师”或他们自称的任何人都会对他们花了数年时间成为专家的 1990 年代技术已经过时和有缺陷的建议大喊大叫并扔屎(坦率地说,他们有很多损失)。但是基于纯粹的技术优势,与任何成熟的基于 VM 的解决方案相比,即使是 HTML5 也是一种适得其反的浪费时间。我相信有些人很快就会出现,通过投票来捍卫他们的否认邪教。但很难阻止未来。
AJAX/DHTML 框架基本上都依赖于遗留的 hack 和复杂、缓慢、脆弱、不断维护的库,以使它们在多个浏览器中运行良好。HTML5,当它在 2022 年最终“完成”时(!!!)在功能方面甚至都赶不上 Silverlight 2——更不用说 Flex 届时将拥有大量的东西。基本上,AJAX 是一个维护泥潭和脆弱的开发环境,您可以通过使用 Flex、Silverlight 或 JavaFX 等 VM 解决方案完全避免这种情况。