Player Hater

* - *
|

I found this reaction to Laszlo interesting.

This is clearly a reasonably nuanced criticism, and I'm always
interested to hear about what people make of the work we've done. If
you've read the post, then you probably know that this fellow didn't
think much of it, and that there are at least a few others out there
who agree with him.

I have to admit that I'm sympathetic to many of the points that the
post makes. They're valid, and no one is more aware of the
shortcomings of the product than those of us who are closest to it.
That said, I can't help but argue the opposite side :)

The post makes two main points about Laszlo. The first is that
Laszlo has bugs and missing features. The second is that the
architecture of a Laszlo app is different from that of a
conventional server-side application.

The first point must be conceded. There are a lot of bugs in Laszlo.
That said, there are a lot of bugs and missing features in other
software that's become very popular. Laszlo is a fairly complicated
system -- think of it like an OS for web-based applications. As
such, I think it's surprisingly correct and complete. The post
evaluates the 2.x version of Laszlo's product, and some of the
issues mentioned are actually addressed by Laszlo 3.x. That said,
doesn't everyone remember how horrible it was to code for Windows
3.0? Still, it provided utility and allowed developers to create
graphical user interfaces more quickly, and it caught on despite
some of the glaring problems with its APIs and component set.

So sure, some higher level concepts such as complex drag/drop
management and data transaction rollback are not built into
the platform or the core component set. What makes Laszlo
interesting to me is that it's so easy to write this stuff. When my
group, Laszlo Studios, starts a new development
project, we often begin with objects that provide this kind of
functionality. What's cool is that they're so simple that we
can quickly build and customize these pieces for each individual
solution.

The other thing that's cool is that the product is
open source
. People can write these things and contribute them
back to the community. Our hope is that passionate and slightly
irritated people like this poster will just go out fix some of the
bugs and create some of the missing features. There's a lot
of work to do, and we're expecting that there are a lot of people
out there who want to help
us do it.

As for the second point, that extra work must done to implement some
features on both the server and the client for a Laszlo app, I think
that there is limited truth to this assertion. The fact is that we develop most of our Laszlo applications in less time than it takes to do a similar Java/DHTML app. I have seen that developers run into problems when they don't fully make the switch to thinking about the client as a fully formed MVC environment, and of the server only as a data and business logic access layer.

I can see how people may have gotten the wrong impression. This
article
about a different architecture for Laszlo apps contains
some scary looking architecture diagrams. I have tried to show that
in practice the backends
for these apps are fairly simple
. I also think that the growing
consensus on XML-REST
being the best way to provide these
backends supports this simple model of client/server development.

I'm sure that some people will be deterred by cricism like this. My
hope is that a lot of other people will be inspired by all of the
opportunites there are to evolve the only free, open platform for
next generation web applications.

Comments

Hi Adam,

thanks for answering to my blog post. Here are my answers to yours ;-)

> There are a lot of bugs in Laszlo.

Yes, but it is a 2.2.1 version which sold for pretty hefty license costs before. That gives people high expectiations. Basic things like the POST message corruption are experience very badly. It's such a core feature that one immediately wonders about the viability and stability of the platform as a whole.

> That said, doesn't everyone remember how horrible it was to code for Windows 3.0?

Well, we're long past Windows 3.0, the standard and expectations are much higher now ;-)

> So sure, some higher level concepts such as complex drag/drop management and data transaction rollback are not built into the platform or the core component set.

Again, they seem to me like very basic features which should be part of the core framework. Together with other problems (which are currently being addressed, but are not fixed in 2.2) like internationalization, leaves a bad taste in a newcomer's mouth.

> What's cool is that they're so simple that we can quickly build and customize these pieces for each individual solution.

Well they are actually broken. When use drag & drop states, the mouse events are only captured by one item and none of the others receive notifications anymore. The only thing to do this is hooking in the global mouse event dispatcher and handle it yourself, which isn't simple anymore. Also, refreshing data-bound elements just doesn't seem possible to do easily. The only solution I could find is add a refresh method to each item myself and call those manually. Nobody on the forums could give me a good solution though, so I just made up a solution which I thought was best.

> The other thing that's cool is that the product is open source.

Yes, that's cool, if it weren't I would have been totally stuck, since looking at some of the core code helped me out in some occasions. Don't think however that being open-source will magically gain you developers, you'll have to work hard before people will be incited to devote work to your platform and give up the rights to their contributions.

> I have seen that developers run into problems when they don't fully make the switch to thinking about the client as a fully formed MVC environment

I did the switch, no problem, and I don't find the architecture complex to uderstand at all (it's pretty basic actually). The point is that you do have to develop logic several times. For instance, if you want to reorder items in a list through drag & drop, you have to modify the DOM structure and the view children in Laszlo AND you have to update your database data on the server. That is twice the effort! Now the difficulty to updating the server-side is of course related to the actual technology that you're using there, in my case nothing was much work at all ;-)

Best regards,

Geert

Adam,

Typo: I think you meant

Playa Hata

Other than that I agree with everything you said.

jrs

|
* * *