I was really looking forward to the GWT talk at JavaOne (and apparently so were many others, there seemed to be a thousand in the room during the talk).  The talk was presented by two of the core GWT team members.  They did a super job giving the talk - they were relaxed, were polished in their presentation, used humor, didn't get fazed by AV glitches.  They talked a bit about the philosophy behind GWT. They put some stakes in the ground - 'static typing  is good, dynamic typing is not so good', lots of sexy widgets not so important as user experience.   They want to bring software engineering to web development.  They claim (and I agree) that it is hard to engineer a pile of steaming javascript.  Java is much better for all its 'abilities' - maintability, adaptability, etc. 

They had some good metrics about how users react to load time.  If your app takes too long, your users will leave.  They have a 300ms goal for a load time of a rich GWT application - and they are working hard always to reduce load time.  They do this in a number of ways - they use the browser cache to help of course, they make the code they ship over the wire be very compressible, and they reduce the overall number of http requests (compare that to what is typically done with a traditional ajax app, where there may be many trips to the server just to get all of the javascript).  GWT build separage JS bundles for the different browsers, so if you are running in firefox, you don't have any IE specific JS.  One really neat optimization they are doing is called 'image bundles'.  Apps that have lots of static images can take a long time to load since each image is a separate HTTP request.  GWT can bundle all of these images into a single image. So your app only has to do a single HTTP request to get the images. They can then use windowing within this larger image to display the various images.  A very clever technique.  GWT also includes a timing framework so you can easily instrument your app so you can see how long it takes the app to load.

They showed some demos ... I was a bit disappointed here since they just showed the demos that are available on the GWT site. I was also disappointed that they didn't talk much about where they were going, what new features were on the roadmap.

During the Q/A one audience member asked about how to write a GWT app that could be crawled by search engines like google.  The GWT guys knew about this problem and they are indeed working hard on making GWT sites crawlable.

 All in all, a good session.

 


Comments:

Interesting stuff. I have always wondered, however, why the majority of the web programming sphere is wed to the idea of building all these applications within the current browser architecture, and on top of HTTP. To me, it makes much more sense to build rich internet applications outside of the browser, using the full capabilities of the desktop. And to build them on top of TCP directly, instead of all these hacks atop HTTP. I mean, look at the name of the protocol itself: Hypertext transfer. It seems very silly that we are now building all these rich internet applications, everything from Pandora to Zillow, on top of a protocol that was designed for hypertext. A few weeks ago, I read something about researchers wanting to scrap IP and start over. Why wouldn't we also scrap HTTP, and start over at that layer, too?

Posted by Jeremy P on May 11, 2007 at 02:31 PM EDT #

Jeremy - I think the biggest advantage for doing web apps in the browser is that the browser is already on 100% of the desktops. There's no install time, no futzing with install scripts, there's a security model that is supposed to protect you from malicious programmers. The google gwt folks talked about a 300ms window of opportunity. Take longer than that and your site starts to lose visitors. If people have to install some software before they can use your site, you've lost many, many potential users.

Posted by Paul on May 14, 2007 at 06:26 AM EDT #

Hrm.. yes. I have heard that "browser is already installed" reasoning a number of times. I think that is one of the fundamental pillars of "web" 2.0. But how many more Myspacian social networking sites can the world create before we say "enough", and clamor for something newer, bigger, more interesting than the software that lives inside a web browser box? Maybe I am just in the minority, and the market won't cater to someone like me. But I have seriously considered puchasing IP media servers so that I can listen to Pandora without a web browser, without a computer on at all. Just my router, media streamer, and stereo speakers. To me, that sort of Ubicomp application of Pandora's service is all about "Internet" 2.0, rather than strictly "web" 2.0. I think the browser is actually a two-edged sword. Yes, it is already installed on every computer. But it is such a small box, and it is very difficult to squeeze much interesting into it. I guess I just don't buy the argument that the only way to get people to use your software/service is to have it inside a browser. Two big counterexamples are iTunes and Google Earth. Somehow, lots of people still download and install that software. And you can do things in that rich application area that you simply cannot do on the web. There is a reason why Google Earth is not a web app.

Posted by Jeremy P on May 14, 2007 at 12:12 PM EDT #

Post a Comment:
Comments are closed for this entry.

This blog copyright 2010 by plamere