If you ask any of the 4,000 coders that attended the 2009 Google I/O Conference to recount what took place, you are likely to hear about the Great Google Gadget Giveaway. In an enthusiastic style reminiscent of Oprah Winfrey, Vic Gundotra, Google’s Vice President of Developer Products, ended the first day’s keynote address by giving away a working Android phone to each and every developer, shouting “[An Android] for YOU! and YOU! and YOU!”

Surely, programmers love spanking new gadgets, and the phones made quite a splash. However, the real news—the announcements and developments sure to ripple the Internet for the foreseeable future—came after the bonanza, as Google’s technologists revealed a number of groundbreaking technologies over the course of two days.

Each of Google’s initiatives represents a major step forward in web applications. Some of the software is already available, while others are still in development. Some are free, while others remain proprietary. But all of the Google inventions are worthy of your attention.

  1. Google Wave is nothing short of a revolution in personal communications and collaboration. The Wave application is still in development, but Google is granting access to Wave’s API to select developers.
  2. Google Web Elements are free Google applications that can be embedded into any Web page via cut-and-paste. The Web Elements are available for immediate use.
  3. Google Android 2.0 is a new, Linux-based operating system for Android-powered devices. Scheduled for release in late 2009.
  4. Google App Engine is a high-performance cloud computing solution for enterprise applications. Previously available for Python coders, the Engine is now open to all Java developers, and costs nothing for resource-limited apps.
  5. O3D is a development framework for building 3-D apps capable of running in a browser. The tool set and code is freely available.
  6. Google Web Toolkit (GWT) 2.0, a toolset for Java-to-Javascript cross-compilation, takes the headache out of browser-specific JavaScript coding. GWT 1.5 is freely available now, but 2.0 is still in development.

The next few sections describe each technology in more detail.

Google Wave

At first glance, Google Wave looks like a regular email client. It has panels for folders, contacts, and received messages, and an editor to compose and send new messages. But the Wave application also serves as an instant messaging client, connecting users in real-time exchanges, and can also share forms and any document-based data. Combined, all that media forms a conversation, or wave, among a group. Waves can contain much more than text, and accept attachments including images.

Unlike regular email, a wave can be inserted into other waves and can be organized into a tree hierarchy. Wave content can be directly transferred to other web applications, too, such as a blog entry tool or micro-blog (Twitter). And as if that weren’t impressive enough, multiple users can access a wave simultaneously, allowing for group review and collaboration.

The thought of managing email, instant messages, blog entries, and tweets from a single Web application may seem daunting at first, but the Wave user interface, built on top of HTML 5 and the Google Web Toolkit, makes the tasks surprisingly straightforward. With simple drag-and-drop operations, you can add new text to old waves, insert attachments, or organize contacts in a multi-part conversation.

Screenshot of the Google Wave application
Screenshot of the Google Wave application

During Thursday’s keynote address, Lars and Jens Rasmussen, creators of Google Maps and now Google Wave, joined Program Manager Stephanie Hannon to demonstrate Wave. The audience watched with rapt attention, and when Rosy, the application’s translation robot, converted a German message to English as it was being typed, the audience burst into applause. Lars Rasmussen also demonstrated mobile applications to manage waves on Apple and Android phones.

The Wave application is impressive, but the concept and ambition behind it is truly awe-inspiring. Put simply, Google wants the Wave protocol, based on the eXtensible Messaging and Presence Protocol (XMPP), to overturn email as the Internet’s dominant method of communication. In fact, the Wave protocol is a superset of the Simple Mail Transfer Protocol (SMTP): It allows for point-to-point message passing between individuals, but also enables multiple users to collaborate in real time.

In addition to Google’s own Wave application, other Web applications can interact with waves, and Google has promised to make the Wave source code and protocol available at no charge.

The full Wave application won’t be released until late 2009, but as of May 28, you can apply for early access to the underlying API and development tools. For more information on the Wave application and its API, visit Google’s main site.

Google Web Elements

Plenty of sites provide free clip art and scripts, but what if you want to embed a spreadsheet into your web site? How about a news feed? During the I/O conference, Google announced the free availability of these and other embeddable Web apps, now collected in a group called Google Web Elements. Some Elements have been made available previously, but now Google has created a common, simple means of customizing each one. There are eight elements.

  • Calendar presents time as a monthly calendar or a daily agenda.
  • Conversation interfaces with Google Friend Connect and posts comments from multiple participants.
  • Custom search adds a search bar that can peruse a single site using Google or another engine.
  • Map displays a location using either the street, satellite, hybrid, or terrain view.
  • News inserts a news feed containing articles on a specific subject.
  • Presentations displays slides from a presentation created with Google Docs.
  • Spreadsheets presents the content of a spreadsheet created with Google Docs.
  • YouTube News plays a video from a YouTube news provider (such as The New York Times or The Associated Press).

Screenshot of Google Web Elements
Screenshot of Google Web Elements

To see these applications in action, visit the Google Web Element site. Then, after you’ve selected a Web Element, you can customize its size and content. Once you finish tinkering, Google generates HTML that you can copy-and-paste into your page. That’s all there is to it.

There are two caveats: Google Web Elements do not interact with Google Wave (yet), and there is no way to create a wholly new Web Element. You must use one of the eight components provided, though it’s hoped Google will release more.

Android 2.0

The Linux-based Android platform is becoming more and more popular, and three new manufacturers have stepped up to start building new systems. At the conference, Google anounced Android 2.0, code-named “Donut”, which expands the capabilities of the nascent platform. While the 2.0 software is not yet ready for release, Google previewed the environment to attendees.

The new user interface supports a more powerful and intelligent search engine, which can not only locate data across the Internet, but can also access data from applications installed on the system. Additionally, Android 2.0 will support gesture recognition and an open-source text-to-speech capability whose language/accent enhancements allow for international deployment.

In addition, Google launched the Second Android Developer Challenge (ADC 2). during the conference. The full terms and conditions haven’t been released yet, but three points have been made clear: competing applications should target Android 1.5 (not 2.0); community opinion will decide a large portion of the outcome; and there are three prizes to be awarded in ten different categories. The winner in each category will receive a total of $250,000. You can find the contest details at the ADC 2 main site.

Google Web Toolkit 2.0

What’s the Google Web Toolkit? CEO Schmidt put it best: “We used to say ‘Write once, run everywhere’ with Java in my old job. But now it’s ‘Write once, run on any browser.’”

That, in a nutshell, is the goal of the Google Web Toolkit (GWT): to compile browser-independent Java code into browser-targeted JavaScript. The GWT compiler knows the idiosyncracies of all the major browsers, so you don’t need to tweak your tables and AJAX routines for Internet Explorer vs. Mozilla vs. Safari.

During one afternoon session, Bruce Johnson, founder of the GWT effort, described the new features planned for the GWT 2.0 release. Many of them deal with improving the coding/testing process, and include faster compilation and an improved hosted mode. In addition, GWT 2.0 will provide code splitting, in which large JavaScript files are separated into smaller files based on priority for improved download time.

The Future of Computing

All of the Google initiatives may not seem related at first, but the ultimate goal is clear: Google wants to improve the state of web applications to meet and exceed those of desktop applications. With GWT, Elements, and App Engine, Google is making it much easier for developers to design and deploy complex Web applications. As Google’s technologies progress and mature, a future where everyone relies on Google Wave for e-mail and instant messaging, and plays high-speed computer games through their O3D-enabled browser seems more and more likely.

This raises a number of important questions. As Web applications become more and more capable, what tasks will continue to run on the desktop? What roles will the operating system play besides providing an execution environment for a browser? And what about privacy? How will we keep prying eyes away from all our online data? How will we keep Google away?

It’s hard to come up with any helpful answers at this early point in the evolution of web applications. But for more information, Google I/O 2010 promises to be a good place to investigate.

Matthew Scarpino is a Java developer and electrical engineer living in the San Francisco Bay Area. He enjoys Irish folk music, the poetry of William Blake, and the Eclipse Graphical Editing Framework (GEF).

随机日志

Post a Comment