The Google Web Toolkit

Published: May 21, 2006. Filed under: Frameworks, JavaScript.

So Google went and released something that people are calling an “AJAX toolkit” and, as so often happens whenever Google does something, the Internets are buzzing. But, in the long run, I don’t think this is going to be a game-changing move, and I think that should be pretty obvious to anyone who sits down and thinks about it.

The first question to ask about Google Web Toolkit is simple: who is it useful for? Obviously it’s useful for Google, but it looks an awful lot like it’s only really useful for a company like Google, and frankly the number of companies in the world that are like Google can be counted on one hand. And that’s a hand that’s had a finger or two amputated.

To see why, we need to ask a second question: what is Google Web Toolkit? The answer: it’s a framework for writing Java applications and automagically turning them into Java applications which have web interfaces. Oh, and those web interfaces have lots of magical automatic “AJAX” in them. It abstracts away the need to do front-end web development, and puts the entire application in the hands of the back-end programmers.

This also tells us, in an instant, what Google Web Toolkit is not:

But getting back to why it’s only useful for a company like Google, consider that point about putting everything in the hands of the back-end programmers. This is useful for Google because they make a point of hiring the most mind-bogglingly brilliant back-end programmers they can find, but that’s an extremely unusual thing in the industry; there are only a handful of companies in the world which have both the sense and the reputation to be able to cherry-pick Ph.Ds and garage-startup genuises.

A third question then occurs: even though GWT is probably only really useful to a company like Google, it’s probably going to end up used by a lot of companies that aren’t like Google. Why will they do this? For two reasons:

  1. Because it’s pure Java.
  2. Because it comes from Google.

The first bit, the fact that it’s Java, is going to appeal to an awful lot of companies because an awful lot of companies already use Java; there’s an odd feedback loop where programmers learn Java because it’ll get them hired, and companies hire Java programmers because there are lots of them and they tend to be interchangeable. So when upper management demands that the company’s web apps start using “that AJAX thing”, the hiring decisions will be easy; in fact, odds are that one or two of the Java programmers already on staff will just be told to learn GWT on top of their existing duties, and their manager will get a bonus for delivering the “AJAX” without having to increase his budget.

The second bit is going to appeal to a lot of companies because they’ll hear the words “Google uses it” and get dollar signs in their eyes, without realizing that the billions and billions of dollars in Google’s bank account have absolutely nothing to do with the particular types of technologies they use, and absolutely everything to do with the particular types of people they hire and the way they treat those people.

Which answers yet another question: what sort of quality should we expect in the applications which will come out of the companies that will inevitably use GWT? Average, tending toward not-so-great; GWT isn’t magically going to change the processes which cause average companies to produce average applications. And, really, the low quality of output from the average programming shop is a process problem. If they all went out and hired a bunch of creative, frighteningly smart people and gave those same people the latitude to develop interesting things, then they’d get the same sorts of results Google does (and keep in mind that even Google has a fairly low success rate with its products; only a few — search, ads and mail — have really taken off). But so long as they don’t, the quality of the output is going to stay exactly the same.

Which leads back to what I said at the outset: Google Web Toolkit isn’t a game changer. If you’re looking around for something that will help your company develop truly interesting and useful web applications, you’d be better off looking elsewhere.