It's been a couple of weeks since Google announced Google Gears -- a technology that makes it possible for Web applications to continue functioning even in the absence of a network connection. Given how Google has open sourced its implementation of the technology, it stands a pretty good chance of becoming the defacto standard for offline-enabling other Web apps from Salesforce.com to Wordpress. The reason it could become such a standard is simple: Google's backing.
Prior to the arrival of Google Gears, there were other approaches to the same problem. One of them involved a Java-based database that's referred to as the Derby Project by the Apache Foundation (at Sun, it's called JavaDB). But neither the Apache Foundation nor Sun saw the need to drive Derby/JavaDB into the market as a solution to the so-called offline problem. Francois Orsini, a talented engineer at Sun, saw the potential for JavaDB to take Web apps offline and proved it with some self-built prototypes. But unless Sun still has something up its sleeve, it's clear from the way Orsini was pretty much a lone ranger that solving the offline problem for Web apps was not one of Sun Microsystems' priorities.
It was for Google. While other solutions exist, none have the backing of a Google-sized titan. That, in combination with Google's open sourcing of the technology will likely drive its adoption by other Web app developers. It doesn't hurt that Gears also has the backing of the Mozilla Foundation, Opera, and Adobe as well: three key players in the Internet application space.
Unfortunately, despite how cool Google made Gears sound, Google has so far only enabled one of its applications for it and, in my opinion, not the Goolge one that could benefit from such a technology most (based on the number of users that use it): GMail. Instead, Google picked its Web-based RSS client (Google Reader, aka "Reader") for the honor. This week, in an effort to finally experience Gears' offline capabilities, I gave a Gears-enabled version of Reader a test drive and capture every step of the process in a ZDNet image gallery.
It's important to realize that both Gears and Reader are classified by Google as beta-level services. In other words, Google foesn't consider either to be based on "shipping code" (if there is such a thing when you're talking about Web-based services where code never actually ships to anyone). On the other hand, "beta" is in the eyes of the beholder. More than three years after its initial release, Google still classifies GMail as beta too. Anyway, as beta services, pretty much anything I have to say or show about Gears or Reader is subject to change.
It's important to know that, as a Web-based application, Google Reader is not, by default, enabled for Gears-based offline usage. Enabling Reader for Gears requires two software components on the local system (see FireFox's extension dialog and Windows Add/Remove Programs dialog, right). One is a browser extension (shown top in image). The other is a locally installed software component (bottom); a browser plug-in. While I'm sure there are other solutions to other problems that also use this extension/local-app architecture, it's the first time I've seen anything of this nature and just as interesting is how Google installs the browser extension and downloads the installer for the local application (the plug-in) as a result of just one click on one of Reader's Web pages (users of Reader will notice a new link in the top right-hand corner that says "Offline"; it leads you to the installation process).
During the installation/download process, Google pops up a dialog that tells you that you'll need to shut all your browser Windows down before the local installer can be run (at least, this is what happened when I did it for Firefox on Windows). If your browser is configured to run executable files from the Net, then you'll be able to run the local installer when your browser's download dialog pops up. For my own security peace of mind, I always manually download installer scripts and run them from my hard drive instead.
This is the point in the process, at least in my experience, where Gears is a bit clunky. Once I ran GoogleGearsSetup.exe (the installer for Gears), I restarted FireFox and logged into Google Reader. After getting a security warning that a Web site (Google Reader in this case) wanted to use Google Gears and clicking OK (during the installation, Google warns you to only let sites you trust work with Gears), I looked for something different. Anything. But there were no visual cues to indicate that something had changed. In some ways, based on a description of Gears that Google director of engineering Linus Upson explained to me during a recent podcast interview, this is what I expected. According to Upson, Gears makes it so the end-user doesn't need to know or care whether their computer is on or offline.
Theoretically, the user can always work with the "offine version" of a Web app. If the background synchronization technology that Google also open sourced as a part of the Gears announcement is properly leveraged, then the offline version should remain in synch with the online version so long as an Internet connection is present. The idea is that if the Internet connection drops, then the user simply has whatever the latest version was of their applications (Web page code) and data at the moment before the connection was lost.
So, when I first noticed the absence of any visual queues regarding Gears or any offine capabilities, I thought to myself "This is slicker than I thought it would be. It must be transparently synching in the background and I'm simply looking at the offline version right now." To prove my theory correct, I yanked the Ethernet cable out of the side of my notebook and pressed FireFox's refresh button. The result? My theory was wrong. I got a couple of graphics (ones that were obviously cached in my system). But the rest of the page didn't load. Thinking that maybe it needs more time for the first-time synchronization, I plugged the Ethernet cable back in, left a FireFox tab open on Google's Reader page and left it there for a while. After a few hours went by, I went back to that FireFox tab, unplugged the network cable again. But I got the same results as before: nothing.
Figuring something had gone terribly wrong with the installation (and "Hey, it's beta!"), I contacted Google to find out if there was something I was missing. Perhaps some visual cue that I was overlooking. The better part of a day went by after which I finally ended up on the phone with a Google spokesperson who asked "You don't see anything?" While on the phone with her and fully prepared to say "No, but maybe I'm looking in the wrong place?," I went back to that FireFox tab, and it was as if a Google God magically reached into my system while I was on the phone with the spokesperson and popped up a dialog box that had, up until hat point, not shown it's face. It said:
To use Google Reader in offline mode, click the icon above
Above the text was a tiny green icon (see image, left) with a down-facing arrow (as in "synch down"). My expectation at this point was that by clicking the icon, it would flip Reader into the offline mode as Google's Upson had described Gears'capability to me (where the synching process was transparent to me as the user). But, as it turns out, that's not how it works. Instead, the link is more like a toggle. When I clicked it, it synched the last 2000 RSS items (with suprising speed) and flipped me into an offline mode for which there was no background synching even though I was still connected to the Net. In other words, it wasn't displaying any of the RSS items that arrived since moving into Readers' offline mode. Clicking the icon again put me back into the online mode in which case, I saw the newer items. But for those items to be synched with Reader's offline mode, I had to click the synch icon again. In other words, even though Gears is capable of transparent background synching, Google's only showcase for the technology (Reader) doesn't take advantage of that feature.
For me, it was not only a surprise (I really expected Google to showcase all that Gears was capable of), it was sort of a bummer. After all, who wants to manually synch? Imagine if RIM's BlackBerries required manual synch before BlackBerry users could get their new e-mail? Yikes.
I asked Google whether I was doing something wrong, or if Reader was working as advertised. According to Google Reader software engineer Chris Wetherell, it was simply a developer election not to use the background synch option. Via e-mail, he told me:
The Google Reader team chose to make the offline sync manual because it was an easier development option for us at the time, and we couldn't wait to get this feature out to users. Our primary goal with Reader is to make consuming feeds more convenient for users, and we think giving them access to their feeds offline is a big step in that direction. We are always looking for user feedback as we explore options to improve Reader and automatic offline sync-up is certainly one of them.
The Google Gears API does not preclude either of the two options for offline synchronization and the choice is made by individual application developers depending on their specific needs, goals for their application, etc.
It's hard to know exactly why the tech had to be rushed to market before it fully showcased all of Gears capability. I took that comment to mean that automatic offline synch is on Google's to-do list for Reader. Hopefully, that will be sometime soon since manual synching is kind of a drag.