We have had a good rollout of an internal UI framework built using the Google Web Toolkit, and it is a good fit for us — but is it a good fit for everyone?
Ganeshsji Marwaha at the Ganesh blog posted “GWT – Pros and Cons” several months ago, a list which is has gotten some attention lately in the twitterverse and which rang true to me as I read it over.
With 22 Pros and 12 Cons, this list is a good place to start if you are considering using the GWT for one of your projects.
Among the reasons we use GWT:
“2. Even if you are not experienced in Java GUI development, the experience in working on server-side Java for years will come in handy while developing GWT apps”
We are a Java shop, and developing with Java from end-to-end is a huge productivity benefit.
“5. You can migrate from a typical web application to a GWT application iteratively. It is not an all or nothing proposition…”
We have a huge set of products which are built using other approaches, but we have been able to create new products using GWT while incrementally improving existing products with features developed for our new UI framework using GWT.
“14. You have the advantage of being able to use standard Java static code analyzers like FindBugs, CheckStyle, Detangler, PMD etc to monitor code and design quality. This is very important when you are working in a big team with varying experience.”
Static code analysis is a huge boon to quality in large organizations, and being able to run these tools on our UI code has been a big help. Certainly there is an effort needed to custom-tailor rules for GWT (for instance, to enforce specific use of GWT-RPC), but you can use the off-the-shelf rules to check the other Java UI code immediately.
These were large factors when we were deciding to use GWT instead of other toolkits.
However, these points also ring true:
“2. There were quite a few GWT books during the beginning. Not so much these days. “
You have to use online resources almost exclusively if you are coding for GWT.
“3. GWT is not fun to work with. After all it is Java and Java is not a fun language to work with…”
If you are about to start a user interface project and are comparing projects, check out Ganeshji’s blog and see which pros and cons fit your situation.