Grzegorz Kossakowski wrote:
Reinhard Poetz pisze:
I've started to look into Wicket because I'm not satisfied with what I've
used so far (cForms, JSF, Tapestry 4, Struts) when it comes to the
development of *rich client apps* in XHTML/CSS/JS. From what I've seen I'm
impressed but not fully convinced yet because there are two other appealing
approaches available: 1) GWT and 2) Ajax/REST.
GWT offers an even more appealing programming model than Wicket because you
don't have to deal with HTML at all, though I'm not sure if this is an
advantage or disadvantage. I'm also not sure how easy it is to change the
look'n'feel of a GWT app.
The Ajax/REST alternative (Daniel and Marc were thinking loud about such an
approach recently) is a third interessting option for me. Since I'm a fan
of ROA and many Ajax frameworks have made great progress for the last
years, it would be my first choice. The downside is the poor tool support
compared to the two others.
I don't know GWT so won't comment. When it comes to AJAX I'm sceptic...
One of the most important characteristic of REST is statelessness of the
server. It must be a client that takes burden of tracking state and flow of
application. "Rich" doesn't only mean flashy buttons and suggest-like
textboxes but most importantly rich reaction to the data coming from server.
Client must have rich enough set of capabilities to figure out what it has to
do next (like following links in documents obtained from server behind the
scene).
Are you sure that current state of things in AJAX world enables you to write
fully RESTful clients already? How about complicated flow handled by AJAX
application?
I can't give you a definitive answer (maybe Daniel or Marc have more
experiences) but most people implement the controller in Javascript. I've also
been thinking about making the controller a resource (in the sense of REST) but
this idea is kind of vague for the time being ...
Have you (or anyone else) considered using JavaFX for building rich clients
embedded into web page? This technology is in very early stages of shaping
but already looks interesting and Sun seems to take it seriously so we can
expect such badly needed improvements like quicker start up time of Java
applications in browser. There was quite significant blog-coverage when
JavaFX was announced and I think there is an interest in this technology in
Java community as whole. Anyone interested in playing with it?
IMHO, Ajax, even very successful, is just a transient technology that is
going to be marginalized by real RIA solution. There are three big players
out there: Adobe with its Apollo, Microsoft with Silverlight and recently Sun
crushed the party with its JavaFX. I'm not sure who is going to win but you
should notice that there is no Ajax on this list.
Technologies for RIA that run within browsers have been around for years - do
you remember, there was something called "Java applets" long time ago ;-) - but
I think that none of them will become the dominator for public internet
applications because nobody wants to rely on something which needs to be
installed by the user. If this would have been the case, everybody would write
his applications for Flash (Flex/OpenLaszlo) but from my experience that's not
the case (the exception are intranet applications but in that case you control
the environment ...)
In contrast, Ajax frameworks run in every modern browser (IE>=6, FF, Safari) and
modern Ajax frameworks (prototype, mootools, dojo, jQuery, etc.) are really
impressive.
--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}
web(log): http://www.poetz.cc
--------------------------------------------------------------------