incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leo Simons <>
Subject what wicket is (was: Re: [VOTE] Accept Wicket into the Incubator)
Date Fri, 25 Aug 2006 10:23:03 GMT

Basically wicket creates a session for every user and then attaches a java
object graph to that session, with parts shared between sessions. Then there
are some mechanisms for attaching "id"-ed objects in that graph to "id"-ed
elements in an HTML template, and rendering directions for the "merge" between
the template and the object graph. Basically you have java developers pretending
the web is like swing (eg stateful UI), web designers designing the "fluff"
around the "active UI" bits, and then various kinds of magic in the middle to
make that work.

Why, one might even say its a little bit like the google web toolkit, except
its also a little bit more "full stack" like ruby on rails, and fully open
source. The template language made me think of kid (you know the python one),
only its a lot simpler and doesn't allow embedding of source code.

Or like .net web development without ASP and visual basic.

Of course, once you have a java object graph with all your data in it, using
some kind of object persistence thing (probably using OR mapping) is the next
step towards not having to think about the web and just doing java development.

Wicket goes quite far that way; you don't even need to know how to write XML
files or even valid XHTML in order to use it. And making things "AJAX" is all
but transparent (since the request/response is hidden, making it into another
kind of request/response is not so difficult).

Its uber cool if you want to make java developers build web applications
quickly. Its not so cool if you want to use XSLT or similar stuff (use cocoon),
process 100s of megabytes of XML documents (use cocoon), or want some kind of
java-ish programming model which still keeps request/response somewhere in there
(use struts or a similar action-based framework), or want efficient memory use
scaling up to 1000s of concurrent users (in which case, don't put any state in
java objects and don't use any framework like any of these, in fact, anything
servlet-based kinda sucks automatically).

The project at the ASF that comes closest is tapestry, but I haven't ever fully
understood what tapestry actually is (I know it builds on hivemind which is
somewhat like excalibur/avalon/osgi automatically making it different from wicket
since wicket is not "IOC"), so I can't comment further.

Wicket *is* different. Whether this is the right way to do things is
debatable, but I would say now is not the right time for the incubator to start
having those kinds of debates. Various ASF members like working this way, are
working this way, and are backing this proposal. Trust darwinism.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message