当像 Pandora 这样的公司选择 OpenLaszlo 时,Flex 仍然是一个商业产品(甚至是编译器)。Flex 1.0 和 1.5 版本不是很稳定,只有在 Flex 2.0 版本之后,平台才变得更加稳定。Macromedia 让许多开发人员感到不安,因为 Flex 2.0 与 1.5 不兼容,并且必须为新版本重新编写所有应用程序。在那种情况下,不少公司认为 OpenLaszlo 是一个不错的选择。
OpenLaszlo 最强大的功能是 LZX 语言。该语言支持类、任何数字属性的动画、使用属性 =“${}” 语法的约束、混合支持、具有数据路径(基于 xPath 语法)映射的数据集。LZX 语言的一些主要开发人员之前一直在研究 Apple 的 Dylan 语言,并且 Dylan 的许多强大概念已经将其融入到 LZX 语言中。
我已经完成了 OpenLaszlo 和 Flex 开发。Flex 拥有各种 IDE 供应商的出色工具支持。但是 ActionScript 3 语言可能非常有限,因为在 Java 中您需要花费大量时间来考虑您的类模型。OpenLaszlo 强调基于实例的开发(原型设计非常快,但仍然可以使用 100k+ 行 LZX 代码构建非常复杂的应用程序)。我所知道的最大的 OpenLaszlo 应用程序是 Laszlo Webtop(120K+ 行 LZX 代码)和 IBM Websphere Commerce Edition (http://ibm.co/Kid5tc)。我听说其他公司也使用 OpenLaszlo 创建了同样大的应用程序。
从 4.2 版开始,OpenLaszlo 集成了 Flex SDK。OpenLaszlo 编译器将 LZX 代码生成为 JavaScript 2,然后生成为 ActionScript 3 代码。如果您将应用程序同时编译为 DHTML 和 SWF10+,您可以从 Flex 编译器的更好的类型检查中获益,即使您的应用程序将只为 DHTML/HTML5 运行时部署。
OpenLaszlo 非常稳定。上一个主要版本 (4.0) 是在 2007 年 3 月,尽管 OpenLaszlo 团队认为 4.2 版本等同于主要版本升级,因为它为平台添加了 ActionScript 3 和 SWF9 支持。4.2 于 2008 年 12 月发布,当前的稳定版本是 4.9 版本 - 尽管许多社区成员和 Laszlo 已经在生产中使用 OpenLaszlo 5.0(主干,未发布)。
在 Adobe 宣布将 Flex SDK 贡献给 Apache 基金会(现为 Apache 基金会孵化器项目)之后,Adobe 宣布他们一直在为下一代 Flex 编译器“FalconJS”开发交叉编译功能。Adobe 还表示,FalconJS(可能会在 2012 年第四季度贡献给 Apache Flex)将无法将现有的 Flex 应用程序交叉编译成 JavaScript。一个简单的 FalconJS 列表示例(如 2011 年 12 月演示的)生成为 5 MB 的未压缩 JavaScript 代码,使用 Google Closure 编译器的高级模式可以将其归结为 2.5 MB。DHTML 运行时中的一个类似 OpenLaszlo 示例编译为少于 750k 的 JavaScript 代码。