Google releases AJAX toolkit
Following on the footsteps of the formation of the Open Ajax initiative by the main corporate backers of Ajax, last February, Google has just released a Java based Ajax framework, leveraging at last their early adoption of the technology in Gmail and Google Maps.
The Google Web Toolkit SDK (GWT SDK for short) is based on a number of mainstay opensource tools for Java and Javascript development, such as Mozilla Rhino, Eclipse SWT and Apache Tomcat, and it’s licensing scheme is a mixed bag of the opensource and the proprietary, typical of the Google Way: the GWT Java class libraries and third party software are distributed under open source licenses (Apache License v. 2.0, Mozilla Public License v. 1.1 and Eclipse CPL v. 1.0) , while the GWT Java-to-JavaScript compiler and hosted web browser are shipped binary-only and subject to a complicated “terms and conditions” scheme. Excerpt:
Except for distributions for internal business and/or personal use to your employees or contractors in compliance with these Terms and Conditions, you may not distribute Google Web Toolkit Development Tools or any services or software associated with or derived from them, or modify, copy, license, or create derivative works from Google Web Toolkit Development Tools, unless you obtain Google’s written permission in advance.[..]
Once you have obtained Google’s permission, you may make copies of Google Web Toolkit Development Tools and distribute such copies to others provided that any such recipient has had an opportunity to review and agree to be bound by these Terms and Conditions. If others to whom you’d like to distribute Google Web Toolkit Development Tools do not have this opportunity to review and agree to these Terms and Conditions but you would still like to distribute copies to them, you may do so provided that you have the legal right to bind each of those third parties to these Terms and Conditions. If you do not have this right and the recipients do not have an opportunity to review and agree to these Terms and Conditions, you may not distribute Google Web Toolkit Development Tools to them.[..]
You agree not to (and agree not to allow third parties to) modify, adapt, translate, prepare derivative works from, decompile, reverse engineer, disassemble or otherwise attempt to derive source code from the Google Web Toolkit Development Tools, or to extract significant portions of Google Web Toolkit Development Tools files for use in other applications.
How it works is, you write your front end in Java and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML. There’s a binary bundle for Windows and a tarball for Linux, both containing some fairly sparse class reference documentation and several example apps, as well as a getting started guide (featuring instructions for using GWT with Eclipse; joy!).
Google had previously made available two key components of Google Maps, it’s most celebrated Ajax app: an XSLT library to render XML in the browser and the Google Maps API, a web service that allows programs to extract map data. Google Maps mashups have since been making a killing with both the mobile / GIS geek culture and the cool web crowd. However, the GWT SDK release looks like a more serious attempt at cornering developer mindshare in an emerging defacto standard than earlier Google Code offerings. Ajax frameworks and toolkits have been sprouting left and right for more than a year now (even Eclipse.org has jumped on the bandwagon with it’s recent announcement of the ATF project), but Google’s SDK can still claim a dominant position in the market; judging from the company’s impeccable timing in announcing previous projects, the right time to unveil an “opensource-friendly” Ajax framework is probably now. Ruby on Rails, the other hotter-than-lava buzzword on the web development market today (Danny O’Brien: “first they ignore you, then you win”) typically also implements Ajax.
Of course, Deus ex Google or not, the hard underlying realities of GUI programming still apply. Weiqi Gao muses:
Oh the buzz. Oh the excitement. Oh the AJaX Gods has released their secret sauce with an Apache license.[..]
Now that developing an AJaX application is really the same thing as developing a GUI application, I want to draw your attention to what Eric Burke said 776 days ago:
GUI Programming is Hard: Let me qualify what I said in the first paragraph. Creating a bad GUI is really, really easy. Creating a “good” GUI is really, really hard.
Personally, I think that the coming convergence of development paradigms is a Good Thing (beside the need for fundamental diversity in the software ecosystem), but that remains to be seen.
Update (20/5, 21:30): ZDnet’s resident blogger, David Berlind draws an interesting parallel between GWT and a new skunkworks project by Sun:
Sun turns Javascript into Java. Google turns Java into Javascript.
Phobos is about how developers that work in languages other than Java will be able to program a Java Runtime Environment (JRE) with those non-Java languages.[..] in the big picture, Phobos, which is about scripting server side Java with Javascript is very much about the company’s willingness to move to more of a dynamic language model [..] So, whereas Sun’s Phobos allows developers to run the Java platform with Javascript, Google’s Web TookKit allows developers to run the Javascript platform with Java. What were Google’s motivations? Not too different from Sun’s. In supporting Javascript on the server side, Sun saw the convenience of giving developers programmable access to both ends of the pipe with one language. Plus, giving Javascript and AJAX programmers access to the Java Runtime Environment is a way of exposing the functionality of the JRE to a new class of programmers.
As a side effect, people will now probably tend to confuse Java with Javascript even more than they did before.
References:
- AJAX Progress and Challenges (ITConversations panel, 1/3/06)
- Hacking Maps with the Google Maps API (XML.com, 10/8/05)
- Will AJAX help Google clean up? (CNet, 17/3/05)
- HOW-TO: Make your own annotated multimedia Google map (Engadget, 8/3/05)
- Ajax: A New Approach to Web Applications (Adaptive Path, 18/2/05) — the article that started it all
- script.aculo.us, Dojo, Rico, Prototype: more opensource Ajax goodness
- OpenAjax blog
- AjaxPatterns
- Cool Google Maps
- Google Maps Mania
- My del.icio.us links on Ajax
Tags: AJAX+Google, AJAX, Google


