It's a really big day for Google Web Toolkit: GWT 1.4 is now available -- and, with more than a million downloads under our belt, GWT is no longer in beta!


New to GWT?

Let's start with what some folks have to say about their experience using GWT during the past year...

The toolkit is more than a pleasure to use and made my web-app development actually FUN again.
- Dean S. Jones
This year, for the first time, I have started to learn AJAX. To get my feet in the ground, I have attended several seminars and talked to many friends knowledgeable on AJAX. I came across a lot of frameworks and tools. Dojo, Prototype, Rico, Scriptaculous, jMaki - you name it. I had everything installed in my laptop. After struggling for a month, I realized that I was not learning anything new, let alone building an application using AJAX. Then, I looked at GWT. Things slowly started moving in the positive direction. I was able to leverage my 8-10 years of Java experience to build AJAX applications using GWT. I didn't have to bother learning javascript or other AJAX internals. GWT made sure that the application I am writing is cross-browser compatible.

Thanks to the Google team for building this wonderful piece of technology. You must realize how many new people are benefited everyday from your hard work and creativity. I have completed my second AJAX project using GWT. I couldn't have done this without you.
- Sudhansu Pati
Q: Can anyone provide a ball-park numeric estimate of how much time the use of GWT saved you?
- John Gunther [asked on the GWT Developer Forum]

A: 100% + faster. Easily. And this number goes up as application complexity goes up.
- Ryan Dewsbury

A: GWT will -really- save you time in maintenance (try and refactor browser dependent javascript if you dare!), and GWT is a great tool for scaling your server, because it allows you to ship off a lot of state info to the client.
- Reinier Zwitserloot
For a while we had an AJAX-style solution using JavaScript hand-coded by a contractor. The contractor left, the code was the most hideous thing I've ever seen...that sure wasn't the answer. [...] The original application was developed over a period of several years, [yet] we have basically rewritten the user interface in GWT with three Java developers over about five months. There is no way we could have done that writing in any kind of scripting language, and still have it be maintainable and flexible (which is very important to me).
- Tim Ihde
Keep up the good work...this project is the best I've seen in a long time! It's already saved me weeks of tedious javascript coding and revolutionised the way my company writes technology demos.
- Sam Halliday

If you're interested to learn more, here are some links to help you get started:

What's new in GWT 1.4?

There's lots and lots of cool new stuff in GWT 1.4, so it's hard to know where to start. How about application performance?! This release includes several breakthroughs that make your compiled GWT code significantly smaller and faster. Many users are reporting that after a simple recompile with 1.4, their applications are up to 30% smaller and 20%-50% faster. And startup time in particular is now highly optimized thanks to a new bootstrapping technique and the availability of image bundles. To see the new hotness in action, try visiting the new-and-improved Mail sample a few times. It's darn fast the very first time you visit it, but subsequent visits are insanely fast. That's because, in addition to a fast initial startup, GWT code uses a clever caching technique to prevent applications from making unnecessary HTTP requests. As Joel Webber (Tech Lead of GWT Core Libraries) would say, "The fastest HTTP requests are those that do not, in fact, occur."

Here's a broad overview of the major enhancements:


New widgets and libraries
  • RichTextArea, HorizontalSplitPanel and VerticalSplitPanel, SuggestBox, DisclosurePanel, PushButton, ToggleButton, and an enhanced Image widget make advanced applications easier than ever.
  • ImageBundle automatically consolidates multiple images into a single HTTP request.
  • NumberFormat and DateTimeFormat make easy work of complex internationalization and localization.
  • You can finally use java.lang.Serializable with GWT RPC, and the GWT RPC server-side subsystem is no longer intimately tied to servlets. You can easily wire it into any Java back-end infrastructure. Spring fans, rejoice.
  • A new JUnit-based benchmarking subsystem makes measuring and comparing the speed of code snippets as easy as writing unit tests.
New deployment options and optimizations
  • Adding GWT modules to an HTML page is now simple: just add a <script> tag.
  • You can now include GWT modules across domains. Note that including scripts from other sites that you don't fully trust is a big security risk.
  • External JavaScript files referenced from your GWT module load synchronously now, so script ready-functions are no longer needed.
  • Auto-generated RPC whitelist files are now produced during compilation to help catch accidentally responding with objects that compiled GWT client code wouldn't be able to deserialize.
  • The GWT distribution now includes a DTD for the GWT module XML format, making it easier to configure modules in an DTD-aware XML editor.

Additional details on these new features and bugfixes are in the blog post announcing the original GWT 1.4 Release Candidate.

For all you GWT veterans ready to download GWT 1.4, see the new FAQ section "How do I upgrade to GWT 1.4?" for step-by-step instructions on the update.

And for anyone totally new to GWT, on behalf of the awesomely cool developer community and the GWT engineering team at Google, welcome!