Most of the people posting comments here do not seem to have real experience bulding production applications with GWT, and base their opinions on other peoples blogs and runing a "hello world" app. It seems that the concensus is that devs use GWT because they are afraid of JS/CSS. This can't be further from the thruth - at leas in my experience. Over the course of the last three years, I watched, developed and managed a few projects that use GWT. The first one was a rewrite of Prototype/Scriptaculus app in GWT - this means that "afraid of JS/CSS" just does not apply here. The others were: a pretty complex admin tool - 100% Rich single app, and yet another app was a sophisticated single page contyent app embedded into a website (styled in such a way that you can't tell it was GWT). After my experiences, I can see that GWT has huge value, but for specific applicaitons. First, GWT apps are blazingly fast. The JS is highly optimized, and by default compatible across browsers. A large amount of code can be shared across server and client - as a result, it is testable with JUnit. Besides, since all code is Java, it is statically typed and verified by compiler, fleasing many runtime bugs - something you just do not have with JS. Any Java developer will feel comfortable with it after only a few hours, and development is really fast. Just putting together all the "plugins" and various JS libraries for some tasks takes a whole alot of time. I was using a jQuery on a recent project and all I needed was a friken modal box. I tried a few and all were pretty bad - one of them (will not name) even mangled jQuery itself (some functions stopped working). I screwed with this for at least two hours - two hours of my life that were just wasted! For something as simple as this... in GWT I would not even have to pause - this is a one minute task.
All of you who bash it, please stop doing this and develop at least one app that is not trivial, and then try to do the same in JS.
However, GWT is not an "all purpose" tool. I would use it on projects where I would not need SEO and were reacher experience is a preferred way of doing things.
The more complex the project - the more benefit you get out of GWT.
Unfortunately I cannot say the same thing about Spring. IMHO, Spring is the anathema that it promised to eliminate (EJB). In other words, Spring has become the EJB du jure. In most Java projects I was part of in the past few years, Spring was just a pain with little gain. The marriage of Spring and GWT is surprizing and disconcerning, I hope this just blows over. If Spring migrates to Clouds, we will be biting the dust for years to come. Every project where I did not use Spring turned out to be more elegant, simpler, easier to test and maintain (lighter too - fewer dependencies). I seriously do not understand the fact that you cannot rip Spring out of Java developers cold dead hands ...Spring is not the authoritative way to do DI, I hope more people would realize this.
cheers,
Igor