GWT Pros and Cons

Pros:
- no need to learn JavaScript (yay!)
- you get the fast productivity of Java => resulting in a faster and more optimized JavaScript than what you would have written by hand
- no need to worry about browser quirks
- using statically typed language (Java) to develop the client-side of the app allows to catch various problems even before the code is compiled (tools, IDEs, static analysis tools are available)
- debugging tools like any other Java app (can set breakpoints and debug the app in hosted mode)
- sharing the same language between the client and server (ability to use a shared Java package)
- hosted mode (you can make changes in Java on the fly and just hit "refresh" in the hosted mode browser)
- generics in GWT 1.5 (better static type checking on the client part of the app)
- DOM abstraction => code in one language and compile properly for any browser
- history support
- open source => many free widgets
- only a subset of JRE available to use on the client side (translatable to JavaScript using GWT compiler)
- the concept of modules can get very confusing
- web indexing of Javascript is difficult, often developers need to create a HTML-only version of the app just to allow search engines to index it => hard to maintain, pain to write
- hard to the use a wider range of browsers for testing
- can not edit CSS while in hosted mode
- does not offer RPC mechanism using Comet