Tuesday, September 16, 2008

GDD08: The Google Web Toolkit

I was a bit undecided about the last session, in the end I decided to go to the Google Web Toolkit: The Technical Advantage given by Sumit Chandel.

Sumit Chandel talking about GWT

What are the advantages of GWT? Firstly you get faster AJAX applications, it's faster than write-by-hand code, because the compiler takes care of cross-browser issues for you. You get free optimization, but of course that doesn't mean that you can throw general good programming practices out of the window, so in-efficient algorithms in GWT are still going to be in-efficient after optimization.

The next advantage is deferred binding. Why give the user more than they asked for? Users only download what they need to run your application. The compiler makes different bindings for your application at compile-time and choose the right one later.

Another advantage is that, with deferred binding in place you get to skip the browser quirks, you only need to code the abstraction of a given widget rather than having to handle them by hand.

Next, no more memory leaks. It's almost impossible to trace memory leaks in Javascript because there are so many ways to cause them. So provided you only code in GWT, this shouldn't happen to you.

GWT also means that your application gets history support, an implementation of the RSH protocol...

You also get code reuse though design patterns, something as a Perl person I'm not sure I believe in all that much. Although possibly that's just because I think loosely typed languages are a good idea and have never really understood Java programmer's obsession with the Gang of Four and patterns.

Another advantage is (supposedly?) faster development with IDE's and code support. Now here again, I'm not sure. I've never really been sold on development environments in general. I know good people who swear by them, and good people that think they're horrible. Perhaps I'm getting old?

Next advantage is proper testing of your AJAX application, and debugging with hosted mode. This is a definite advantage, testing AJAX applications, or Javascript code in the browser, is really hard.

Moving on, we're talking about what's new in GWT 1.5. Released at the end of August it includes Java 5 support, easier interoperability with JavaScript using JSO overlays, enhanced DOM class for full specification compliance and better application performance.

...and we're done.