InfoQ

News

Google's Bruce Johnson on GWT 1.2 RC Including OS X Development Support

Posted by Scott Delap on Oct 31, 2006 03:49 PM

Community
Java
Topics
Web Frameworks
Tags
AJAX,
GWT
The first release candidate of GWT 1.2 has been announced. This is consistent with revised release process detailed last month on the GWT Blog. The final 1.2 version will be released in a few weeks. Among the changes included in version 1.2 are:
  • Full support for OS X development
    Develop with GWT on OS X as easily as on Linux and Windows
  • Much faster hosted mode
    Debug your GWT apps much more quickly. Hosted mode startup time has improved significantly -- and even better, refreshes are now lightning-fast -- even when your source code changes.
  • New HTTP request module
    The HTTP functionality that you've been asking for (custom headers, status code, timeouts, and more), all wrapped up in an API that's easier to use than the JavaScript XMLHttpRequest object
  • Widgets in TreeItems
    Tree items can now contain arbitrary widgets -- finally, it's easy to create trees with checkboxes :-)

InfoQ sat down with GWT tech lead Bruce Johnson to discuss the release. The interview started with Johnson discussing the issues found adding support for OS X and Safari:

There were a few surprises. It took quite a bit of exploration before we figured out how to best hook into WebKit. Although SWT already had some of the necessary Java bindings, we usually have to add more, including an extra layer of native code glue to make GWT's JavaScript Native Interface (JSNI) work. Once JSNI works, though, we're in great shape, because everything else is written in terms of JSNI. That makes for a very exciting porting experience because the moment JSNI works, everything works all at once: zero to sixty in only a few minutes.

One unexpected challenge was a very hairy bug that affects SWT code running on OS X. It's actually too wacky to describe here, but the upshot is that you have to specify a magic VM argument -XstartOnFirstThread when running in hosted mode. It isn't a big deal in practice, because Eclipse on OS X always automatically adds it and we updated the applicationCreator to always add it. But it isn't ideal, and it'll be nice to get rid of that at some point.

There are still a few Safari-specific bugs we'd like to fix soon, but it will be much easier to fix them now that it's possible to do proper GWT development on OS X. Working with a real debugger sure is nice!

Next Johnson was asked about Google not using GWT for internal projects such as Google Docs and Spreadsheets:

Most of the Google products that are in the spotlight now were started before GWT was available, so naturally there are timing issues. However, based on the feedback we've been getting, some enterprises are increasingly showing confidence in GWT just based on their own positive experiences. Robert Hanson summed it up well on a recent podcast. To paraphrase him, "The first week you use GWT, you feel nervous because you're not sure if you can trust the whole 'compilation' thing. By the second week, you see that it really does work very well, so you stop worrying and start being really happy about it."

The conversation then shifted to the subject of 1.2 being the first GWT version termed a "Release Candidate" and the switch in the GWT development process:

It was essentially the release pattern we had been following anyway -- a big release followed by a refinement -- but we didn't do a good job of articulating how well-baked each release was. Anytime you make big changes and do fast releases, it's hard to be 100% sure you didn't break somebody out there in a subtle way. The "RC" designation is a simple way of saying, "We think this is ready for prime time, but please help us sanity check it first." If you're feeling particularly risk-averse, you can always skip the RC and wait for the final version.
Finally Johnson, who recently presented at the Ajax Experience conference in Boston, was asked if he is seeing a difference in how JavaScript developers are reacting to GWT versus Java developers:
The typical reaction we see from Java developers is excitement and a sigh of relief. Often, they've done just enough JavaScript and DHTML to realize that the learning curve is huge, and they were not looking forward to trading their Java development tools and practices for the wild west of all-JavaScript development.

JavaScript developers react differently. Some developers strongly prefer JavaScript as a language for its power and flexibility, viewing Java as too constraining. (Although what happens in practice, from what I've seen, is that JavaScript teams have to create rigid coding standards anyway to keep the code base sane.) Other JavaScript developers work in JavaScript because it's expedient and are not particularly religious one way or the other. They appreciate that GWT lets them use more powerful tools, facilitates reuse, and so on. And everybody seems to like the power and flexibility that JSNI provides. If you're a JavaScript guru, you can use JSNI to write JavaScript code and still easily share that code as a Java-callable library.

3 comments

Reply

  1. Back to top

    Re: data

    Jun 29, 2008 5:21 PM by ilahilere olur

    client for Windows that can be used to communic aşk sohbet nur akor resim oyun oyun bodrum mamaris aydin msn tv bodrum marmaris rehber sac gs resim gazete hikaye sohbet ilerle ulti-server connections, SSL encryption, proxy support, UTF-8 display, customizable sounds, spoken messages, tray notifications, message logging, and more. mIRC also has a powerful scripting language that can be used both to automate mIRC and to create applications that perform a wide range of functions from network communications to playing games. mIRC has been in development for ove

  2. Back to top

    thanks

    Jun 30, 2008 8:39 AM by ugr ony

  3. Back to top

    good

    Jun 30, 2008 9:17 AM by boran Boran

Exclusive Content

Rationalizing the Presentation Tier

Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs.

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.