The disadvantages of the Google Web Toolkit

By Confusion on Sunday 14 September 2008 21:27 - Comments (11)
Category: Software engineering, Views: 15.569

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:
  1. 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.
  2. 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.

Volgende: Do not underestimate W3C specs 09-'08 Do not underestimate W3C specs
Volgende: XML attributes are pointless? 09-'08 XML attributes are pointless?


By Tweakers user crisp, Sunday 14 September 2008 23:27

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 ;)

By Tweakers user Confusion, Monday 15 September 2008 07:47

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.

By Tuur die poept, Monday 15 September 2008 09:45

Waarom in hemelsnaam een uitdrukking gebruiken als 'silver bullet' die quasi niemand (zelfs niet in de Angelsaksische landen) kent. Nood om jezelf te bewijzen?

By Tweakers user mOrPhie, Monday 15 September 2008 10:55

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.

By Tweakers user Confusion, Monday 15 September 2008 14:07

@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.

By Tweakers user MAX3400, Monday 15 September 2008 18:01

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.

By Tweakers user Confusion, Monday 15 September 2008 21:00

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 ;).

By Ercilla Technologies, Monday 29 March 2010 14:38

Your frustration is visible and I think it is relevant. Only fact is that you haven't nailed down the fundamental issue with framework like GWT. What you have mentioned are repercussions. Lets look at fundamental advantages and disadvantages of GWT

Fundamental Advantage

GWT takes the web layer programming to JAVA. So, the obvious advantages of Java start getting into play. It will provide Object Oriented programming. It will also provide great debugging and compile time checks. Since it generates HTML and Javascript, it will also have ability to hide some complexity within its generator.

Fundamental Disadvantage

The disadvantage starts from the same statement. GWT takes the web layer programming to JAVA. If you know JAVA, probably you will never look out for an alternative language to write your business logic. It's self sufficient and great. But when it comes to writing configurations for a JAVA application. We use property files, database, XML etc. We never store configurations in a JAVA class file. Think hard, why is that?

This is because configuration is a static data. It often require hierarchy. It is supposed to be readable. It never requires compilation. It doesn't require knowledge of JAVA programming language. In short, it is a different ball game. Now the question is, how it relates to our discussion?

Now, lets think about a web page. Do you think when we write a web page we write a business logic? Absolutely not. Web page is just a configuration. It is a configuration of hierarchical containers and fields. We need to write business logic for the data that will be captured from and displayed on the web page and not to create the web page itself.

Previous paragraph makes a very very strong statement. This will explain why HTML and XML based web pages are still the most popular ones. XML is the best in business to write configurations. A framework must allow a clear separation of web page from business logic (the goal of MVC framework). By doing this a web designer will be able to apply his skills of visualization and artistry to create brilliant looking web pages just by configuring XMLs and without being bothered about the intricacies of a programming language. Developers will be able to use their best in business JAVA for writing business logic.

Finally, lets talk about the repercussions in direct terms. GWT breaks this principal so it is bound to fail. The cost for developing GWT application will be very high because you will need multiskill programmers to write web pages. The required look and feel will be very hard to achieve. The turn around time of modifying the web page will be very high because of unnecessary compilation. And lastly, since you are writing web pages in JAVA it is very easy to corrupt it with business logic. Unknowingly you will introduce complexities that must be avoided.

But by not using it you are missing the object oriented programming from Web Pages. Quite bad. I discussed these concepts at length on my website I have also introduced an amazing framework Ercilla Web. Hope you will find it great.

By shona628, Friday 16 March 2012 16:23

I have been reading your posts regularly. I need to say that you are doing a fantastic job. Please keep up the great work.
Shop Vac

By wandybrad, Friday 30 March 2012 09:37

each that's right. hoping that it will end up something like that. that would be very aweso.
Honeywell Thermostats

Comments are closed