Open Laszlo – Beer, Pizza and Ajax

Update 6/13/06 – PTW (who commented below) also posted photos from the event on flickr.
Last week, the folks from OpenLaszlo / Laszlo Systems presented at a “Beer, Pizza, and Ajax” event here in Boston in the Optaros space (where I work).

David Temkin, the founder and CTO, did most of the presentation, joined by Amy Muntz to talk about how people can get involved as contributors to the OpenLaszlo project.

If you’ve never heard of OpenLaszlo, the basic value proposition is (from their site):

OpenLaszlo is an open source platform for creating zero-install web applications with the user interface capabilities of desktop client software.

OpenLaszlo programs are written in XML and JavaScript and transparently compiled to Flash and soon DHTML. The OpenLaszlo APIs provide animation, layout, data binding, server communication, and declarative UI. An OpenLaszlo application can be as short as a single source file, or factored into multiple files that define reusable classes and libraries.

The “and soon DHTML” part is the newest part, and that was one of the things they demo’d.

The company was founded in 2000, and converted the whole project to Open Source in 2004. They draw revenuye from training, custom design and development, as well as some commercial extensions to the core platform.

Temkin started by going over the basics of Rich Internet Applications (RIAs) and their business benefits – the experience of a desktop application, but with the ease-of-deployment of a web application.

Some of the applications he demonstrated, which use OpenLaszlo in the interface tier:

The discussion ranged over a variety of topics – Temkin did a great job of answering questions during the presentation-in-progress without getting pulled entirely away from what he needed to get through.
One interesting point was the question of partially connected (or occasionally connected) clients – right now, when you use Gliffy, for example, if you lose your internet connection in the middle of working on a drawing, the behavior you’ll get is at best undefined – most likely complete failure when the client’s requests start timing out. Temkin mentioned that Laszlo has an interest in this question but not much more to add other than that they will be looking into solutions.

He also pointed out, in the Pandora example, the value of leveraging the Flash player’s ability to handle streaming video and audio directly. In the AJAX world one needs a plugin for these media types (of course, Flash is already a plugin, but relying on only one, monolithic run-time environment would arguably be simpler than dealing with multiple layers).

Lots of folks asked about how developing in OpenLaszlo differed from developing in Flash. In essense, the OpenLaszlo environment is more like Flex than traditional Flash: XML based language which gets compiled into an SWF. This means no more “timeline” or “stage” or any of the other design-based components that plain-old-Flash was saddled with. But, as someone in the audience pointed out (and Temkin agreed) to really make the most of an OpenLaszlo application you need both designer and developer input. Just as PageMaker didn’t automatically make good graphic designers of everyone, an XML-based declarative markup language and set of components won’t turn developers into designers.

The code for OpenLaszlo applications is written in LZX. Those *.lzx files are then compiled into an SWF. OpenLaszlo supports both “solo deployment,” in which the .swf file is just put on a plain-old web server, and “proxy deployment,” in which OpenLaszlo pieces (a servlet) gets installed on the server. (Architecture). Temkin noted that the pieces which require the servlet deployment are SOAP, Java RPC, format transcoding for media, and persistence / storage.

My favorite part of the presentation was a slide that showed the continuum of AJAX type applications: at the far left is the “mostly static, view based” html site which just adds a small interactive widget – it’s basically a webpage with some AJAX goodness grafted on. At the far right is a complete application – a desktop or client-server like application which just happens to be running inside a browser, but could just as easily be a Java WebStart app, or a Win32 app. Temkin pointed out that if all you’re trying to do is add some interactive elements to a mostly traditional web application, using an Ajax library will make more sense than an overall framework like OpenLaszlo (or, though he didn’t say it, Flex). If, however, you’re trying to create an entire application, a full on framework makes more sense.
Finally, he got to the demo of OpenLaszlo 4.0, codenamed Legals, which is the version capable of generating either AJAX (DHTML) or Flash (SWF). The demo application, LZPix, shows off identical functionality in a Flash interface and an AJAX inteface, both generated from the same LZX code.

This created lots of discussion around why Laszlo Systems originally focused on the Flash player as a “browser-based run-time engine,” and why they were now adding Ajax as an alternative. The crowd seemed rather slanted (no objective evidence here – just my impression) to the Flash side; so much so that the question quickly shifted to “Why wouldn’t you just output Flash” to which it wasn’t clear Temkin felt there were any real well-founded answers.
If you start from an acceptance of the notion that 97 or 98 percent of all browsers connecting to the internet “have Flash” this is an easier argument to understand. (Of course, that argument generally glosses over what *version* of Flash people have, but since OpenLaszlo outputs Flash 7 compatible swfs that may be less of an issue for them than for the Flex 2.0 users). The back button can be trapped here just as it can in a well-architected AJAX application, keyboard navigation can be provided, etc.

So why would anyone use AJAX as a runtime rather than the Flash Player?

  • HTML support within Flash (at least v7,v8) is awful. If the app will handle lots of display of html blocks, outputing AJAX makes more sense than wrapping that html inside Flash. If you’re mashing together things you control with HTML coming from other services, AJAX may be more effective.
  • Performance may be better for somethings. The LZPix demo is noticably faster in AJAX than in Flash – though this may be a quesiton of what particular functions your app uses most often. (Note that Adobe’s demos of Flash 9 player claim it is significantly faster than AJAX functions, but again they control the testbed).
  • Support for environments lacking the Flash player.
  • Accessibility – not that there aren’t challenges with Ajax and accessibility as well.

In the long run, perhaps the most interesting question is why OpenLaszlo is going to such lengths to provide an AJAX output if they feel Flash output is more effective. To that the obvious answer seems to be marketing – the more potential Laszlo users the better, and if AJAX output is the hottest thing since sliced bread, Laszlo had better have it.

What do you think? Is resistance to the Flash plugin just a carryover from the days of “skip intro” web sites and annoying, animated banner ads?

Finally, I should also mention that Amy Muntz went through some of the basics of the community, the contributors’ license, and they multiple ways people can get involved. It’s important to remember that this is, and has been since 2004, an open source platform and there are many opportunities to contribute to its evolution.


  1. The choice of runtime target is always going to be a matter of marketing, but, note that most of the ‘lengths’ we are going to to provide AJAX output will also permit us to output to other runtimes. We have at least two more in mind…

Comments are closed.