I have experience developing web applications using Java, HTML, JS, and CSS. At this point I want to learn/try out GWT, but before I do so I’d appreciate clarification on the following:
- Compared to traditional HTML/CSS/JS development how much more time consuming is GWT?
- Is GWT designer friendly, i.e. can the design (layout) and/or styling be done outside of Java via XML, HTML, etc.?
- Compared to straight JS/CSS how difficult is it to customize the look and feel of GWT widgets/components?
- How difficult is it to create custom widgets/components?
- Is GWT traditionally used with back-end web services?
Thanks.
1) a lot, just simple refreshing of your front-end (or compiling before deploy) may be pretty time consuming if your module grows in considerable size. You may however use Firebug or similar tools as usual, and what is much more interesting, the debugging is easy and powerful. There are however small issues, like incompatibility between Java and Javascript based regular expressions.
2) it is more difficult to e.g. take an ‘intended screen sample’ (not sure how this is called) provided by your Photoshop etc. based designer and convert it to html/js GWT based front-end. This is a real drawback.
3) you need to know what you are doing. but there is really a lot readily available. Using GXT/SmartGWT or similar libraries helps. It is also difficult to include JQuery stuff with all those plugins at your front-end.
4) This is what really makes GWT powerful. back-end stuff and the ease of communication with it from front-end. My view is, that if you need a lot of business (mostly back-end) logic you won’t regret using GWT once you learn how to use it effectively in your development. The communication with BE part makes it also much easier to write business logic at clients too. If you crave beautiful, non-standard, easily customizable stuff in front-end with not that much logic, not much complex data transfered etc, you are better off with ‘standard’ non-GWT approach. One major advantage for many guys working with GWT is that they do not need to write code in JS and the JS code generated by GWT is fast, effective and cross-browser. If you do not mind writing your front-end in html/js (and do not miss proper debugging control) and you want to write BE using Java, DWR or some other light-weight Ajax library might interesting for you.