Thursday, November 18, 2010

GWT is not a substitute for a web developer

Web development is often hampered by the fact that there are a variety of web browser rendering engines as well as a variety of javascript interpreters. This means that a developer might have to recode the same web site 4-5 times to account for all the variations. When you couple that variation with the fact that new browsers are released and developed all the time, people started to realize that there needed to be a "one stop shop" to write your code and run it anywhere.

I suppose someone at google started down the GWT path because "write once run anywhere" has been Java's watchword almost since it's inception and a software holy grail since the 1970s. A basic problem with GWT is that it tries to give a java api for building screens which is alien for almost all web designers and front end developers. This means that there is an additional translation from "designer" world into "developer" world.

Recently had the pleasure to muddle through some GWT code and I don't really like what I see. For folks who don't know, GWT (I love TLAs) is tool that enables developing web front ends in pure java. This is done by running a custom compiler against java source code that outputs javascript. The cross platform capabilities get added in by generating 5 different javascript files, one for each browser platform you are targeting.

Because of this, some shops appear to try and co opt java developers and encourage them to build web front ends and this is NOT a good idea. Does this mean a good web designer or user interaction person who knows java (or visa versa) won't be able to make great things with it? Of course not.... But it does NOT mean that a band of capable back-end java developers will be able to suddenly developed a rock star web 4.0 interactive application because "they know java" and "we're using GWT".

GWT does NOT give java developers magical design abilities, nor does it somehow make a java backend developer able to write wicked fast javascript. It DOES enable a person who understands javascript and web design as WELL as java to build cross platform applications MUCH faster than they if they tried to do it themselves.

In conclusion, GWT certainly has it's place in a capable software developer's toolbox as a mechanism to build screens, but as a replacement for front end developers or some sort of attempt at replacing knowledge of how browsers work, it is a pretty bad idea.

No comments: