gist JS

Friday, July 21, 2006

Thoughts on the GWT

No java 1.5 generics feels a bit like someone killed my pet fish. (Note: this is only a little like having your puppy killed.) Really though, I had no idea how nauseous untyped collections make me.

Serialization is still definitely a bit rough. I've been converting everything to lists before it goes over the wire and this has made things better, but I will be very stoked when a release come out that fixes this and I can rip out all manner of Set->Array->Set code. Some people seem to claim it already works, but all I know is that Set s = new HashSet(); explodes serialization for me.

Also, I wanted my domain object to have a Widget property, but I think I'm going to have to back down on this one. Specifying transient worked as advertised, but then when the object is deserialized on the server it tries to create the widget and I get a "GWT has not been properly initialized" issue. Some insightful comments about this type of thing here.
There are definitely some rough edges.

Lastly, while reports of Spring integration abound I would warn you not to accept this as given for the moment. The amount of head banging into odd errors is on the high end of the scale, and you'll soon find yourself connecting to svn repositories on a laptop in Poland in the vain hope that you'll be able to make sense of someone random Poles framework.

Just in general, my attempts to integrate with just about anything else have been pretty rough. Even deploying to something out of hosted mode brings lots of gotchas that will make you pine for "mvn package" like a baby. They're mentioning maven usage for the next release, but let's all cross fingers for maven 2, eh?

In general though, the speed of development is astounding. Well, maybe not so astounding if you're used to writing desktop apps where creating a functional rich GUI is pretty easy, but compared to anything else out there.. I feel like this is the future plain & simple. I looked at the new Dojo release yesterday and, while I would have been interested a couple weeks ago... now it just doesn't thrill me at all. Scriptaculous integration is super easy, so you get all your fun tricks. If all you need is a couple auto-completes I think rails or grails, or spring mvc & scriptaculous are all lovely choices. The second you start thinking about DOM manipulation though, despite all the nice looking MochiKit type things, I just can't imagine not giving GWT a shot.

In combination with db4o I can't imagine a faster way to get a web 2.0 app up and running. We'll see how long db4o makes it as our db of choice, since I read disconcerting things about max ~10 requests/sec, but I promise you you'll fall out of your chair the first time you just call db.set(myReallyComplexObj) and everything works like a charm.