London Google Developer Day
I spent yesterday at the London Google Developer day, one of 10 simultaneous events in cities around the world. This international event was the first of its kind and Google took the opportunity to launch some new products relevant to developers. By far the most interesting project for me was "Google Gears", a web browser extension that allows web applications to work offline. I seriously believe this web browser advancement is as significant as the APIs which put the "A" in "AJAX".
Google Gears
Google gears is interesting not only because of what it does (there are plenty of projects tackling the "offline problem"), but because of the way Google are going about it. Google are collaborating with important industry partners like Mozilla and even Adobe to try to create a standard API for offline applications that they hope all web clients will use. All major browsers are already supported, with Opera support in the works. Adoption of the standard by projects like Adobe's Apollo platform and discussion with projects like the Dojo Toolkit greatly increase the chances of proliferation of the standard.
Google Gears consists of three main parts – LocalServer, Database and WorkerPool.
LocalServer acts as a local HTTP server inside the web browser and caches and serves resources locally.
The Database part uses SQLite as a local store, a kind of giant cookie implemented as a relational database that web applications can access both online and offline.
WorkerPool creates a kind of multi-threading in JavaScript so that processor-intensive operations can run asynchronously, with a particular focus on preventing user interface lock-ups. This is useful not only for offline operation but also to increase the responsiveness of the user interfaces of online applications. The idea of Google Gears is that web applications will be usable offline when network connectivity is intermittent or non-existant and changes made by the user will be passed to the server opportunistically when a network connection returns.
The missing component
However, Google Gears is missing a key part of the solution required to make web applications work offline. Currently, if you write a web application which modifies data in the local SQLite database there is no provided method for synchronising those changes with the server. This is left for the developer to figure out on a per-application basis.
After the event I had a chat with Chris Prince over a pint (paid for by Google of course). Chris is one of the main engineers who has been working on Google Gears in Mountain View. He said that three separate teams were given the task of figuring out a standard method for synchronisation and all three came up with completely different answers. It turned out that they couldn't figure out a standard synchronisation method that worked well in most cases so they just left that bit out, for now.
I asked Chris whether he thought a dominant standard would emerge or whether things were always likely to be this way. He said that he expected a standard to emerge which worked well 80% of the time, with different methods for special cases, financial transactions being an example. He thinks that once Google Gears capability has been added to around three major applications (I suggested GMail, Google Calendar and Google Docs!), a useful standard method may emerge.
Other Happenings at GDD07
I attended a talk by Chris DiBona, Google's Open Source Programmes Manager, about Open Source in Google. I grilled him about how Google decides whether a project be open source or not (with particular reference to hosted services like GMail and software bundled with Google Appliances) and asked him about GPLv3. I then sheepishly asked him to sign my copy of "Open Sources" which he co-edited.
I also attended talks on Google Gadgets and GData APIs and asked whether Google plans on supporting authentication mechanisms other than Google Accounts in their APIs, but was basically told to make a feature request.
I met up with Darren from PHPWM and talked with a Cambridge PhD student about his work on AI in virtual learning environments. I explained my business idea to him and had an interesting conversation about intellectual property in universities.
Sergey Brin gave an international live webcast to all the event attendees and gave an amusing and bizarre talk about how the Internet is now fuelling its own growith through relationships formed on dating websites which lead to offspring who go off to work on making the Internet better. He was referring to the fact that a child born as the result of the first dating sites would now be around 12 years old, and presumably old enough to use Google's web based IDEs for developing mashups and Google gadgets!
The food at the Google event was characteristically fantastic and the "Blogger Lounge" was full of lava lamps and floor cushions, with free WiFi and coffee. A goody bag was provided including a Google branded T-shirt, mouse mat, USB stick, yo-yo, notepad, pen, sweets and silly putty! All in all it was great to rub shoulders with Googlers and I had some extremely interesting conversations with lots of smart people. The food, coffee and beer was all provided by Google and was brilliant. The train journey and mianderings around the London Underground weren't even that troublesome.