Even in 2012 web developers are still facing the problems Laszlo tried to solve when the company initially created OpenLaszlo. 10 years ago Flash was the only cross-browser technology delivering a pixel-perfect rendering for 97% of the desktop browsers, where the plugin was installed.
JavaScript engines, HTML and CSS have a lot more to offer now: Audio and video playback, embedding fonts, CSS based animation, hardware-accelerated rendering of content, drawing APIs, lately video conferencing support in some browsers (Chrome, Firefox, and Opera based on WebRTC). Modern browsers offer almost the same features Flash does, but there's still certain percentage of users browsing the web with an earlier version of Internet Explorer than IE9.
The requirements for consumer facing or business applications are still different: Many enterprises
Cross-browser application development
If you know the APIs and differences between browsers, you can easily achieve 80-90% of what you can with Flash based on open standards. But you still depend on the expertise of your developers, with Flash you have one ActionScript API, which you use across all browsers (at least for Windows and OS X, Linux has some limitations and is not well supported).
The LZX language vs pure JavaScript
LZX is still a fantastic language for building great UIs, using an established development approach. LZX has evolved a lot: CSS support, mixins, support for coding classes in JavaScript instead of XML, ability to embed ActionScript 3 code into the language are some of the new features.
6 years ago - long after LZX had been created - many developer didn't know how to write good JavaScript code. The prototype based development model wasn't well documented, and developers tended to use JavaScript like Java/OOP - resulting in horrible code. And even in 2012, with many good books on JavaScript out in the market and millions of excited JavaScript developers, building complex interfaces using pure JavaScript it not an easy task. There's a reason for the popularity of languages cross-compiling to JavaScript like CoffeeScript.
A large number of the developer who have used OpenLaszlo's LZX language and moved on to using JavaScript frameworks like jQuery or Prototype complain how much code is needed to achieve what can be done with a few lines of LZX code using datasets, databinding, replication, and the layout system. Many of the Flex developers switching to HTML5/JavaScript development complain about the same things. Having the power of LZX, and being able to cross-compile to both SWF and JavaScript is therefore still something extremely valuable.
OpenLaszlo and the Adobe AIR SDK
With the ActionScript 3 based SWF10/11 runtime, any OpenLaszlo application can be easily compiled into an Adobe AIR for Android or iOS application. Check this video I created back in 2010, showing an Apache Ant script compiling an OpenLaszlo app into an AIR for Android application and deploying the app to the phone. That workflow works with the latest (unreleased) version of OpenLaszlo 5.0. What's missing is, that there is no component set optimized for mobile and touch for OpenLaszlo at the moment. But it would not be too much work to create such a component set, if the active community members would be willing contribute to such a project. That means, you can use LZX to develop mobile applications with good performance on modern smartphones and tablets, without the need to learn Objective C or Java for Android development. Haxe is another open source project heavily using cross-compilation to target even more runtimes: JavaScript, Flash, NekoVM, PHP, C++, C# and Java.
Dual-runtime and cross-compilation for a better user experience
There have been a number of technologies in the past years enabling mobile app developers to code an app in one language, and cross-compile the code other mobile platforms. You can do the same with OpenLaszlo, and you could add other runtimes easily due to the modular architecture (components written in LZX, LFC written in LaszloScript/JavaScript, kernel written in runtime specific language, e.g. ActionScript3). But in my eyes there's an even more important reason to use a language like LZX, and cross-compile to JavaScript, ActionScript 3 or other languages or VMs. It has to do with the ability to create stunning visual effects and unique user experience, which is enabled by LZX, and difficult to achieve with pure JavaScript development.
Laszlo Systems and David Temkin (the former CEO and CTO of Laszlo) established the term Cinematic User Experience:
Cinematic user experience conveys first of all that you aren’t just
watching you are interacting – the “user experience” part of it. We
thought cinematic was an intriguing term, that had a non-techie spin
to it. It was something that when non-techies saw it, they instantly
understood this is a completely different type of product category and
yet industry insiders would look at it and say things are moving on
the screen, maybe you have a different technical architecture…
One of the goals of OpenLaszlo and LZX was to enable the creation of such Cinematic User Experience, by giving UI engineers the APIs and the tools in the programming language (LZX) to exactly reproduce the experience created by UX designers using tools like the Flash authoring tool.
Here's a quote from a book on iOS app development, showing that other companies see the value of such an approach:
One of the concepts that Apple engineers like to talk about when
they’re talking about beauti-ful user interfaces is the concept a
“cinematic user experience.” A cinematic user experienceessentially is
a user interface that looks like something from a Hollywood movie. It
looks futuris-tic and smooth, and it uses animation to enhance the
feeling of working with physical objects.
Apple user interface designers have specifically given you a set of
tools that enable you to buildthese types of cinematic user
interfaces. Tools like Core Animation give you the power to builduser
interfaces that involve elements that slide in from off-screen rather
than just appearing,and elements that scroll with an almost physical
weight to them
LZX and the cross-compiler give us the tools to create this special user experience. You could do the same with JavaScript, but it would be more code, and probably much more difficult. A good example is the first OpenLaszlo application running in DHTML, the LzPix demo: Created in 2006, it's still an amazing UI - and I haven't seen anything like it built with JavaScript frameworks.
Dual-runtime is still valid
Yes, the dual-runtime approach is still valid. There should be more applications in the showcase using the DHTML runtime, and I don't know why that's not the case. The fact that OpenLaszlo has not been optimized for the iPad or tablets is definitely a disadvantage, but the DHTML runtime could be optimized for iOS and Android. If the desktop browser quirks are removed, a new component set would be created optimized for mobile browsers (utilizing HTML canvas and CSS2/3 to render the compoents), you'd have a solid mobile runtime for OpenLaszlo.