Search code examples
flashhtmlruntimeopenlaszlolzx

Is OpenLaszlo's dual-runtime approach (HTML5 and Flash/SWF) still valid?


OpenLaszlo is - as far as I know - the only rich Internet application platform with the following features:

  • Declarative XML based user interface language (similar to Mozilla's XUL) called LZX.
  • Cross compilation of LZX to either JavaScript or ActionScript 3 (therefore supporting two runtimes).
  • Ability to develop components using XML and JavaScript or JavaScript only; all components are rendered by OpenLaszlo, therefore they'll look identical across browsers and devices.
  • View system, keyboard and mouse management working across runtimes.
  • Component can be written in LZX (XML + JavaScript), or in a JavaScript only
  • XML datasets supporting XPath based mapping of components to dataset elements.
  • Layout engine supporting a number of pre-defined layouts; developers can easily implement custom layouts.
  • Powerful support for constraints using a simple syntax in XML attributes: $once{JavaScript expression} or $always{JavaScript expression}.
  • Built-in debugger (developer console) working in both runtimes.

I haven't seen any more modern JavaScript framework which makes it as easy as OpenLaszlo to create HTML5 applications - with the only downside that the current component set delivered with OpenLaszlo looks a bit like Mac OS back in the 90's.

But how valid is the approach of deploying an application as both HTML5/JavaScript application and as an Adobe Flash application (with the option of creating an Adobe AIR based mobile application, although that functionality is not build into the OpenLaszlo server directly)? I heard that Adobe tried to do something similar with the FalconJS compiler prototype (see this Adobe video Open Discussion about Falcon and FalconJS for more information), but they stopped the effort. The code of the FalconJS proof-of-concept will be contributed to the Apache Foundation as part of the Apache Flex project, but

It is surprising to see that there is not a single application utilizing both runtimes in the OpenLaszlo showcase section: http://www.openlaszlo.org/showcase

In an old Ajaxian article from 2007 I read that Laszlo Webtop's "final release will support OpenLaszlo 4, which will mean support for both Ajax and Flash applications". But the Laszlo Webtop demo site http://gowebtop.com/webtop/ has only a Flash based version of Webtop. I've read in this Stackoverflow discussion that Gliffy - one of the most impressive OpenLaszlo applications I know - has been rebuilt using JavaScript, not utilizing the dual-runtime capability of OpenLaszlo.

Are there any other large OpenLaszlo applications deployed as both HTML5/DHTML and Flash, which are maybe not listed on the OpenLaszlo.org website? Even if Flash is not that popular any more, it is still a relevant technology for a number of use cases (audio conferencing, 3d in the browser, GPU accelerated video playback, etc.).


Solution

  • I started using OpenLaszlo back in 2004 after I concluded at the time there was no better free, open-source RIA tool for my needs.

    My apps currently leverage SWF and JavaScript runtimes. So just because they aren't in the now-dead Laszlo showcase doesn't mean there aren't large apps out there leveraging both runtimes. I've been working on my apps for 7 years. Gliffy is a tinker toy in comparison IMHO...I've yet to find any OL apps more complex than mine. Doesn't mean they aren't out there, but if they are I haven't seen them.

    My apps would not be feasible with just one or the other runtime. So for me, having both runtimes is essential. HTML5 is too slow for certain things, while SWF10 offers the most consistent cross-browser experience.

    Haxe is no OL replacement, that's for sure. The value of OL to me has been the productivity boosts gained from constraints, instance-based programming, and the ease in binding data to views. I could not have built my products on my own using any other tool. I looked far and wide. With OL in decline and now all but dead, I keep looking, too. OL's HTML5 runtime doesn't work in the latest IE versions, which stinks...but it can be made to run via IE7 emulation mode or the Chrome frame plugin (which is actually essential due to IE's crappy JavaScript engine).

    Whether or not you need both runtimes depends on your project. While it probably doesn't make sense for compiler makers to be thinking that being able to emit both SWF and HTML5 runtimes is desirable, since OL has been able to do it for years now there are some systems out there like mine taking advantage of that capability.

    As an example, my system is being used on military classified networks that don't allow the Flash plugin...so for those installations I must rely on HTML5. When not running on classified networks, my system leverages the runtime performance and other capabilities of the SWF runtime when it is advantageous. The hybrid approach is essential for me. If I had a SWF-only app it wouldn't be allowed on classified networks, but if it were HTML5-only portions of the app would be less than stellar due to browser limitations.