Monday, July 7, 2008

Google's GWT, harder than ever to ignore

Google's GWT platform has had a release candidate for version 1.5 available for a little while. I took some time to review it this weekend to see what it offered my company's product development and to understand when we should switch over. I was nothing short of amazed at what the 1.5 version will bring to the developer.

Let me start out by saying 1.5 isn't bringing some wonderful new set of widgets to the table, that's not what GWT is about. There is an army of folks out there creating widget libraries on top of GWT (see resource links below). What the GWT is about is changing the face of web development, bringing an engineering mindset to the client development and creating the best platform for doing that and oh, by the way, not sacrificing on performance or design. Wow!

So back to GWT 1.5. There are key improvements here that are going to give GWT even broader appeal.

  1. Performance, performance, performance - the GWT team make very convincing argument (with proof statements) that handcoded javascript is unlikely to be faster and for larger projects it will be slower that GWT
  2. Java 5 syntax - programmer sanity (let me tell you how much it sucks to put on the 1.4 waders to write code for GWT, this is a biggie)
  3. Overlay mapping - this capabiliy is key to integrating external components written in javascript, any javascript/json library/object can now be mapped directly to java for the GWT with no performance penalty. You get the all the bennies and no hang over
  4. Real DOM model - full implementation of the browser DOM model gives you performance, clarity and great performance due to compiler optimizations and some insulation from cross browser stupidity
  5. Improved style control - together with the DOM capabilities, no sacrificing on design.
I took some time this weekend to see what would break in my own application (google says it's backward compatible but...) and only a handful of things broke; a couple of definitions in Mapitz GMap2 library and some now (severly) deprecated uses of creating new JSObjects Porting looks like maybe a day's worth of work.

The GWT is already making creating rich applications in a browser easy to do. This next version is only going to give the GWT a lock on this. Benefits over other platforms like Flex or silverlight are that it is open and adaptable. So if you want to use the Yahoo User Interface (YUI) in your GWT application, go ahead. You a Spring Hibernate fanboy it works great (note this is what my team at Abaq.us use) There is already a very large community forming
. The last time I checked there were north of 13K folks signed up on the GWT users forum, and there are already a large number of tools and libraries for GWT you can use.

This is a vital community!
A few links to check out:

GWT resources can be found at http://code.google.com