What is OpenLaszlo, and What is it Good For?
SimHacker writes to share an article he wrote recently that tries to answer the question; What is OpenLaszlo, and What is it Good For? From the article: "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."
Its not edit, like YOU edit the XML, its edit as in have non-programmers edit data. You can use Lazlo to build web apps using SWF or DHTML for the view layer, and from my experience, Lazlo is makes quite a nifty RAD web platform to provide the view/edit layer for XML data (and under that, the database layer.) Others have pointed out that your Lazlo app can speak directly to java applications as well. Its an extremely thin platform to provide a really rich user experience on, with minimal re-inventing-the-wheel overhead.
... if I didn't have tools to make my job easier, and had to do everything in vi just to prove I could, I'd go crazy. I think programmers who are so self-contented with being able to do things the 'hard-core' way just because they can are seriously missing the point. I can do everything you can do, but the more important question is why would I want to? Sure, I still use vi from time to time, but only when it makes sense to do so. I'm open to anything from vi to Visual Studio, as long as it saves me time and makes it easier for me to make my knowledge more valuable to people around me.
> The results (at least, with me as the creator) support every browser that at least basically conforms to the W3 standards.
What do you want, a gold star? Why is this site full of programmers who discount new tools to add to the toolbox out of hand? Lazlo is pretty neat. I was a distributed web application programmer for a long time (FreeBSD, CORBA), now I write games for consoles like the PS2
"Old man yells at systemd"
You say that like it's a bad thing.
Dumbing down IT programming (and IT in general) has been a huge trend throughout the industry for years. I remember teaching Fortune 100 financial analysts Visual Basic and how to hook up to an Oracle stock database we built and they were on cloud nine. Later our secretaries setup and maintained our department's homepage - it was great and really represented a milestone in our company as well as a symbolic milestone within IT.
The future of IT is all about dumbing down so technology just becomes a part of everyday life - not some uber-geeky medium that takes years to master. Letting 'normal' folks develop and support websites moves content from an IT shop to the business folks where it belongs!
Lowering the entry barrier is always a good thing. When C compilers got good enough that applications could be written with only a minimum of assembly, people groaned about the same thing. There's a lot of hype right now, and a lot of interest, things will settle down.
All of these frameworks and libraries and doohickies come about for a simple reason: web application programming is too complicated. Given the relatively simple functionality being designed, coding an (even non-AJAX) webapp is a pain in the ass involving a mostly stateless system running 4 or 5 languages. The techniques for getting around this problem are relatively cookie cutter, and we really should no more be coding them by hand than we should be rolling our own printf every time we write a terminal utility.
There's more creativity and action in interactive online software than ever before, and it's nothing but a good thing.
In Capitalist America, bank robs you!
I'm the guy that uses vi because I could never guess how to make notepad do the simplest things one could imagine. Like indenting a function, showing code with syntax highlight or moving to the start of the next block.
Those things that every programmer does all the time and are so simple in vi and so impossible to do in notepad.
- I like the idea of using JavaServer Faces and renderkits, so you can easily migrate to different presentation technologies. Did you write directly to Lazlo's API or use a renderkit-type method? IBM has a Lazlo-JSF renderkit and that seems like the best way to go in that world.
Laszlo's code is not tied completely to an actual final renderpath... ie. while currently your only option is flash, as can be seen on their homepage, they have a working DHTML output that works as well... and the idea is that the code you write is independant of what output it finally has.
We code in Laszlo's mixture of XML and Javascript, and it compiles that to Flash for rendering. The final output may be in a browser, may be on a phone, or whatever.
- If you're writing to the API, how tied to it are you? With a rederkit, you can quickly make changes from a web-browser to a PDA, with the components taking care of the display issues. Is display migration an issue?
OK, so we're writing our own 'renderkit' if you will... we're using a modification of the Visual Proxy methodology and as such our final display objects can be changed and modified based on what it's rendering to. But we do use a number of the inbuilt Laszlo visual components (windows, buttons, sliders and the like)... but as they render in flash, anything you can run flash on, they'll run on.
- How is performance? I've always found the examples on OpenLazlo to be slow, limitted, and not seem to be very useful in the real world.
Performance is always something that we battle with, but we're trying to manipulate hundreds of linked visual objects onscreen at one time, with many calculations running in the background. You have to be tricky here and there, but you can do some amazing things. Basically, the limitations are not really a result of Laszlo as such, but the fact that you're running an app within a web browser, and you always have to be conscious of that. The more you use it though, the more you learn the tricks to get a great user experience... I would hate to be trying to do this in DHTML.
- How much time have you spend on the UI versus other techniques (e.g. DHTML/AJAX)? If longer with Lazlo, do your customers see your UI as value-added? Does it reduce your time from working on the core business-logic?
(First up... this is AJAX, very much so it's Asynchronous Javascript and XML)
We spend a fair amount of time on the UI, but only because the main thrust of our app is presenting a whole lot of data in a visual way that the users can interact with in different ways to any other applications in this space... so it's a large portion of the appeal of this app. That it's targetted at the Marketing teams of companies means that it should be easy to use and appealing to work with, hence the flash interface.
We have coded other PHP/Javascript/DB applications for clients (we have one being finished up at present), and while they're nice to work with etc. And do take less time to initially code they have a number of drawbacks:
* Maintenance is harder as writing directly for HTML output means trying to be cross-browser friendly, which results in solutions for each of the major browsers. Flash means it just works the same, full stop.
* It looks the same. While you can do some pretty great things with DHTML etc. It's all still pretty web browser looking, you're tied to that due to limitations of what you can do, and performance issues if you stray too far from the simple. Flash allows you to have nice transitions, animation of key things, fluid interface interactions etc. Plus it's can be very different visually if you so wish.
* As for the time we can spend on Business Logic vs Interface. As in this space we are coding in an OO language, and can create nice class seperation and encapsulation, we can completely split off our business logic from our presentation code. This makes ongoing maintenance of either side of that equation