Google Web Toolkit (AJAX library)
When I first saw the news about the newly released Google’s Web Toolkit:
Google Web Toolkit (GWT) is a Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don’t speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatabilities between web browsers and platforms, and JavaScript’s lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.
GWT lets you avoid many of these headaches while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.
I thought to myself, since when is Google so into Java anyway? Friends of mine know that I’ve never been a big fan of Java mainly due to its There’s Only One Way To Do It philosophy that so starkly contrasts the motto of my favourite language - Perl. As much as I try to avoid it, I often find myself needing to use it (with non-trivial involvement) throughout the years (10!) Even in my current job at NeuStar, I would say Java has 80% mindshare in the company. These days, with advanced tools like Eclipse (not to mention age - mine, that is), my view on the language has certainly improved by heaps and bounds.
So, after reading more into the toolkit, I realized that, oh my God, that’s an excellent idea! Not only does it take care of browsers’ idiosyncracies (at least it claims to), it allows you to program Javascript in Java giving you compile-time checking, type-safety and reusable Ajax-aware widgets, debugging support (using your favourite IDE). Let’s face it, Javascript never had the features to support programming robust applications and differing levels of support by different browsers only makes it worse. It even purports that you can avoid the much-dreaded AJAX problem of breaking the browser back button!
Until now, I’ve been wary about going Ajax with anything I program mainly because I have to learn about browser quirks and inject ugly hacks. Moreover, it will invariably reverse the 80-20 rule; unless you are Ajax God, you will spend 80% of your time achieving 20% core functionality.
So, this is very good news and gives me the reason to incorporate some snazzy Ajax in my existing apps wherever it makes sense. Once I get some spare cycles, this will be the first I play with.