Google I/O keynote - moving the web forward
The Google I/O keynote was entitled Client, Connectivity, and the Cloud. The message was that "Google cares about moving the web forward".
The obvious question is why, and four reasons were given:
- Google is a company that has only existed and could only have existed because of the web. Thus, moving the web forward is improving what they can deliver.
- It's a virtuous cycle - richer web apps can reach more users, and this means more usage, and this means more revenue.
- More softly, since Google is a company of the web generation, and that's how the web was made - consensus and partnership.
- Again softly, Google feels a debt of gratitude to the open source and the web community.
How will they move the web forward (and, perhaps, how should the web be moved forward?). The history of challenges and benefits of the historical and current model of computing was given:
The mainframe had a lot of power (for the time), but was not easy to get your hands on it. Deployment was easy, since you installed your software on one computer and used dumb terminals to use it.
The PC meant accessibility, but meant less power. It lost the ease of deployment because you had to support a variety of hardware, operating system, and applications/libraries.
The web brought the return of easy deployment with deployment on servers you control, and the use of the (relatively) dumb browser. However, supporting scale in your application means needing "cloud computing" (perhaps a stretch for most current applications, but certainly true if you're aiming high), and the "accessibility" of clouds is currently not that great.
So, how should it move forward?
- Making the client more powerful
- Keeping connectivity pervasive
- Making the cloud (ie, resources/power) more accessible
In terms of Client, Google Gears was explained and demonstrated. Basically, Gears is about extending the current browser to enable more rich applications. It's not just offline/cacheability - Allen Hurff from MySpace showed off how asynchronous threads, SQL database and full-text search allow their mess age view to allow sorting and (more impressively) search without leaving the client. The speed possible with this isn't what we expect from the web today.
In terms of Connectivity, Android was brought out. What wasn't immediately obvious to me before, Android is a full stack for mobile phones, not just OS, framework, libraries, and so forth. The example wasn't all that impressive, since only one phone was used, but the idea of multiple phones with different abilities having a consistent set of applications and interaction is compelling.
The Cloud discussion was perhaps of most interest to me, since it discussed Google App Engine. It was described as a way of making aspects of the Google infrastructure available to developers (ie, not just "machines"). It is supposed to take care of all the problems you have outside of your own application - ie, not having to worry about setting up machines, installing the OS, maintaining the OS and applying security updates, logs, monitoring, and so forth.
The key goals of Google App Engine is to allow it to be easy to develop, easy to scale, and free to start.