Bruce Johnson, Google Web Toolkit
's tech lead, gave this presentation
at the Ajax Experience. In it, he discusses the rationale behind GWT and some of the ideas that went into building it, and what you can expect while using it.
Discussing why GWT came into being, Bruce offered this somewhat-fictitious first-person account:
The salespeople like it too, and that is sort of a double-edged sword, because before you know it, there... you can hear the situation in your head right there talking to the customer, "Oh yeah, sure, we have got a bunch of AJAX queries back in engineering. Whatever you want, we will do that feature. No problem." So, before you know it, your nice, clean, well-engineered development process has turned you into an AJAX shop.
So, what does that mean? Well, it means three months later, the salespeople come to you and say, "Oh, by the way, we have got a prospect, and they do not want to run Internet Explorer because of security concerns, so just go ahead and port that to Firefox, okay?" So, you do that and it was painful, and then three months later they come back and say, "Oh, and there is this other prospect, and they are a Mac shop. So, we need to support Safari, just kind of go and do that, okay?" And so before you know it, you are pulling your hair out trying to support all these different browsers, and you start to develop a hatred for browsers that you can only earn by trying to create a sophisticated AJAX application across all these different fire forms.
And obviously at this point you have to quit because you have created a huge ball of spaghetti that nobody should be required to maintain, and you do not want to touch it because it is too complex, and every time you breathe on it, it breaks. Besides you are an AJAX guru now, so why not just go get a higher paying job somewhere else, now that you can say you are an AJAX guru?
He also discusses the widget set that comes with GWT - why it's so plain.
We wanted to focus on making sure that all of the widgets that were there were solid, were fast and that sort of a thing. And we thought it is easy for other people to create their own widgets, so if you have got a specialized need to do more fancy things, it is easy to do that.
I think over time, as we see best practices and a really strong case for a particular, reasonable component that is a little richer, we will probably roll that into the core framework, but in general, the idea is not to try to be all things to all people, but just be really fast, really solid, and then give you the opportunity to create your own widgets easily.
He also demonstrates RPC and other features of GWT. It's an interesting presentation, and attemps to present most of GWT in a single video so that new users can see what's possible, and some experienced users (or prospective users) can see why they might consider switching to GWT.