据我所知,OpenLaszlo是唯一具有以下功能的富Internet应用程序平台:
我还没有看到任何更现代的JavaScript框架,它使得OpenLaszlo像创建HTML5应用程序一样简单 - 与OpenLaszlo一起提供的当前组件集的唯一缺点看起来有点像90年代的Mac OS。
但是,将应用程序部署为HTML5 / JavaScript应用程序和Adobe Flash应用程序(可选择创建基于Adobe AIR的移动应用程序,虽然该功能不是直接构建到OpenLaszlo服务器中)的方法有多有效?我听说Adobe试图用FalconJS编译器原型做类似的事情(有关更多信息,请参阅此Adobe video Open Discussion about Falcon and FalconJS),但他们停止了努力。作为Apache Flex项目的一部分,FalconJS概念验证的代码将作为Apache Flex项目的一部分提供给Apache Foundation
令人惊讶的是,在OpenLaszlo展示部分中没有一个应用程序同时使用这两个运行时:http://www.openlaszlo.org/showcase
在old Ajaxian article from 2007中,我读到Laszlo Webtop的“最终版本将支持OpenLaszlo 4,这意味着支持Ajax和Flash应用程序”。但Laszlo Webtop演示网站http://gowebtop.com/webtop/只有基于Flash的Webtop版本。我在this Stackoverflow discussion上读到Gliffy--我所知道的最令人印象深刻的OpenLaszlo应用程序之一 - 已经使用JavaScript重建,而不是利用OpenLaszlo的双运行时功能。
是否有任何其他大型OpenLaszlo应用程序部署为HTML5 / DHTML和Flash,这些应用程序可能未在OpenLaszlo.org网站上列出?即使Flash不再流行,它仍然是许多用例的相关技术(音频会议,浏览器中的3d,GPU加速视频播放等)。
我在2004年结束时开始使用OpenLaszlo,当时没有更好的免费开源RIA工具满足我的需求。
我的应用程序目前正在利用SWF和JavaScript运行时。因为他们不在现在已经死亡的Laszlo展示中并不意味着没有大型应用程序可以利用这两个运行时。我已经在我的应用程序上工作了7年。与我相比,Gliffy是一个小修补玩具...我还没有找到比我更复杂的OL应用程序。并不意味着他们不在那里,但如果他们是我没有见过他们。
只有一个或另一个运行时,我的应用程序是不可行的。所以对我来说,两个运行时都是必不可少的。 HTML5对于某些事情来说太慢了,而SWF10提供了最一致的跨浏览器体验。
Haxe不是OL替代品,这是肯定的。对我来说,OL的价值在于从约束,基于实例的编程以及将数据绑定到视图的简易性所带来的生产力提升。我无法使用任何其他工具自行构建我的产品。我看得远远。随着OL的下降,现在几乎已经死了,我也一直在寻找。 OL的HTML5运行时无法在最新的IE版本中运行,但它可以通过IE7仿真模式或Chrome框架插件运行(由于IE糟糕的JavaScript引擎,它实际上是必不可少的)。
您是否需要两个运行时取决于您的项目。虽然编译器制造商认为能够同时发射SWF和HTML5运行时可能没有意义,但由于OL已经能够做多年,现在有一些系统像我一样利用它能力。
例如,我的系统被用于不允许Flash插件的军事分类网络......所以对于那些安装我必须依赖HTML5。当不在分类网络上运行时,我的系统在有利的时候利用SWF运行时的运行时性能和其他功能。混合方法对我来说至关重要。如果我有一个仅限SWF的应用程序,它将不被允许在分类网络上,但如果它是HTML5,那么由于浏览器的限制,该应用程序的部分将不会很好。
即使在2012年,网络开发人员仍然面临Laszlo在公司最初创建OpenLaszlo时试图解决的问题。 10年前,Flash是唯一一款为97%的桌面浏览器提供像素完美渲染的跨浏览器技术。 JavaScript引擎,HTML和CSS现在提供了更多功能:音频和视频播放,嵌入字体,基于CSS的动画,硬件加速的内容呈现,绘图API,最近的视频会议支持在某些浏览器(Chrome,Firefox和Opera)基于WebRTC)。现代浏览器提供与Flash几乎相同的功能,但仍然有一定比例的用户使用早期版本的Internet Explorer浏览网页而不是IE9。 面向消费者或业务应用程序的要求仍然不同:许多企业
跨浏览器应用程序开发 如果您了解API和浏览器之间的差异,您可以轻松实现基于开放标准的Flash的80-90%。但是你仍然依赖于开发人员的专业知识,使用Flash,你有一个ActionScript API,你可以在所有浏览器中使用它(至少对于Windows和OS X,Linux有一些限制,并且得不到很好的支持)。
LZX语言与纯JavaScript LZX仍然是使用既定开发方法构建优秀UI的出色语言。 LZX已经发展了很多:CSS支持,mixins,支持JavaScript而不是XML的编码类,将ActionScript 3代码嵌入到语言中的能力是一些新功能。 6年前 - LZX创建很久之后很久 - 许多开发人员都不知道如何编写好的JavaScript代码。基于原型的开发模型没有很好地记录,开发人员倾向于使用像Java / OOP这样的JavaScript - 导致可怕的代码。即使在2012年,市场上有许多关于JavaScript的好书以及数百万兴奋的JavaScript开发人员,使用纯JavaScript构建复杂的界面并非易事。对于像CoffeeScript这样的JavaScript交叉编译语言的流行是有原因的。 大量使用OpenLaszlo的LZX语言并转而使用jQuery或Prototype等JavaScript框架的开发人员抱怨需要多少代码来实现使用数据集,数据绑定,复制和几行LZX代码可以完成的任务。布局系统。许多转向HTML5 / JavaScript开发的Flex开发人员抱怨同样的事情。因此,拥有LZX的强大功能,并能够交叉编译为SWF和JavaScript,仍然是非常有价值的。
OpenLaszlo和Adobe AIR SDK 使用基于ActionScript 3的SWF10 / 11运行时,任何OpenLaszlo应用程序都可以轻松编译为适用于Android或iOS应用程序的Adobe AIR。查看我在2010年创建的视频,显示Apache Ant脚本compiling an OpenLaszlo app into an AIR for Android application并将应用程序部署到手机中。该工作流程适用于OpenLaszlo 5.0的最新(未发布)版本。缺少的是,目前还没有针对OpenLaszlo的移动和触摸优化的组件集。但是,如果活跃的社区成员愿意为这样的项目做出贡献,那么创建这样的组件集并不会太多。这意味着,您可以使用LZX在现代智能手机和平板电脑上开发具有良好性能的移动应用程序,而无需学习用于Android开发的Objective C或Java。 Haxe是另一个开源项目,大量使用交叉编译来定位更多的运行时:JavaScript,Flash,NekoVM,PHP,C ++,C#和Java。
双运行时和交叉编译,以获得更好的用户体验 在过去几年中,已经有许多技术使移动应用程序开发人员能够用一种语言编写应用程序,并交叉编译其他移动平台的代码。您可以使用OpenLaszlo执行相同操作,并且由于模块化体系结构(用LZX编写的组件,用LaszloScript / JavaScript编写的LFC,用运行时特定语言编写的内核,例如ActionScript3),您可以轻松添加其他运行时。但在我看来,有一个更重要的原因是使用像LZX这样的语言,并交叉编译为JavaScript,ActionScript 3或其他语言或VM。它与创建令人惊叹的视觉效果和独特用户体验的能力有关,这是由LZX实现的,并且很难通过纯JavaScript开发实现。 Laszlo Systems和David Temkin(Laszlo的前首席执行官兼首席技术官)建立了Cinematic User Experience一词:
电影用户体验首先表达的是,您不仅仅是在观察您正在互动 - “用户体验”的一部分。我们认为电影是一个有趣的术语,它有一个非技术性的旋转。当非技术人员看到它时,他们立即明白这是一种完全不同类型的产品类别,但业内人士会关注它并说屏幕上的东西正在移动,也许你有不同的技术架构......
OpenLaszlo和LZX的目标之一是通过为UI工程师提供编程语言(LZX)中的API和工具,以准确再现UX设计人员使用Flash创作等工具创建的体验,从而创建此类电影用户体验。工具。
以下是a book on iOS app development的一句话,表明其他公司看到了这种方法的价值:
Apple工程师在讨论美观的用户界面时喜欢谈论的概念之一是“电影用户体验”这一概念。电影用户体验本质上是一个看起来像好莱坞电影的用户界面。它看起来很古老和流畅,它使用动画来增强与物体一起工作的感觉。 Apple用户界面设计人员专门为您提供了一组工具,使您能够构建这些类型的电影用户界面。像Core Animation这样的工具可以让你拥有构建器接口的强大功能,这些接口涉及从屏幕外滑入而不仅仅是出现的元素,以及以几乎物理重量滚动到它们的元素
LZX和交叉编译器为我们提供了创建这种特殊用户体验的工具。你也可以用JavaScript做同样的事情,但是代码会更多,而且可能要困难得多。一个很好的例子是第一个在DHTML中运行的OpenLaszlo应用程序,LzPix demo:Created in 2006,它仍然是一个令人惊叹的用户界面 - 我还没有看到任何类似用JavaScript框架构建的应用程序。
双运行时仍然有效 是的,双运行时方法仍然有效。在使用DHTML运行时的展示中应该有更多的应用程序,我不知道为什么不是这种情况。 OpenLaszlo尚未针对iPad或平板电脑进行优化这一事实无疑是一个缺点,但DHTML运行时可针对iOS和Android进行优化。如果删除桌面浏览器怪癖,将创建一个针对移动浏览器优化的新组件集(利用HTML canvas和CSS2 / 3来呈现组件),您将拥有OpenLaszlo的可靠移动运行时。
我首先要说的是,这不是一个完整的答案;但是,希望有些信息对您有用。
我最近看了一下关于Stackoverflow的另一个问题的OpenLaszlo,在我看来,它有一个垂死项目的所有标志(在审查中,Raju在评论中提供的证据here)。
关于Gliffy,this article对他们放弃OpenLaszlo的理由提供了一些见解。特别是,他们提到了编译时间的问题以及它对开发时间的影响。
它肯定没有勾选你的所有方框(具体来说,我不相信支持基于XML的声明式UI语言),但Haxe / NME似乎涵盖了能够编译为Flash和HTML5的核心要求。
公平披露,我实际上并没有使用它,但我一直听到它的好消息(我刚刚参加了一个创意发展会议,我听到至少有两位发言者对它赞不绝口)。它本质上是ActionScript 3.0减去主要烦恼和主要遗漏(例如抽象类)。因此,如果您已经了解ActionScript 3.0,并且使用任何一种方式都可以获得愉快的体验,那么它应该很容易上手。
我们在2006年选择了OpenLaszlo来实现我们的在线视频编辑应用程序(http://www.sarolta.tv/web/sarolta-tools/template-editor.html),两次尝试使用不同的平台创建它。
第一次失败的尝试是使用DHTML,但是在纯JavaScript + HTML和浏览器怪癖中执行此操作的复杂性导致代码在不同浏览器中的工作方式不同,从而阻止了该尝试的成功完成。
第二次尝试是使用纯Adobe Flash,但Flash的时间轴导向性质对开发人员来说是一个外国概念,这使得他们很难创建想要的东西。
最后,OpenLaszlo被选中,它是XML和JavaScript的直观组合,任何对OO编程和Web设计有一点经验的人都可以轻松地在Flash中构建复杂的应用程序。那时OpenLaszlo只支持Flash,但每个操作系统上的每个浏览器都支持Flash。我们喜欢Flash是跨平台的,因为代码在每个浏览器中都以相同的方式运行,而不是基于JavaScript的DHTML应用程序。那时有97%以上的系统支持Flash,因此用户也无需为我们的应用程序安装任何软件来处理他们的系统。
作为一家拥有数量有限的员工的初创公司,构建和维护多个版本的资源不存在不同浏览器和操作系统的应用程序,OpenLaszlo当时解决了这个问题。
我们很高兴OpenLaszlo添加了DHTML运行时,当我们听说IBM正在为OpenLaszlo开发(现已放弃)Java运行时,因为这意味着我们的代码将与新兴的移动市场和其他设备兼容。遗憾的是,自2010年10月以来,任何在Laszlo系统工作的OpenLaszlo官方开发人员都没有做太多工作,因此DHTML / HTML5运行时间从那以后没有任何改进。
我确实认为即使在今天,一次写入运行的方法仍然是非常可取的。被迫处理浏览器和操作系统怪癖,使您的应用程序在不同系统上以不同方式工作是一件麻烦事,需要大量的维护时间。我认为JQuery,特别是JQuery mobile今天如此受欢迎的原因是因为它被设计为跨平台,它无形地处理浏览器/操作系统怪癖,所以你不必担心它。 JQuery mobile几乎支持所有平台:
因此,我认为,OpenLaszlo的双运行时仍然有效,但问题可能是OpenLaszlo在近两年没有任何正式发布的情况下仍然有效,而其他JavaScript框架不断改进和发展以取代对它的需求。