Google have released the latest version of the Google Web Toolkit under the Apache 2.0 License. The Google Web Toolkit is a toolkit for creating “AJAX” web applications by creating a Java application, then “compiling” it to JavaScript and HTML.
I've always been quite interested in the toolkit, but “compiling” Java to JavaScript always seemed like a novel but messy idea to me. However, after to listening to two podcast episodes by its creators, I've become more interested.
It seems that the choice of the Java language is purely based on the tools available to create applications with that particular language. The GWT is for creating cross-browser JavaScript and HTML user interfaces without having to worry about browser quirks, using existing powerful development tools. You can use any server-side language to generate the JavaScript & HTML once you know what needs generating, so GWT could easily be used in conjunction with PHP, Python et. al.
Something I particularly like is the philosophy of not forcing you down any particular design path, but supporting as many as possible. For example, if you happen to be using the Model View Controller design pattern, GWT would be brilliant for creating the “view” part, and you could use something else for the Model and Controller parts. Or you could not use Model View Controller at all. Also, you don't have to use the whole toolkit, you can use just parts of it, the components are designed to work independently of one another.
I'm still not sure that “AJAX” web applications are the best solution for software as a service in the long term, but they're certainly the best technology currently widely supported, even if you have to deal with browser quirks to ensure compatibility.