I'm sure by now there are plenty of blog entries out there... but I did
say awhile ago that I would share my experience with GWT.
I had been needing to put together a small application for my personal
use.  I used GWT for the front end.

My summary of the experience:

GWT has, for the most part, good documentation, with occasional holes.

Setup is relatively painless

Watch out when running in hosted mode from eclipse because both the
"src" and the "bin" directories are required to be on the classpath
(this can lead to resources not being found due to multiple copies
existing in the classpath)

Creation of a very dynamic and responsive gui is fairly trivial,
especially if you're already familiar with swing, awt, and/or swt. You
can implement click listeners, mouse listeners, etc. to handle events.
The bundled components are really very nice. Tables, lists, trees,
"deck" panels (like a decklayout in swing), dockpanels (think
borderlayout in swing), grids, "flexible" tables that grow on demand as
you add more data, menus and more.  Very nice.  Pretty much all
styling/visuals can be controlled via css, which is also nice.

They've got everything setup for you (GWT comes with a (modified) tomcat
binary, even) so when you run in hosted mode, you get code hot-swapping,
full debugability, etc.

The built-in rpc mechanism is a nice abstraction over the
XMLHttpRequest.  They take care of serialization, deserialization, etc.
But... if you're not used to thinking asynchronously when retrieving
data, performing operations, etc., it will take a bit of getting used
to.  So, on the client, all calls look something like:
  service.doCall(some,data,new AsyncCallback() { public void
OnSuccess(Object) { } public void onFailure(Object) {}};

The client-side code /only/ understands user classes which are in
directories defined as "script" directories.  Thus, you can't, for
example, use a cayenne data object directly in rpc calls because
cayenne-related classes won't be found client side.

Some of the error reporting is opaque. You get exceptions like "an
uncaught exception was thrown on the server" sometimes a backtrace is
present, frequently it isn't.  Often, even when it's present, the
exception is buried somewhere in the GWT compiler code, and no
indication of where the offending code can be found is proffered.

Overall, it seems like promising technology; I had a basic CRUD app with
some extra features tacked on in under two weeks; keep in mind that a) I
was learning the framework during that time, as well, and b) I'm a grad
student currently doing research over the summer, so all work on this
app was during my spare time, which frequently isn't readily available.

I think that frameworks like tapestry could learn a lot from GWT in
terms of ease of grasping the overall development model.  On the other
hand, I think that tapestry does a superior job of separation of
concerns, making it easier for the Graphic designers to do their job,
and the coders theirs.



Warner Onstine wrote:
> Don't know how many of you saw this, but it looks pretty cool (haven't
> had a chance to install on my windows box yet as that and Linux are the
> only ones supported right now).
> http://code.google.com/webtoolkit/
> From early reactions this seems like something very cool:
> http://jroller.com/page/RickHigh?entry=javaone_update_google_rocks
> http://jroller.com/page/RickHigh?entry=javaone_2006_google_s_gwt
> http://ajaxian.com/archives/google-web-toolkit-ajax-apps-from-java
> Anyone had a chance to play with this, share their experience in a brief
> 15 minute intro next meeting?
> -warner
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to