Matt Raible has been building web applications for most of his adult life. He started tinkering with the web before Netscape 1.0 was even released. For the last 16 years, Matt has helped companies adopt open source technologies (Spring, Hibernate, Apache, Struts, Tapestry, Grails) and use them effectively. Matt has been a speaker at many conferences worldwide, including Devoxx, Jfokus, ÜberConf, No Fluff Just Stuff, and a host of others. Matt is a DZone MVB and is not an employee of DZone and has posted 149 posts at DZone. You can read more from them at their website. View Full User Profile

GWT Tatami: Dojo Integration for GWT

  • submit to reddit

This morning, I learned about GWT Tatami from If you're using or interested in GWT, I'd highly suggest you subscribe to this blog. First of all, I think it's interesting that someone has done the seemingly hard work of porting GWT's philosophy to another Ajax Framework. As far as I know, this involves rewriting many of GWT's classes and their "native" methods to contain the library's JavaScript instead of the default ones that ship with GWT. GWT-Ext and MyGWT do something similar for Ext JS.

Back in September, I asked Sanjiv Jivan (the author of GWT-Ext) what the difference was between his project and MyGWT. His response:

GWT-Ext basically wraps the Ext JS framework with an API which presently maps closely to the Ext JS API, ofcourse with Java constructs like listeners, constants, interfaces and other Java'esque patterns. GWT allows you to make JS calls which is what GWT-Ext does, however its not as simple as it sounds to implement and GWT-Ext does some pretty neat stuff under the hoods with callbacks and other stuff but its all transparent (and risk free) to the end user who just sees a Java API to the Ext JS library in a way that its usage is just like standard GWT API's. (for example GWT-Ext Widgets extends the GWT Widget base class, while rendering Ext widgets and exposing its API's).

MyGWT is written by a user who has examined / reverse engineer Ext JS code to an extent and is trying to rewrite it using GWT Java constructs, without any of Ext's javascript. Being all Java is appealing to some users at first glance, however there's more to it once you dig a little deeper. There's nothing inherent with writing GWT widgets and API's in Java that makes it necessarily faster, more robust or cross browser compliant. GWT does have its own event manager and dispatcher which helps avoid introducing event leaks, but that's it.. you can run into the very same display issues and cross browser incompatibilities trying to write widget code in Javascript or using GWT's Java API's.

I wonder which technique Tatami uses? Furthermore, I think it's interesting that all of these GWT wrapper extensions use an LGPL license when GWT is Apache licensed. Are they afraid of someone "stealing" all of their hard work and making into a proprietary product? Personally, I like the Apache license - especially because it promotes truly free software. Software that anyone can do anything with.

Published at DZone with permission of Matt Raible, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Lance Lavandowska replied on Tue, 2008/01/22 - 1:13pm

Looks like Tatami uses the GWT-Ext technique, judging by this line on the page you link to: "wrapping the famous Dojo javascript library".

 I'd look into using one of these wrappers (because I suspect those libraries to be better fleshed-out and browser-proofed) but with the recent GPL changes I just stay away from any license that isn't Apache or BSD-like.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.