Blogs : Latest entries
A month and a half ago I started doing a small project in my off hours which just had enough functionalities to cover a bit of ground in Laszlo. I had been longing for a good excuse to try out this RIA (Rich Internet Application) technology for quite a while, so I took the chance when it presented itself. This was supposed to take only a couple of days of development and I even though I had never used Laszlo before, I was quite confident that after my experience with GUI technologies like DHTML, Swing, QT and Gtk I would be able to get started with Laszlo very quickly. This was also partly based on the collection of documentation that is to be found on the Laszlo website and on the amazing demo applications that you can try out there.
The thing that bothered me most initially, was the lack of tool support. Even though there's an Eclipse plugin that allows for quick testing, writing the application lacks all of the wonderful IDE features that I have grown used to when doing Java development. Anyway, I knew I just had to get over that and put it behind me.
But wait, the ordeal is not over yet, I can accept that software has bugs, but this is the end-of-line release (2.2.1) of a production version of a product that sold for $20.000 in licensing before. You expect it to be rock-solid.
However I bumped into bugs and missing features like these:
These are just the ones I remember most vividly, I encountered many others.
Sadly, even if all these issues are solved there's still one major problem that will not go away because it's part of the whole architectural design. You build a fully functional client-side tier that interacts with a server-side tier for persistent data storage, centralized logic, etc etc. Normally, you would let the client-side act as a controller and a view: the controller sends a certain message to the server, which interpretes it, returns the result and the client-side renders a view of the new state. While this model is technically sound, it's totally not user-friendly. The slight delays (200ms-900ms) that are experienced by network latency and all the processing, makes the application feel slow and very displeasant to use.
The only way to make it usable, is to write the same logic in the client-side tier as in the server-side tier. So, you update your view early according to the operation that needs to be performed, send the message to the server, perform the operation for real in the correct tier, send back the result, and instead of rendering the result you check if it is what you expect.
This forces you to write code twice, performing the same operation in two different tiers, in two different technologies, each with their problems, gotchas, etc etc ... needless to say that your productivity drops dramatically. I don't even dare to think about having to maintain changes to the application either, gradually updating things on both fronts ... eeek!
It's a shame, I really had huge expectations about Laszlo and even tried to sell it to a customer. I'm glad that project was cancelled or I would be in deep trouble.
In fact, I dropped my blog at http://uwyn.com/blog and setup the latest Elephant snapshot on http://rifers.org/blogs. Several other RIFE developers and users have registered too and will start blogging on there also.
I hope this is the start of a thriving blogging community .