Revenge of the Zombie Thread ...
I am currently the owner/maintainer/code monkey behind a fairly
complex GWT application. It is primarily data driven, but there is
plenty of logic in the UI for role-based editing permissions,
visibility, and coordinating different components of the application.
It utilizes a centralized event bus and application model to keep
everything on the same page.
My experience with the widgets has been a pretty good one. The only
thing that was lacking, but has been improved to a significant degree,
was grids. With the new cell widgets, this is _almost_ no longer an
issue. Static headers and sorting are really the only remaining
things desired in these components.
One minor caveat was the inability to directly re-use our business
objects, as that project references DAOs (a horrible design decision,
mind you, but I am stuck with it) and those don't work so well in
JavaScript. We ended up writing a new business layer and translator
objects. Not a small undertaking, but not difficult either.
Also, client side calendar support sucks balls (to use a technical
term) right now. Workable, but not nice.
Overall, I've been pleasantly surprised with GWT. I normally despise
web development, so that statement has a bit of weight behind it. I
was able to apply more traditional Software Engineering principles and
design patterns to the application (to the dismay of the web guy I was
working with) and the environment felt very similar to developing a
standard java swing application. As long as Google supports it
(which, admittedly, is a bit of a worry), I will be happy to use it.
Probably. Well, I might be angry, but that likely wont be GWTs fault.
-Ben