I recently had the pleasure of upgrading from GWT 1.5.3 to GWT 2.0. The client has a variety of GWT applications–some standalone widgets that integrate into an existing site, an application written with GWT look and feel, and an application written with the GWT-EXT library.
The upgrade to GWT 2.0 was much less painful than I thought it would be.
Even code that was written for GWT 1.0 (the mortgage calculator, written back in 2006) compiled cleanly (well, plenty of warnings, but no loss of functionality). Classes that have been deprecated (some for good reason; hello HTTPRequest, I’m looking at you) have not disappeared. I’m not saying that the code I wrote for GWT 1.0 shouldn’t be rewritten, just that GWT hasn’t forced me to do so. Also, other than changing some switches to the command line compiler, the ant script used to compile the GWT modules didn’t have to change at all.
Hosted mode was a different story. I never really spent a ton of time in hosted (err, dev) mode, but had it working in that past. Now, I wanted to get it working fully because of the tremendous productivity gains possible–no minute long compile cycle to pull my attention away from my code. And the fact that you can run and debug in eclipse in more than just one browser is really attractive. Since I’d never really had it working fully, there wasn’t a lot of upgrade work; it was more like starting from the beginning. However, I was unable to use the internal jetty server. Again, my use case is atypical, with a lot of JSON and JSONP requests for data.
Big pluses for GWT 2.0, right off the bat:
- hosted/dev mode running in any browser
- support for IE8, so we could get rid of the UA meta tag
- code splitting
I haven’t yet looked into Speed Tracer or some of the updated widgets (I’d really love to toss the gwt-widgets lightbox we use in favor of the GWT standard PopupPanel). There’s also the tremendous benefit of being on the modern version of any platform–it is easier to get support in forums and in other venues.