The disadvantages of the Google Web Toolkit
The Google Web Toolkit was announced as the next silver bullet in building (Java) web applications. After working on a project where it was used to build the front-end, I have to admit that not having to write any ECMAscript definitely has its benefits. Primarly: not having to worry about, or stumbling upon problems with, cross-browser functionality, the ability to use the same code both server-side and client-side and the ability to unit-test the client-side code.
However, this comes at a cost. There are two major disadvantages to using GWT:
However, this comes at a cost. There are two major disadvantages to using GWT:
- The time a development cycle (deploy, test, adjust, redeploy) takes.
When the code has been deployed to Google's 'hosted mode' browser, many code changes can be tested within a matter of seconds, by 'refreshing' the webapp. Think of it as automatic hot redeploy. Deploying the code to that browser currently takes around a minute, which wouldn't be a problem, if it weren't for the fact that not all code changes can be tested without a redeploy. A minute per development cycle is just too long, even if it affects only 10% of the cycles. - The learning curve.
To use GWT properly, you are forced to use decent MVC and client-server design patterns. This doesn't sound bad and for a couple of seasoned programmers it isn't. Unfortunately, for junior programmers the learning curve seems to be rather steep.
|
|
Do not underestimate W3C specs |
|
|
XML attributes are pointless? |
Comments
Any programmer should know that there is no such thing as a 'silver bullet' when it comes to libraries or toolkits, especially those that aim to homogenize an environment that is so heterogenous as the browser platform. The more a toolkit/library tries to elliminate those differences the more restricted it's functionality will be.
Especially javascript-generators such as GWT are known to produce very sub-optimal clientcode which is very limited in functionality. Doing anything 'out of the box' is sometimes almost impossible and you are always dependent on the toolkit/library supplier when there is a problem in the generated code itself (which is not very uncommon given the rate new browsers appear and implementations are updated and changed, not always keeping backwards compatibility and certainly not trying to keep compatibility with toolkits or libraries).
So my advice for those wanting to get on the 'Web 2.0 bandwagon' is always: learn javascript first (it really is a very good language), not some toolkit or library
Especially javascript-generators such as GWT are known to produce very sub-optimal clientcode which is very limited in functionality. Doing anything 'out of the box' is sometimes almost impossible and you are always dependent on the toolkit/library supplier when there is a problem in the generated code itself (which is not very uncommon given the rate new browsers appear and implementations are updated and changed, not always keeping backwards compatibility and certainly not trying to keep compatibility with toolkits or libraries).
So my advice for those wanting to get on the 'Web 2.0 bandwagon' is always: learn javascript first (it really is a very good language), not some toolkit or library
We haven't stumbled upon any limitations in functionality yet and the 'out-of-the-box' functionality is as advertised, so I don't know whether that criticism applies to GWT.
We will have to see how fast GWT adapts when a new browser enters the market, but given the fact that there are rather long 'beta' periods and the fact that no major browser besides IE/FF/Safari/ is to be expected (Chrome is Webkit-based, so that one is basically covered by Safari support), I'm not really affraid that our customer will be disappointed.
We will have to see how fast GWT adapts when a new browser enters the market, but given the fact that there are rather long 'beta' periods and the fact that no major browser besides IE/FF/Safari/ is to be expected (Chrome is Webkit-based, so that one is basically covered by Safari support), I'm not really affraid that our customer will be disappointed.
Waarom in hemelsnaam een uitdrukking gebruiken als 'silver bullet' die quasi niemand (zelfs niet in de Angelsaksische landen) kent. Nood om jezelf te bewijzen?
I must agree with you on the first one. I've experienced the problem with creating Sharepoint Solutions. Programming models that include deploying can always be a pain. Not only the fact that it distracts from doing the job, it makes debugging slightly more difficult too. It would help if Google made a JIT model for it in Apache. At least for development. 
@Tuur die poept: This is an English blog. Please comment in English.
@Tuur die poept: This is an English blog. Please comment in English.
@Tuur: No silver bullet is a rather famous article by Fred Brooks, concerning (the productivity increase one may expect of) software engineering tools. Outside of software engineering, the idiom may be obscure (though I doubt that is actually true), but in this world, it is a common term.
Why would the Google Web Toolkit be the "silver bullet"? From the things I read here, I'm getting the impression that the Toolkit is not all that easy to handle for beginners and several problems arise when you want to test/deploy the resulting application.
But when I look at the Wiki-link the author posted in his first line of this blog, not a single sentence or term from that Wiki-page seems to be related to the Toolkit or its technology. So in effect; maybe Google has misled people in believing in the software or some people still believe that software can develop itself flawlessly with minimum/no interaction from the designer.
But when I look at the Wiki-link the author posted in his first line of this blog, not a single sentence or term from that Wiki-page seems to be related to the Toolkit or its technology. So in effect; maybe Google has misled people in believing in the software or some people still believe that software can develop itself flawlessly with minimum/no interaction from the designer.
I didn't mean it was announced as such by Google itself, but rather by some of the fans it immediately gained. As anything released by Google, it was quite a big thing back then. Apart from that, the 'silver bullet' phrase was also simply a bit of hyperbole
.