« 200 Second Googleplex Tour | Main | Binding the Model to the View in GWT »
Monday
May112009

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
Cons:
  • 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

EmailEmail Article to Friend

Reader Comments (1)

Comet RPC Implementation:
http://screaming-penguin.com/node/7661

If you wanted push style comet, you can just back the iterator with a blocking queue instance.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>