I'd like to voice my thoughts on this, but first a fairly big caveat:
I am far from a GWT expert.
I'd dabbled with it for work-related purposes at my last job, but the
focus of what I worked on was definitely not GWT. (One of our products
was a SaaS app whose UI is built almost exclusively on GWT; our other
product also used GWT for admin-related UIs, which were embedded in a
thick-client app.) I'm familiar with a lot of the concepts, but I've
never had a need to build something ground-up with GWT; so perhaps a
lot of my experience with GWT+Roo has been tainted by the fact that
I'm still fairly new on the GWT learning curve. That being said, I
generally pride myself on learning quickly :)
I was looking for a way to jumpstart a project I've been working on
that would allow me to use GWT on the client to talk to a fairly
straightforward data back-end. I didn't want to spend bundles of time
writing tedious plumbing code, as I really wanted to get up and
running ASAP; Roo seemed perfect since it handles a lot of the
boilerplate codegen, etc. Indeed, it is ideal for this; I had a very
basic CRUD app up and running with my handful of entities in a matter
of minutes. (Incidentally - one of the details that I think is perhaps
often overlooked is the fact that you also get a nicely codegenned
build/test system; this is typically a lot of annoying plumbing as
well that Just Worked with Roo.) It was only after the first ten
minutes that I was exposed to the full brunt of the learning curve...
I too have found that any attempt to stray from the cookie-cutter CRUD
app requires a fair bit of self-investment in reading the generated
code, etc. One of the things I'm currently fighting is that the MVP
patterns that are generated by Roo do not quite match the GWT 2.1 docs
and what they outline for their Hello World app. In particular, the
bits around how activity mappers are implemented in Roo-generated code
are quite different from the docs. (Actually, a fair bit of thanks
goes to you, Amir! Your post on GWT 2.1 MVP with Gin addresses a lot
of my recent confusion around the subject: check out
https://groups.google.com/group/google-web-toolkit/browse_thread/thread/2ed199a42c500156
for those who haven't seen the post.) What I actually found to be more
sensible was to create a parallel ground-up GWT module/entrypoint,
while trying to reuse at least some of the generated code, where
possible. Largely, I've found that I cannot; the code is fairly
tightly-bound to the notion of a master/details-style CRUD interface;
while this would be a huge time saver for a number of different types
of apps, it's unfortunately of little value to me, at least as I've
been delving into it the past week or two.
However, none of that inherently bothers me; there *is* still a bit of
usable generated code (specifically the entity proxies and related
code); there are certainly a few annoying bugs I ran into (the issue
with adding new finders is something I ran into right away), but I was
able to at last get past these for now. My biggest concern about GWT
+Roo is the utter lack of documentation of the GWT-specific pieces as
they relate to a Roo-built app. I've basically had to try and take the
knowledge gained from the GWT docs (e.g., re: Activities/Places-style
MVP) and map it to the generated code, with an attempt to understand
what was generated and why. I think at least a basic discussion on
typical customizations (e.g., adding a finder) or limitations of the
generated code would be a must for docs to cover. I'd also like to see
a bit of analysis into the basic architecture of the generated UI
code; this would have helped me a lot (though perhaps this was just me
also trying to learn the GWT 2.1 patterns in conjunction with what Roo
generated). Additionally, I have also observed that a lot of the forum
posts about GWT+Roo tend to remain unanswered or have been thus far
identified as known issues (suggesting a lack of project maturity).
That being said - while I'm troubled by the paucity of docs - I am
well aware that this is all fairly bleeding-edge stuff, and I'm
posting my experiences simply to share them, and hardly to bash GWT or
Roo. I am very intrigued by the possibilities of what the toolkit
could offer. If nothing else, at least as it stands today, Roo+GWT
generates everything just shy of a usable UI for your code, leaving
you to implement those pieces yourself. This coupled with all the data-
binding goodness that now exists in GWT 2.1 I think can still make for
a powerful toolkit, and can make Roo+GWT quite successful.
So, in short - am I having better luck? I have to say, I'm afraid I'm
not :( However, I'm still excited by what's there - because what is
there *does* work, and that means it's already saved me time by not
having to re-invent boilerplate plumbing.
Sankalp