By James Cooley - July 10 2007 tags: pyjamas gwt

There is a provocative post with a Seam conspiracy theory questioning the motivation behind the creation of that Java web framework:

From all accounts Seam at its core is an elegant framework, the problem is though is that it solves the wrong problem. The problem it should be solving is how do I build web applications with Java quickly? (to which the obvious answer is, you don't :^)). Instead the problem it chooses to solve is how do I build web applications using J2EE5, including EJB3.0, JSF and a full blown App Server? If you sell Application Servers, or product consulting for Application Servers like JBoss does, then perhaps this latter problem does need a solution.
I don't know about Seam but the one I wonder most about is Google Web Toolkit. The tagline is "Build AJAX apps in the Java language" something a Rails advocate would find perplexing on many levels. I think the GWT guys wonder about this too - their comeback is that static analysis of Java makes possible the "single biggest have-to-see-it-to-believe-it feature" in the upcoming 1.4 release - the ImageBundle
Image bundles make it trivially easy to combine dozens of images into a single "image strip", collapsing what would have been dozens of HTTP requests into one: a single, permanently-cacheable image file.
It looks like someone has already implemented the ImageBundle feature for Django.

I don't have a conspiracy theory but it does look like GWT is something that bridges two (Java, JavaScript) of Google's four production programming languages (with C++ and Python). Another strange one from Google is Rails in JavaScript on the JVM.

What I find interesting about all this is Python to JavaScript translator based on GWT - pyjamas. Even the GWT KitchenSink example works on pyjamas. My guess it should be relatively easy to get GWT working on Ruby too. It would be interesting if the GWT widgets could be reimplemented in wxWindows, Tk and other GUI frameworks. A SummerOfCode pyjamas project proposes such a mapping in the reverse direction:

The proposed project involves taking an existing popular GUI toolkit for Python (wxPython, PyQt, PyGTK, Tk, etc) and doing the necessary work for the same API to be translated to HTML, CSS and Javascript. This would mean that certain pre-existing Python applications written using that toolkit could be translated into web applications with far less modification (and hopefully in some cases without any modification at all).

Whatever the motivation behind GWT it could possibly become a candidate cross-toolkit GUI wrapper for dynamic programming languages. Let's hope they don't stop solving that problem. :) Go GWT!

UPDATE: looks like someone is already working on RubyJS or GWT in Ruby.