I'm really starting to like the ideas behind Google Web Toolkit (GWT), which allows developers to write client-side code (e.g. HTML, CSS and Javascript/Ajax) using Java... Yes, that is correct - you can write your browser-based UI in Java and have it compiled into Javascript before being sent tn the client for rendering!
The GWT team are pitching that the resulting client-side code is very compact (and hence performant), and also takes care of cross-browser issues by compiling multiple browser-flavours of your GWT code, and sending only the appropriate optimised code after the client's browser has been detected. You can also do lots of cool stuff like debug your Java code responsible for the UI generation in real time - that is, you can set breakpoints and watches in your Java code, which will be triggered when you interact with the compiled Javascript in the browser.
You can find more info from the GWT home page over at Google code, but I personally wanted a more high-impact overview which I have found in several videos of Google I/O sessions:
Check out this presentation for a good intro on how to migrate apps to GWT, and also a very cool introduction on GQuery, which is the GWT equivalent of jQuery .
http://code.google.com/events/io/sessions/ProgressivelyEnhanceAjaxApps.html
This is also a good presentation, which shows some of the more programmatic low-level concepts, such as how to build a GWT-flavoured app, recommended design patterns, and also includes a demo app
http://code.google.com/events/io/sessions/GoogleWebToolkitBestPractices.html
And finally, a very cool video showing how the Google Wave client UI was built using GWT
http://code.google.com/events/io/sessions/GoogleWavePoweredByGWT.html
The fact that I often wear both client-side and server-side developer hats in an organisation makes GWT an appealing toolkit. I am very comfortable with Java, design patterns and Unit Testing, and typically my hair-pulling days involve Javascript or cross-browser issues. If I can write my whole app in Java using accepted design pattern and unit tests, and then have GWT deal with the fiddly issues such as cross-browser problems, I would be more than happy! I also believe the prevalence of this type of toolkit strengthens the position of Java within the developement market, and as I am a Java Consultant, I quite like this... ![]()
My final comment is that Google is playing it very smart in the rapidly growing browser app market lately (not that they ever play it dumb...) - UI platforms are converging, for example modern mobile devices are increasingly offering fully-functional browsers, and many apps traditionally confined to the desktop are now being served via the browser (i.e. email, word processing and document sharing). Released from the shackles of a desktop machine, many of these apps are now also benefiting from being location-aware.
Google is primed for this kind of shift - GWT allows developers to build a flexible, performant and highly compatible browser app and Google Gears takes care of any persistence and desktop interaction limitations of current browser deployment. Google is also investing heavily in the new HTML5 developments, which I believe will only serve to augment the functionality offered by their existing toolkits and platforms (check out the new Firefox 3.5 Release Candidate which supports some of the new HTML5 features). Finally, I think we all know how much Google is investing in location-awareness, location-based services and GIS.
It might be time to buy some more Google Stock...
Daniel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Daniel Bryant (Director) | Tai-Dev Ltd
www.tai-dev.co.uk - IT Consultancy Services Specialising in JEE, Web 2.0 and RDBMS

