OpenLaszlo Makes Full Blown AJAX Apps on Flash

The fact that Flash is commonly used for ads, and that those ads annoy everyone and cause many people to hate Flash, doesn't detract from the high quality user interfaces that you can build with it, if you use it for good instead of evil.

Since usability guru Jakob Nielson wrote Flash: 99% Bad in 2000, a lot has changed about Flash. He worked with Macromedia to improve Flash's usability, and he sells a report with 117 design guidelines for Flash usability. So yes, it is possible to develop usable applications in Flash.

OpenLaszlo is an open source language and set of tools for developing full fledged rich web applications, which are compiled into SWF files that run on the Flash player. Laszlo/Flash is presently much more capable of implementing high quality cross platform user interfaces than dynamic AJAX/HTML/SVG currently is.

Laszlo is a high level XML and JavaScript based programming language. It's independent of Flash in the same way that GCC is independent of the Intel instruction set and Windows runtime, because they both compile a higher level language, and can target other runtimes and instruction sets.

Currently Flash is the most practical, so that's what Laszlo supports initially, but it can be retargeted to other runtimes like SVG, XUL, Java or Avalon, once they grow up and mature. But right now Flash is the best way to go, because of its overwhelming installed base and consistency across multiple platforms.

The problem with SVG is that it's extremely spotty and inconsistent across the different browsers and plug-ins and cell phones that implement it. So the lowest common denominator is very very low indeed. Dynamic HTML has the same inconsistency problems but with much worse graphics, and it's that horrible inconsistency that forces cross-browser web applications to be so clumsy and hard to use -- because they must restrict themselves to the lowest common denominator. But Flash is consistent across all platforms, and it has high quality graphics.

I've written complex, rich interactive web based applications in both SVG and Laszlo, and I like them both. I've also used Microsoft's VML, which enabled animated vector graphics inline with html many years ago, and Dynamic HTML Behavior Controls, which work pretty well, but only in Explorer, so they're a dead end.

SVG is wonderful, but it's lost its steam: too little, too late. Adobe, once its main proponent, has totally forgotten about it, and they're quite unlikely to put any more effort into it, now that they've bought Macromedia. Batik development has been stalled, and it's slow because it's "100% Pure Java". SVG has some nice advantages over Flash, but it will never beat Flash's 98% penetration.

I'd love to see SVG get its shit together, but it's going to be a long time the way the companies that were once sponsoring it like Adobe, Canon and Kodak, have appearently given up and gone on to other things. I'd love for somebody to prove that I'm wrong, but Flash has kicked SVG's ass in the market.

Once there's a fast, stable, full featured, ubiquitious SVG renderer (like Firefox may someday support), it will make a lot of sense to target it with the Laszlo compiler. But SVG is a huge complex standard, and it will take a lot of work to completely implement it in Firefox.

But there's a much more interesting and efficient route than building everything including SVG and the kitchen sink into a web browser, and that's to factor out and develop a reusable open source Flash-compatible SWF player, that can be integrated into other programs like games and desktop applications, to implement rich user interfaces, flashy games, interactive tv overlays, etc, all without a web browser. Why, it could even be plugged into Firefox, to give it the ability to play Flash SWF files, without all the restrictions of Macromedia's proprietary Flash player (like a "stop" item on the menu, etc). How radical is that?

There's an open source project called gameswf, which is an open source library for rendering SWF movies, using 3D hardware APIs for rendering. I think gameswf would make a great target platform for Laszlo, once it matures. And I think it's a lot closer to maturity (and more useful outside of web browsing) than SVG in Firefox.

Laszlo and gameswf leverage the Flash installed base, authoring tools, and designer talent pool, for the purpose of developing interactive user interfaces and games.