OpenLaszlo is an open source platform for developing user friendly web based applications, which work identically across all popular browsers and platforms (Windows, Mac, Linux, IE, Firefox, Safari, etc). It's ideal for presenting and editing raw XML data generated by PHP and other web services.
OpenLaszlo supports a rich graphics model with scalable vectors, bitmaps, movies, animation, transparency, fonts, audio, streaming media, reusable components, user interface widgets, control panels, property sheets, keyboard navigation, browser "back button" navigation, as well as advanced WYSIWYG text and graphical editing tools. In other words, OpenLaszlo is the velvet glove for the iron fist of PHP. What can OpenLaszlo do?
Here's an interesting audio interview with Dave Temkin, CTO of Laszlo Systems. They cover some important topics and Dave makes some great points that explain why OpenLaszlo is so exciting.
They discuss why Laszlo was open sourced, why open source software is so important, what the ideas behind Laszlo's design are, why Laszlo uses Flash, how it actually operates at a higher level independent of Flash, what the technologies that led to the Laszlo application language were, how Laszlo integrates open standard technologies, how it relates to AJAX and DHTML, which companies and applications use Laszlo, which software development tools support Laszlo, how the user base is growing now that it's open source, what kinds of reusable components and widgets are Laszlo Systems developing, what opportunities exist for web developers and user interface designers, and where Laszlo is headed in the future.
There's a lot I like about OpenLaszlo. It has all of the advantages and none of the problems of the NeWS Window System, which was a technological success that failed because it was proprietary. I was daydreaming about having a system like Laszlo in 1998, and while I was intrigued by Flash, I avoided it for all the obvious reasons. But nothing can hold a candle to Flash's market penetration, graphical quality, and consistency across platforms.
The important thing about OpenLaszlo, which will ensure its long term success, is that it doesn't lock you into the Flash player, even though it takes advantage of Flash as a standard ubiquitous runtime. Laszlo is abstract from the Flash player, and it will output to other platforms over time as they mature, such as DHTML, Java and .NET.
The interview is an audio "podcast," and there's no text transcript available, but here's the blurb about it:
David plans to leverage rich client environments other than Flash Player, such as DHTML, Java and .Net and shares his about thoughts about Eclipse, the recent Adobe/Macromedia merger, refactoring the desktop user interface and calendar interoperability. He also explains why Flash is not an ideal platform for mobile devies and desktop applications and compares Laszlo Blog Boxes to widgets in Apple's Dashboard and Yahoo's Konfabulator.
This is a message I sent to Paul Haberli a several years ago, brainstorming some ideas for an XML based scripting language. More recently, after discovering OpenLaszlo, I ran across this email, and it made me realize why I was so happy to find Laszlo, which embodies many of these ideas!
From: Hopkins, Don [mailto:Hopkins, Don]
Sent: Sunday, November 08, 1998 3:06 AM
Subject: RE: http://reality.sgi.com/grafica/motion/
I think something cool to do, would be to apply XML to describing user interface layouts and behavior and constraints.
It would have to describe the interfaces and connections between the components, as well as the graphical layout and properties.
It should have a general purpose message passing model that is independant of any scripting language, and you could also embed scripts in the xml in different language like is currently done with html.
But you should be able to do a lot without even resorting to scripts, just hooking components together.
And then if course I want to design a visual programming language in XML.
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.
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.
AJAX is a new buzzword for old (but not bad) ideas.
Don't take this as anti-AJAX. That kind of architecture is great, but it's the notion that the new AJAX buzzword describes new ideas that annoys me.
Of course Microsoft has been supporting it since the 90's, but it goes back a lot further than that.
For a long time, I've been evangelizing and more importantly implementing interactive applications that run efficiently over thin wire (dial-up modems, ISDN, early internet before it was fast, etc), which are locally interactive and efficient because there's a programming language on each side of the connection that implements custom application specific protocols and provides immediate feedback without requiring network round trips.
Before he made Java, James Gosling wrote the NeWS Window System.
I did a lot of work with NeWS, as a user interface researcher, commercial product developer, and a gui toolkit engineer for Sun, implementing distributed applications as well as user interface widgets and gui construction tools.
I've programmed NeWS to implement many user interface widgets (pie menus, tabbed windows, terminal emulators, graphics editors), gui toolkits (Suns TNT Open Look Toolkit, Arthur van Hoff's HyperLook user interface construction tool), and applications (UniPress and Gnu Emacs text editor interfaces, Ben Shneiderman's HyperTIES hypermedia browser, PSIBER visual PostScript programming and debugging environment, PizzaTool for customizing and ordering pizza via FAX, a cellular automata lab, a port of Maxis's SimCity), and lots of other stuff.
Now I develop distributed applications with OpenLaszlo, which embodies all the great qualities of AJAX without the horrible compatibility problems and shitty graphics. Macromedia though OpenLaszlo was such a great idea that they made a proprietary knock-off called Flex, for which they charge $12,000 per CPU. The future of Laszlo is secure since it's free software with an open source license, but Flex is in Flux since Adobe is buying Macromedia.
I'm quite happy to have found OpenLaszlo, since it's got all the advantages of NeWS, it runs beautifully and consistently on all platforms, the people developing it really understand what they're doing, and most importantly it's open source. NeWS was a technological success, but a commercial failure, because Sun refused to release it like X11. But OpenLaszlo applications really do run everywhere consistently, support XML standards and rich dynamic graphics vastly superior to anything you can do in DTHML, and they're great fun to develop.
In the Slashdot discussion of "The Current State of Ajax", Henry Minsky posts:
OpenLaszlo is more portable (Score:3, Informative)
by hqm (49964) on Friday August 19, @03:23PM (#13358719)
OpenLaszlo is an open-source tool for building Rich Internet Apps that compiles them down to Flash applications. The advantage is that the graphics are smooth, it runs pixel-for-pixel identical in virtually any browser, no cross-platform incompatibilities.
An OpenLaszlo app behaves essentially like an Ajax app; data requests are made for XML data (or media) in the background, and the user interface is presented as a seamless window-system style desktop app.
Garnet is an advanced user interface development environment written in Common Lisp, developed by Brad Meyers (the author of the article). I worked for Brad on the Garnet project at the CMU CS department back in 1992-3.
One thing I like about Brad Meyers is that he's a strong programmer, as well as an excellent researcher, so he had a first-hand understanding of the real-world issues involved in programming languages and user interface architecture, unlike many academics who talk a lot of theory but never get their hands dirty. Brad Meyers understands where the rubber hits the road, and how important it is to have good tires.
At the time I worked on it, Garnet didn't have pretty graphics like Flash, but the underlying programming system had some advanced features that are sorely lacking from most modern user interface development environments.
Laszlo is an modern open source GUI programming system, with many of Garnet's advanced "natural programming" features like prototypes and constraints. Laszlo currently uses Flash as its virtual machine, but it's a much higher level way to program dynamic interactive web based applications, without using the proprietary Flash authoring tool.
Flex is outrageously priced, and its future is in Flux now that Adobe is going to buy Macromedia.
Flex was inspired by Laszlo (in spite of the fact that Tim O'Reilly is confused and mistakenly thinks it's the other way around).
If you like Laszlo and want to learn more, then you can download the entire Laszlo source code, documentation and examples for free, and start developing your own Laszlo applications, without paying any exhorbinant licensing fees like Flex requires (on the order of $12,000 per server).
Anyone who tries to tell you that AJAX is a "new approach to web applications" is just rebranding old technology and hyping buzzwords, not engineering software in the real world. Because of browser and DHTML incompatibilities and limitiations, AJAX is like cocaine: it seems glamorous until you actually start using it, then the unintended consequences totally fuck you up.
Special Hazard Precautions for AJAX:
INGESTION: NAUSEA, VOMITING, AND DIARRHEA. EYES: EYE IRRITANT UPON DIRECT CONTACT. SKIN: MAY CAUSE SKIN IRRITATION UPON PROLONGED CONTACT. INHALATION: NONE UNDER NORMAL USE. PROLONGED INHALATION BY UNORTHODOX USE (NON-WETTED) OR ABUSE (SNIFFING) COULD PRODUCE LUNG DISEASE (SILICOSIS). N/K
Emergency/First Aid Proc: INGEST: IF EATEN/DRUNK--YOU MAY THROW UP. DRINK SIPS OF WATER/MILK. IF VOMIT CONTINUES, CALL POISON CTR/DR. EYES: IRRIT. FLUSH W/WATER 15 MIN. IF IRRIT PERSISTS, CALL POISON CTR/DR. SKIN: IRRIT. REMOVE WET CLOTHES. FLUSH W/WARM WATER 15 MIN. IF IRRIT PERSISTS, CALL DR/POISON CTR. INHAL: IF INHALED, MAY COUGH. TAKE SLOW DEEP BREATHS OF FRESH AIR, SIP WATER. IF COUGH PERSISTS, CALL DR/POISON CTR.
Here's the entire Ajax information sheet, with more warnings and hazard precautions.