Its been many years since I have truly been blown away by a new technology, but it happened today. Google’s GWT is a game changing technology. Open sourced by Google, GWT enables UI development in Java then compiling the application to compressed, optimized javascript to generate Web 2.0 native browser applications. The advantages over JavaScript are nothing less than staggering. Use your favorite Java IDE, with full support of the Java productivity advantages (code completion, type checking, class exploration, etc), and then debug it using your powerful Java debugger.
But wait there’s more: GWT includes a browser where you can run the application while setting debug breakpoints in your Java code. When you’re done, compile it to native javascript. GWT produces compacted javascript and just pulls in the library elements you need. This can save significantly on download time to the client. In addition, GWT virtually eliminates nasty memory leaks and completely hides cross-platform browser idiosyncrasies. If you need to include javascript, GWT includes JSNI to call out to native javascript where you should be able to include other widget libraries.
The power of this approach is clear. Using Java, developers can build much larger scale, more sophisticated applications that are easier to maintain than building in javascript. In fact, I’d go out on a limb to say that a large scale javascript application is almost certainly going to degenerate overtime into a complete maintenance nightmare. Further, this nightmare isn’t going to be obvious until you are midway through the dev cycle and its too late. Just as important: the productivity of the application developers will be far greater than writing in javascript with poor tool and debug support.
The strategy of this approach is also clear. By building a robust development platform that enables large scale web applications to be built, Google is further marginalizing the value of the desktop (Windows) and promoting web based applications. Clearly, this is important for internal Google application development, but is just as important as a market strategy. I am coming away from the conference very impressed with the quality of engineers at Google, and convinced finally that it will be possible to build sophisticated desktop replacing platform-agnostic applications via the web. GWT is the first technology I’ve really seen that truly makes this possible. Wow.