Google Gears: The Mega Cookie

Big CookieOOooh, I'm all giddy! Moments ago I discovered today's release from Google: Google Gears. It's like they reverse-engineered some advanced cookie technology from a crashed web-based UFO. Or something similar.

I'm typing this post as I explore, so we'll see how my opinions of it change from now to the end of the post - I predict I'll be impressed, but a little wary.

Google Gears is a cross-browser extension that integrates all manner of nifty tools to allow web application providers to make their apps work off-line. There are two main aspects to the release: database and local server.

Google Gears Database
The database is the cookie you've been dreaming about. Oh wait, we all hate cookies. No we don't. What? LOOK OVER THERE. The database allows you to persist data on the client side (hmm sounds familiar) buuuut, unlike a cookie the data is not removed if you go Clear Cookie Data. Clever!

The idea is that large(r) amounts of data can be stored in a local SQLLite database, allowing you to work with a web application client-side, and sync up when you get off the aeroplane. Or whatever. The database is accessed via JavaScript and supports standard SQL (looking) queries for manipulating data. Here are some example statements from the Google Gears docs:

db.open('database-demo');

db.execute('create table if not exists Demo' +
               ' (Phrase varchar(255), Timestamp int)');

db.execute('insert into Demo values (?, ?)', 
               [phrase, currTime]);

var rs = db.execute('select * from Demo');

Pretty nifty hey? Possibilities and security concerns abound.

LocalServer
Having your data available off-line is all well and good, but not very useful if you can't do anything with it. So Google whipped up LocalServer. LocalServer is a local server.

Poor marketing aside, it's a way to have your web-applications cache and run required web resources locally. These resources can interact with your database and hey-presto: off-line application!

Annnd...
There are a couple of other aspects to Google Gears: A "factory" module for setting everything up, and an awesome looking worker-pool module which allows you to do processor (or time) intensive tasks asynchronously. This can add some much needed UI snappiness to larger applications.

Impressed? Wary?
Yes, yes, impressed and wary. Google Gears will certainly usher in a new wave of can't-live-without features to today's web applications. Which means if you make web applications, you'd better get your thinking caps on and figure out how this kind of off-line availability is going to affect your market segment.

But I don't have any web apps out there, so I'm going to finish this up now (before the nerdy-excitement wears off) and see if I can't get Gears working with GreaseMonkey. Awwwww yeaaaah!