即使在 2012 年,Web 开发人员仍然面临Laszlo在公司最初创建OpenLaszlo时试图解决的问题。10 年前,Flash 是唯一的跨浏览器技术,可为 97% 的安装了插件的桌面浏览器提供像素完美的渲染。
JavaScript 引擎、HTML 和 CSS 现在可以提供更多功能:音频和视频播放、嵌入字体、基于 CSS 的动画、硬件加速的内容渲染、绘图 API、最近在某些浏览器(Chrome、Firefox 和 Opera)中的视频会议支持基于WebRTC)。现代浏览器提供几乎与 Flash 相同的功能,但仍有一定比例的用户使用比 IE9 更早版本的 Internet Explorer 浏览网页。
面向消费者或商业应用的要求仍然不同:许多企业
跨浏览器应用程序开发
如果您了解浏览器之间的 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 应用程序都可以轻松地编译成 Adobe AIR for Android 或 iOS 应用程序。查看我在 2010 年创建的此视频,其中显示了将 OpenLaszlo 应用程序编译为 AIR for Android 应用程序的 Apache Ant 脚本并将应用程序部署到手机。该工作流程适用于 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 的前首席执行官兼首席技术官)建立了电影用户体验一词:
电影般的用户体验首先传达了你不仅仅是在看你在互动——它的“用户体验”部分。我们认为电影是一个有趣的术语,它带有非技术性的旋转。当非技术人员看到它时,他们立即明白这是一个完全不同类型的产品类别,但业内人士会看到它并说屏幕上的东西正在移动,也许你有不同的技术架构......</ p>
OpenLaszlo 和 LZX 的目标之一是通过为 UI 工程师提供 API 和编程语言 (LZX) 中的工具来准确再现 UX 设计师使用 Flash 创作等工具创建的体验,从而实现这种电影用户体验的创建工具。
这是一本关于 iOS 应用程序开发的书的引述,表明其他公司看到了这种方法的价值:
Apple 工程师在谈论漂亮的用户界面时喜欢谈论的概念之一是“电影用户体验”的概念。电影用户体验本质上是一个看起来像好莱坞电影的用户界面。它看起来充满未来感且流畅,它使用动画来增强使用物理对象的感觉。
Apple 用户界面设计师专门为您提供了一组工具,使您能够构建这些类型的电影用户界面。Core Animation 之类的工具使您能够构建用户界面,这些用户界面涉及从屏幕外滑入而不仅仅是出现的元素,以及以几乎物理重量滚动的元素
LZX 和交叉编译器为我们提供了创建这种特殊用户体验的工具。你可以用 JavaScript 做同样的事情,但它会更多的代码,而且可能更难。一个很好的例子是在 DHTML 中运行的第一个 OpenLaszlo 应用程序,LzPix 演示:创建于 2006 年,它仍然是一个令人惊叹的 UI - 我还没有看到使用 JavaScript 框架构建的任何类似的东西。
双运行时仍然有效
是的,双运行时方法仍然有效。展示中应该有更多使用 DHTML 运行时的应用程序,我不知道为什么不是这样。OpenLaszlo 没有针对 iPad 或平板电脑进行优化这一事实绝对是一个劣势,但 DHTML 运行时可以针对 iOS 和 Android 进行优化。如果桌面浏览器的怪癖被删除,将创建一个针对移动浏览器优化的新组件集(使用 HTML 画布和 CSS2/3 呈现组件),您将拥有适用于 OpenLaszlo 的可靠移动运行时。