@timothytoe: I've been using GWT for well over a year now, and have
gone through many stages. First was elation, I was a swing programmer
by trade that had only just started web development, and already hated
javascript/JSP's/cross browser stuff with a passion so GWT was right
up my alley.
A year on though I've come to see GWT as a specialist tool. Maybe I
can make a lame analogy? To me it's like a hammer drill. If you've
ever tried drilling through concrete/brick with an ordinary cordless
or corded drill, then you know it's damn hard. Sure you can do it, but
a hammer drill is the tool that makes it easy. So I see everything
from raw javascript to javascript wrappers like jquery etc like the
normal drills. They are awesome for small to medium jobs, that you're
not trying to do anything really amazing in. For these jobs it would
be silly to use a hammer drill, sure you can, but the overheads and
bulkiness of it make it impractical.
Without the analogy: GWT is a pain in the butt for small things. You
have to compile the damn thing, get all the XML in just the right
place, set up your transfer objects if you want to do RPC and let's
face it hosted mode (on the mac at least) is slow and clunky. Then
there's the fact that if you work with other people, you have to
explain all it's intricacies to them. Javascript goes with web
programming, so most people know it, JAVA doesn't necessarily, so the
chances are the rest of your team don't know it. Sure the refresh is
cool, but it doesn't hold a candle to a normal browser refresh for
standard javascripty stuff. For things that you just want to use
ordinary AJAX on you're better off going with something else. JQuery
seems to be the flavour of the month for that stuff. When you want to
do mind blowing AJAX though, GWT comes into it's own. For these kind
of jobs all the downsides don't seem that important at all, because
what you get is fast, small, cross browser javascript code with all
the benefits that a JAVA app has in maintenance over javascript.
That's where GWT shines, and where I think you'd have to be an idiot
not to use it. As the things you're trying to do get less complex
though, it becomes a moot point - in this case you ask yourself is the
overhead needed to work with GWT really needed for what I'm trying to
do.
Hope that's not too long and makes sense. I've seen people take up GWT
and build awful apps, apps that could have been much slicker had they
stuck with web technologies and not tried to turn their app into a
'desktop like' app. I've also seen people do some awesome stuff in
GWT, I mean truly awesome, stuff that you'd normally only be able to
pull off in flash, but better because it's not flash.
Rusty