6

我目前正在从事 flex 的 RIA 项目,但最近遇到了openlaszlo。似乎很多大型项目都选择了它而不是 flex,例如流媒体音乐服务 Pandora。我对为什么感兴趣。到目前为止,我看到的最大优势是它有一个抽象层来支持 flash 6、7、8、9 和 dhtml,并且已经开发了更长的时间(因此可能更稳定)。

有没有人有很多使用这两种方法的经验,或者甚至只是 openlaszlo?对 dhtml 和旧版 flash 版本的支持真的有那么大的优势吗?随着 flash 9 现在的流行?这可能只是因为许多开发人员已经习惯了 javascript/ajax 吗?除了语言偏好,为什么 openlaszlo 而不是 flex?

感谢您的任何提示!瑞安

4

3 回答 3

5

当像 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(主干,未发布)。

在 Adob​​e 宣布将 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 代码。

于 2012-04-28T12:41:33.467 回答
3

我认为您所说的“很多大型项目”是相对而言的。是的,一些大公司已经使用了它,但我不认为它们中的任何一个都是大型项目。如果您在 OpenLaszlo 展示中查看所有这些,它们对我来说似乎是相当简单的界面。另请注意,OpenLazslo 编译的是 Flash,而不是 Flex 和相关的框架。

对我来说,OpenLaszlo 是一种创建简单 RIA 的替代方法,最终代码可以编译成 Flash 或 Javascript。 Haxe是另一种替代方案,我认为它比 OpenLaszlo 做得更好。

话虽如此,这些“通用”编写一次,编译为 Flash/Javascript 框架存在问题;它没有利用每个特定平台的任何功能/优势。Flash 不断变化,添加 html5 标记和 css3 的 Javascript 也在不断变化。如果您曾经在这两个方面都有过经验,您会注意到它们在做事方式和算法方面非常不同,可能适用于 Flash,可能不适用于 Javascript。

我的观点是,如果您要选择一种技术,请选择更合适的技术。如果您的项目需要同时具有 Javascript 和 Flash,那么这可能是一个不错的选择,但请记住,您将失去两者的“力量”。例如,Flex 具有非常好的皮肤架构和一组对企业开发至关重要的工具。Javascript 可以使用选择器、css3 和其他一些框架(如 jQuery)来做一些非常简洁的事情。

以我的经验,像 OpenLaszlo 这样的后编译器消除了这些优势。另外,如果出现了新事物(例如,用于 javascript/flash 的硬件加速视频/3d),您必须等待 OpenLazslo 的人员更新才能使用它(如果他们使用它)。

于 2011-07-05T14:21:11.180 回答
0

我开始使用 OpenLaszlo 开发 RIA,因为它提供了一种跨浏览器在任何地方运行的框架。随之而来的用户体验也非常好。

我搬到了 Flex(当它是 Beta 版时),因为:

  1. OpenLaszlo 的所有功能都在 Flex 中可用。
  2. Flex 有一个额外的优势,因为它是领先的数字媒体内容创作公司 Macromedia 的支持商业产品,后来被 Adob​​e 收购。
  3. 基于 Eclipse 构建的 Flash Builder(又名 Flex Builder)提供了良好的开发效率改进。(所以花一次许可费根本不是问题)
  4. 最重要的是,Flex 具有更好的服务器端集成/远程处理能力。
  5. Flex 有大量教程和示例代码,因此培养新开发人员非常容易。

现在,Flex 也是 Apache 软件基金会 OpenLaszlo 下的社区驱动的开源项目,现在它提供了一个超过 Flex 的额外功能(直到 FalconJS 交叉编译器发布),它可以使用单个代码库运行 Flash 和 Ajax 运行时环境。

但是 Flex 仍然有一个额外的优势,即拥有非常好的开发环境(与其他 Adob​​e 设计器工具集成)和良好的服务器端集成能力,因此对于企业应用程序来说,Flex 是一个明显的赢家。

于 2012-07-26T18:40:04.490 回答