musings on java and object oriented software development

Thursday, May 25, 2006

Google Web Toolkit Angst

I've been using Google Web Toolkit for the last week or so. I'm really liking it, it is really productive and once you getting it working everything is sweet.

The problem is, getting it working is kinda hard, particularly if you want to use Eclipse. I struggled for a day or so to create my own project from scratch but gave up and just copied the DynaTable example and changed a few things. All this is because GWT has these unwritten conventions for stuff that is almost impossible to figure out without days of trial and error.

GWT tries to be all Rails like with "Convention over configuration", which is fine, if you can find out what the convention is.

Another thing that is annoying is the self-righteousness of the tools :

c:\dev\gwt-windows-1.0.20>junitCreator -junit c:\dev\eclipse\plugins\org.junit_3.8.1\junit.jar -eclipse project -out c:\dev\workspace\project com.xyz.project.DataImportViewTest 'com.xyz.project.DataImportViewTest': Please use 'test' as the final package, as in 'com.example.foo.test.MyTest'. It isn't technically necessary, but this tool enforces the best practice.
Google Web Toolkit 1.0.20

Whose best practice are they referring to? I hate the term "Best Practice" - it implies that the currently accepted best way of doing something is the final say on the topic, so don't even bother trying to think of something better. It is arrogant and is like saying "trust us, we are bigger and better than you, go away and leave the real thinking to us".

Anyway, I had thought that this ".test" package style had gone out of favour a long time ago, but it doesn't matter really whether it is best practice or not, what is with the arbitrary conventions ?

I'm sure (and hope) , over time Google will listen to the criticism and make GWT better. It is very good at the moment, but I think it is probably only about 95% there. Another 5% with Maven, Eclipse integration and more configuration options (with sensible defaults ) will truly make it rock !



At 6:59 PM, Blogger Jon said...

And the really really funny thing is that the "best practice" of packages for unit test in Java is to put the unit test in the *same* package as the unit under test (the class). This is because you can slightly open up private members to the unit test by using package visibility without making the member completely public. So much for "best practices", hey?

At 10:36 PM, Blogger distiller said...

Yes, exactly. ".test" went out of vogue a few years ago. Perhaps that is when the started writing GWT.

At 9:00 AM, Anonymous Alexey said...

IDEA 6 comes with GWT plugin integrated. I haven't tried it but people say it works like a charm. Probably because this plugin covered that 5% you were talking about.


Post a Comment

Links to this post:

Create a Link

<< Home