OpenLaszlo的双运行时方法(HTML5和Flash / SWF)仍然有效吗?

时间:2012-09-06 09:11:56

标签: flash html5 runtime openlaszlo lzx

据我所知,OpenLaszlo是唯一具有以下功能的富Internet应用程序平台:

  • 基于声明XML的用户界面语言(类似于Mozilla的XUL),称为LZX。
  • 将LZX交叉编译为JavaScript或ActionScript 3(因此支持两个运行时)。
  • 仅使用XML和JavaScript或JavaScript开发组件的能力;所有组件都由OpenLaszlo呈现,因此它们在浏览器和设备上看起来都相同。
  • 查看跨运行时工作的系统,键盘和鼠标管理。
  • 组件可以用LZX(XML + JavaScript)或仅用JavaScript编写
  • 支持基于XPath的组件到数据集元素映射的XML数据集。
  • 布局引擎支持许多预定义的布局;开发人员可以轻松实现自定义布局。
  • 使用XML属性中的简单语法强大支持约束:$ once {JavaScript expression}或$ always {JavaScript expression}。
  • 内置调试器(开发人员控制台),可在两个运行时工作。

我还没有看到任何更现代的JavaScript框架,它使OpenLaszlo像创建HTML5应用程序一样简单 - 当前组件集与OpenLaszlo一起提供的唯一缺点看起来有点像90年代的Mac OS。

但是将应用程序部署为HTML5 / JavaScript应用程序和Adobe Flash应用程序(可选择创建基于Adobe AIR的移动应用程序,尽管该功能不是直接构建到OpenLaszlo服务器中)的方法是多么有效?我听说Adobe尝试使用FalconJS编译器原型做类似的事情(请参阅此Adobe video Open Discussion about Falcon and FalconJS获取更多信息),但他们停止了努力。 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加速视频播放等)。

4 个答案:

答案 0 :(得分:5)

我在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,那么由于浏览器的限制,该应用程序的部分内容将不尽如人意。

答案 1 :(得分:2)

我首先要说的是,这不是一个完整的答案;但是,希望有些信息对您有用。

我最近看了一下关于Stackoverflow的另一个问题的OpenLaszlo,在我看来,它有一个垂死项目的所有标志(在审查中,Raju在评论中提供的证据here)。

关于Gliffy,this article提供了一些关于放弃OpenLaszlo的理由的见解。特别是,他们提到了编译时间的问题以及它对开发时间的影响。

它肯定没有勾选你的所有方框(具体来说,我不认为支持基于XML的声明式UI语言),但Haxe / NME似乎涵盖了你的核心能够编译到Flash和HTML5的要求。

公平披露,我实际上并没有使用它,但我一直听到它的好消息(我刚刚参加了一个创意发展会议,我听到至少有两位发言者对它赞不绝口)。它本质上是ActionScript 3.0减去主要烦恼和主要遗漏(例如抽象类)。因此,如果您已经了解ActionScript 3.0,并且使用任何一种方式都可以获得愉快的体验,那么它应该很容易上手。

答案 2 :(得分:2)

即使在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语言并转而使用JavaScript框架(如jQuery或Prototype)的大量开发人员抱怨需要多少代码来实现使用数据集,数据绑定的几行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 demoCreated in 2006,它仍然是一个令人惊叹的用户界面 - 我还没有看到像使用JavaScript框架构建的任何内容

双重运行时仍然有效
是的,双运行时方法仍然有效。使用DHTML运行时在展示中应该有更多的应用程序,我不知道为什么不是这样。 OpenLaszlo尚未针对iPad或平板电脑进行优化这一事实无疑是一个缺点,但DHTML运行时可针对iOS和Android进行优化。如果删除桌面浏览器怪癖,将创建一个针对移动浏览器优化的新组件集(利用HTML canvas和CSS2 / 3来呈现组件),您将拥有OpenLaszlo的可靠移动运行时。

答案 3 :(得分:1)

我们在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几乎支持所有平台:

http://jquerymobile.com/gbs/

所以,我认为,OpenLaszlo的双运行时仍然有效,但问题可能是OpenLaszlo在近两年没有任何正式发布后仍然有效,而其他JavaScript框架不断改进和发展以取代对它