Google to Deliver GWT 1.5

Google is expected to roll out the latest version of the Google Web Toolkit at its developer conference.

Google will hold its second major software developer conference May 28 and 29, delivering a host of new technology, services and advice for developers around the Google platform.

Among the new technology expected to be delivered at the event in San Francisco, known as Google I/O, will be a new version of the GWT (Google Web Toolkit), sources said. Google is expected to announce the availability of GWT 1.5 in some capacity.

The Google Web Toolkit makes it easier for Java developers to write high-performance Asynchronous JavaScript and AJAX (Asynchronous JavaScript and XML) applications in Java.

"You write your front end in the Java programming language and GWT compiles your source into highly optimized JavaScript," said a description of GWT on Google's Web site. "Writing Web apps today is a tedious and error-prone process. You spend 90 percent of your time working around browser quirks, and JavaScript's lack of modularity makes sharing, testing and reusing AJAX components difficult and fragile. It doesn't have to be that way."

Although he did not address the issue of a GWT 1.5 announcement, Bruce Johnson, a Google software engineer and tech lead for GWT, said one of the biggest areas where Google has made a lot of progress recently is that "we can fully support the Java 5 system" with support for generics and annotations.

Another area of major progress is in performance. "With [GWT] 1.5, we've added a whole new set of compiler optimizations," Johnson said. He added that "performance matters so much. With GWT, you can take a nice Java code base and compile it into JavaScript that runs faster than code you can write by hand."

In addition, today any important application is going to be written and targeted at the browser, Johnson said. With the advent of AJAX, "you see a focus on higher functionality within the browser. But with JavaScript there are so many browser quirks that it's like a minefield," Johnson said.

He said fighting these browser quirks is not a good use of people's time, "so we realized a tool needed to be invented. GWT takes the focus of using existing tools."

Google also provides API libraries for GWT, including an API that supports its Gears online/offline browser extension. "We provide an out-of-the-box API in low-level JavaScript to provide a nice way to Gears-enable your apps," he said.

In the future, areas of focus for GWT include delivering better tools for the platform, Johnson said. GWT currently supports all the major Java IDE (integrated development environments), but one area of focus might be to deliver a plug-in for Eclipse to make it even easier to use the open-source IDE with GWT. Google also plans to continue to drive performance with compiler optimizations and other things, Johnson said.

Adoption of GWT has been good, Johnson said. "We gauge it by the quality of the apps" being built with GWT, although the technology has had millions of downloads, he said.

Lombardi Software is one GWT user that has built some compelling technology with the Google tool. Lombardi provides BPM (business process management) technology and services to help customers with their process improvement initiatives. Lombardi products are built on open standards and provide ongoing prioritization, planning, visibility and control of business processes, said Wayne Snell, senior director of marketing at the company.

Snell said Lombardi is using GWT because "it offers the best platform for our engineers to quickly develop and easily maintain a true enterprise-class Web 2.0 application using standard Java tooling and skills."

About two years ago, Lombardi decided to create a new product for the BPM market that combined easy-to-use process modeling and wiki-like collaboration for business users to document processes, Lombardi said. The current market was full of traditional client-server offerings that required the user to install the software locally and set up central servers if they wanted to collaborate with other users.

"So, we designed the world's first enterprise-class Web 2.0 process modeling tool-Lombardi Blueprint," Snell said. "We needed the user's experience to be fast, highly interactive and easy enough to use by any business user."

He said Lombardi looked at four or five different toolkits and even prototyped the mapping and diagramming views in Adobe Flash and the Dojo Toolkit before settling on GWT.

"The tooling for these other options wasn't up to par compared to Java IDEs and the effort to maintain straight JavaScript or ActionScript would have become overwhelming over time," Snell said. "In addition, we required an enterprise-class run-time that could handle several thousand concurrent users collaborating in real-time per server."

He said Lombardi developers gain four main benefits from using GWT: support for tooling, hosted mode debugging, cross-compilation and the ability to use existing skills in Java.

"We can use the excellent modern tools and IDEs available for Java to write code for GWT," Snell said. "Refactoring operations that would be very difficult to perform directly in JavaScript can be done easily when using GWT because the source code is Java. The tool chain for Java development is fantastic and lots of these tools can be applied to developing code for GWT. In the end, allowing our Java developers to use their tools of choice speeds development compared to alternatives."

In addition, regarding cross-compilation, "we can compile the same GWT Java code to both JavaScript and Java byte code and run it both in a browser and on the server," Snell said.