Adobe Flex与OpenLaszlo的比较

6
我目前正在使用flex开发RIA项目,但最近遇到了openlaszlo。许多大型项目都选择了它,例如流媒体音乐服务Pandora。我对此很感兴趣。到目前为止,我看到的最大优点是它有一个抽象层,支持flash 6、7、8、9和dhtml,并且已经开发了更长时间(因此可能更稳定)。
有没有人同时使用过这两个框架,或者只使用openlaszlo?现在流行flash 9,支持dhtml和旧版flash版本真的很重要吗?这是因为许多开发人员已经熟悉javascript/ajax吗?除了语言偏好,为什么选择openlaszlo而不是flex?
谢谢任何提示! Ryan

目前在StackOverflow上有20个标记为“openlaszlo”的问题和12695个标记为“flex”的问题... - Chris Ghenea
由志愿者制作的东西和由公司制作的东西,都有明确的想法和路线图... 嗯,这是一个艰难的选择 :D。我会押注于公司开发 - Flex。 - Yordan Yanakiev
好的观点,商业与社区之间的比较,尽管我见过许多伟大的社区项目。我喜欢Flex/Flash Builder IDE/可视化开发环境。如果Openlaslo没有这个功能,我认为还有很多其他浏览器RIA平台/框架可以使用,它们也非常好,被大型网站使用,并且没有GUI构建器。 - Scott Szretter
1
商业版和社区版并没有什么区别。在这种情况下,我想所有的PHP开发者都应该放弃PHP和MySQL,转而选择ASP和MSSQL。 - user562566
@yordan OpenLaszlo实际上是由一家公司发起的,大部分贡献可能来自该公司。 - Eric Bloch
OpenLaszlo仍由Laszlo Systems Inc.提供资金支持。Laszlo Systems在2012年初被Critical Path收购,而Critical Path声称他们计划继续资助OpenLaszlo项目。然而,根据laszlo-reviews邮件列表中发送的评论数量来看,似乎没有太多的活动。 - raju-bitter
3个回答

5
当像Pandora这样的公司选择OpenLaszlo时,Flex仍然是一款商业产品(甚至编译器也是)。Flex版本1.0和1.5不太稳定,只有在Flex 2.0发布后,该平台才变得更加稳定。Macromedia让很多开发人员感到沮丧,因为Flex 2.0与1.5不兼容,所有应用程序都必须为新版本重写。在那种情况下,相当多的公司认为OpenLaszlo并不是一个坏选择。
OpenLaszlo最强大的功能是LZX语言。该语言支持类、任何数值属性的动画、使用attribute="${}"语法的约束、mixin支持、基于数据路径(xPath语法)的数据集映射。LZX语言的一些关键开发人员曾经在苹果的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+,即使您的应用程序仅部署在DHTML/HTML5运行时,也可以受益于Flex编译器更好的类型检查。
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 Foundation(现在是一个Apache基金会的孵化项目)之后,Adobe宣布他们一直在为下一代Flex编译器“FalconJS”开发交叉编译功能。同时Adobe表示,FalconJS(预计将于2012年第四季度捐赠给Apache Flex)将不能将现有的Flex应用程序交叉编译成JavaScript。FalconJS的一个简单列表示例(在2011年12月进行演示)生成了5 MB未压缩的JavaScript代码,使用Google Closure编译器的高级模式可以将其精简到2.5 MB以下。类似的OpenLaszlo示例在DHTML运行时编译出少于750k的JavaScript代码。


无法找到更好的答案! - ryanggfx

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这样的后编译器消除了这些优势。此外,如果有新的东西出现(比如说,硬件加速的视频/3D用于Javascript/Flash),你必须等待OpenLazslo的人更新才能使用它(如果他们使用它)。

我所说的“大型”是指广泛使用的,主要是指沃尔玛、H&R Block和Pandora。非常感谢您,这正是我要找的。 - ryanggfx
广泛使用?在我五年的专业经验中,我还没有遇到任何人使用OpenLazslo(我曾为之工作)。我也不能说我看到它是工作要求。HaXe也是一样。对我来说,这似乎更像是一个实验,而不是其他任何重要项目所需的,出于我上面列出的原因,你最终会遇到瓶颈并自食其果,因为你无法做更多。 - J_A_X
忘了我说过什么关于任何东西都很大。我只是想知道为什么那些每天访问量超过2-3k的网站(沃尔玛、潘多拉、H&R Block)选择了OpenLaszlo而不是直接使用Flex/AS3。我不知道他们是否看到了我忽略的某些东西。无论如何,我只是好奇,你已经回答了最重要的问题。了解备选项目总是很好的。 - ryanggfx

0

我开始使用OpenLaszlo开发RIA,因为它提供了一种跨浏览器运行的框架。它所提供的用户体验也非常好。

我转向Flex(当它处于Beta版本时)是因为:

  1. Flex具备OpenLaszlo的所有功能。
  2. Flex是一个由领先的数字媒体内容创作公司Macromedia支持的商用产品,后来被Adobe收购。
  3. Flash Builder(又名Flex Builder)基于Eclipse,提供了良好的开发生产力改进。(因此,在它上面花费一次性许可费用根本不是问题)
  4. 最重要的是,Flex具有更好的服务器端集成/远程能力。
  5. Flex有很多教程和示例代码,因此启动新开发人员非常容易。

现在Flex也是Apache软件基金会下的社区驱动开源项目。 直到FalconJS交叉编译器发布之前,OpenLaszlo现在提供了比Flex更多的功能,即可以使用单个代码库同时运行Flash和Ajax运行时环境。

但是,对于企业应用程序来说,Flex仍然具有非常好的开发环境(与其他Adobe设计工具集成)和良好的服务器端集成能力,所以它是明显的赢家。


FalconJS不会支持将Flex应用程序编译为JavaScript/HTML5。Adobe在2011年末展示的演示应用程序对于一个简单的列表来说,需要多达数兆字节的JavaScript代码,使用gzip压缩后可压缩到约1.5 MB。FalconJS将在2012年底之前捐赠给Apache,它绝不是一个成品,Adobe也不认为它能成为成品。 - raju-bitter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接