Some thoughts about Google Gears

I've been thinking about Google Gears. As I
mentioned, I think it's a pretty solid technology and solves a real problem in a real way (and it doesn't hurt that it comes from Google and is open source with a BSD license).

But it all depends on where you are coming from.
Simon Morris crystallized my thinking around this. If you are a Browserist, or even if you're not but you need to build a browser-based solution because your boss or your market tells you you have to, then Google Gears is a very good fit.

But if you're a Neo-Desktopian, then all you really need is the ability to store data in the client. But you need this in a way where your desktop application "can float free of a physical local client installation, deploying on demand just like web pages" (to quote Simon). Traditional databases like MySQL and Oracle just don't cut it here. SQLite can fit in this space, and that's why it's not surprising to me that Adobe AIR (previously known as Apollo) has chosen to include it.

If you are using Java (and Java Web Start) as your deployment technology of choice, and I personally like this very much, and I think it's going to get better, then Java DB is an excellent choice for your client side storage.

Others may choose Berkeley DB for Java, as it is lighter weight. But when I mention this choice to people I regularly get two questions: "but isn't that controlled by Oracle?" and "don't I have to pay to distribute this if my application is not open source?" Um, yes, and yes, and that is a problem, I have to admit. Dual-licensed open source technologies controlled by a single company are definitely barriers to adoption IMHO.

If you're using client-side storage for offline support (versus just say caching local state), then you also need a synchronization solution that works over the Internet. I
wrote about how you might do this, and I'm sure others, like Zimbra, are solving this too. But you don't need all the fancy shmancy page caching and synch technology that Google Gears comes with because your application is self-contained and not served up off of the web.

So, although Google Gears is cool and definitely has legs (mostly because it comes from Google), it is not a fit for all situations.