When Google Gears was first announced, it was praised as the final nail in the coffin for desktop applications as it now made it possible to take Web applications offline. However in the past year that Gears has existed, there hasn't been as much progress or enthusiasm in taking applications offline as was initially thought when Gears was announced. There are various reasons for this and since I've already given my thoughts on taking Web applications offline so I won't repeat myself in this post. What I do find interesting is that many proponents of Google Gears including technology evangelists at Google have been gradually switching to pushing Gears as a way to route around browsers and add features to the Web, as opposed to just being about an 'offline solution'. Below are some posts from the past couple of months showing this gradual switch in positioning.

Alex Russell of the Dojo Toolkit wrote a blog post entitled Progress Is N+1 in March of this year that contained the following excerpt

Every browser that we depend on either needs an open development process or it needs to have a public plan for N+1. The goal is to ensure that the market knows that there is momentum and a vehicle+timeline for progress. When that’s not possible or available, it becomes incumbent on us to support alternate schemes to rev the web faster. Google Gears is our best hope for this right now, and at the same time as we’re encouraging browser venders to do the right thing, we should also be championing the small, brave Open Source team that is bringing us a viable Plan B. Every webdev should be building Gear-specific features into their app today, not because Gears is the only way to get something in an app, but because in lieu of a real roadmap from Microsoft, Gears is our best chance at getting great things into the fabric of the web faster. If the IE team doesn’t produce a roadmap, we’ll be staring down a long flush-out cycle to replace it with other browsers. The genius of Gears is that it can augment existing browsers instead of replacing them wholesale. Gears targets the platform/product split and gives us a platform story even when we’re neglected by the browser vendors.

Gears has an open product development process, an auto-upgrade plan, and a plan for N+1.

At this point in the webs evolution, I’m glad to see browser vendors competing and I still feel like that’s our best long-term hope. But we’ve been left at the altar before, and the IE team isn’t giving us lots of reasons to trust them as platform vendors (not as product vendors). For once, we have an open, viable Plan B.

Gears is real, bankable progress.

This was followed up by a post by Dion Almaer who's a technical evangelist at Google who wrote the following in his post Gears as a bleeding-edge HTML 5 implementation

I do not see HTML 5 as competition for Gears at all. I am sitting a few feet away from Hixie’s desk as I write this, and he and the Gears team have a good communication loop.

There is a lot in common between Gears and HTML 5. Both are moving the Web forward, something that we really need to accelerate. Both have APIs to make the Web do new tricks. However HTML 5 is a specification, and Gears is an implementation.
Standards bodies are not a place to innovate, else you end up with EJB and the like.
Gears is a battle hardened Web update mechanism, that is open source and ready for anyone to join and take in interesting directions.

and what do Web developers actually think about using Google's technology as a way to "upgrade the Web" instead of relying on Web browsers and standards bodies for the next generation of features for the Web? Here's one answer from Matt Mullenweg, founder of WordPress, taken from his post Infrastructure as Competitive Advantage 

When a website “pops” it probably has very little to do with their underlying server infrastructure and a lot to do with the perceived performance largely driven by how it’s coded at the HTML, CSS, and Javascript level. This, incidentally, is one of the reasons Google Gears is going to change the web as we know it today - LocalServer will obsolete CDNs as we know them. (Look for this in WordPress soonish.)

That's a rather bold claim (pun intended) by Matt. If you're wondering what features Matt is adding to WordPress that will depend on Gears, they were recently discussed in Dion Almaer's post Speed Up! with Wordpress and Gears which is excerpted below

WordPress 2.6 and Google Gears

However, Gears is so much more than offline, and it is really exciting to see “Speed Up!” as a link instead of “Go Offline?”

This is just the beginning. As the Gears community fills in the gaps in the Web development model and begins to bring you HTML5 functionality I expect to see less “Go Offline” and more “Speed Up!” and other such phrases. In fact, I will be most excited when I don’t see any such linkage, and the applications are just better.

With an embedded database, local server storage, worker pool execution, desktop APIs, and other exciting modules such as notifications, resumable HTTP being talked about in the community…. I think we can all get excited.

Remember all those rumors back in the day that Google was working on their own browser? Well they've gone one better and are working on the next Flash. Adobe likes pointing out that Flash has more market share than any single browser and we all know that has Flash has gone above and beyond the [X]HTML standards bodies to extend the Web thus powering popular, rich user experiences that weren't possible otherwise (e.g. YouTube). Google is on the road to doing the same thing with Gears. And just like social networks and content sharing sites were a big part in making Flash an integral part of the Web experience for a majority of Web users, Google is learning from history with Gears as can be seen by the the recent announcements from MySpace. I expect we'll soon see Google leverage the popularity of YouTube as another vector to spread Google Gears.  

So far none of the Web sites promoting Google Gears have required it which will limit its uptake. Flash got ahead by being necessary for sites to even work. It will be interesting to see if or when sites move beyond using Gears for nice-to-have features and start requiring it to function. It sounds crazy but I never would have expected to see sites that would be completely broken if Flash wasn't installed five years ago but it isn't surprising today (e.g. YouTube).

PS: For those who are not familiar with the technical details of Google Gears, it currently provides three main bits of functionality; thread pools for asynchronous operations, access to a SQL database running on the user's computer, and access to the user's file system for storing documents, images and other media. There are also beta APIs which provide more access to the user's computer from the browser such as the Desktop API which allows applications to create shortcuts on the user's desktop.  

Now Playing: Nas - It Ain't Hard To Tell


Friday, May 30, 2008 5:38:17 PM (GMT Daylight Time, UTC+01:00)
Hi Dare, thanks for the great writeup! Two things that differentiate Gears from Flash is that Gears is an open source project. Also, Gears doesn't try to introduce a new programming model to the web or overlay things; its dev model is HTML, JavaScript, and CSS, with the addition of augmented capabilities that can be depended on cross-browser through using Gears. Another unique fact is we are happy when Gears features migrate into HTML 5 and the underlying browsers (or when HTML 5 features help get into browsers through Gears). Many of us in the Gears community are web devs who care about the web and want to see it iterate faster.

Brad Neuberg
Friday, May 30, 2008 9:19:48 PM (GMT Daylight Time, UTC+01:00)
Glad to see you back! :)
Friday, May 30, 2008 10:51:47 PM (GMT Daylight Time, UTC+01:00)
Hey, it's like open-source ActiveX :)

I'm actually a big fan of the local database storage aspect. One of our sites is a medical label printing application and due to HIPAA regulations the data can not leave their building yet they still want data persistance. Right now we use an ActiveX to act as a gateway for local storage but it's not very cross-browser friendly, plus we are just so busy we don't have the time to learn how to port it over to Firefox.

A browser independent way to persist data will greatly help us out. Of course that's completely ignoring the fact that we also use the ActiveX for printing down to the mil (0.001 inches) barcodes but I keep hoping Silverlight will enable some kind of print-support.
Saturday, May 31, 2008 9:53:06 AM (GMT Daylight Time, UTC+01:00)

Thanks for linking back to my site (via the image).

Because of the limitations on my hosting bandwidth, is there any chance you could host the image on your site (perhaps with a credit link)? You are definitely WAY too popular a blogger for my little site... :-)

Thanks again.
Saturday, May 31, 2008 1:07:40 PM (GMT Daylight Time, UTC+01:00)
Since Brad covered the differences with Flash, I thought that it might make sense to point out that thinking of Gears as something more than just an offlining tool started a bit earlier than this March: http://glazkov.com/blog/gearhead/.
Saturday, May 31, 2008 4:30:11 PM (GMT Daylight Time, UTC+01:00)
Google Gears is an interesting project. I've used it once but via gwt-google-api binding. I'm not sure if using JS helps the coding process much but I find it a little bit tedious to write Gears in Java. Plus often you'll want to have ORM layer to make your code cleaner (but perhaps there might be performance penalty should you chose to do so).

One serious issue about Google Gears is to handle local storage properly: if the developer forgot to clean it up, or if the developer stored important data locally, anyone that has access to read the SQLite file can read it!. This makes public computers such as library computers a little bit risky to access your Gears-enabled website.

It's not like you can encrypt the file locally.

Another thing is that some stuffs are cache in the local storage when you go offline. Developer might decided to cache your user-name as well perhaps to provide "smooth" offline->online transition without having to login. If the developer did not handle this process correctly, expect someone else able to access your account.

There are challenges to develop a Gears-enabled app. Sometime I prefer to write the desktop-app with online access (to synch data) with less than great website UI for viewing and accessing (download/export) purpose.
Edwin Nathaniel
Saturday, May 31, 2008 7:35:09 PM (GMT Daylight Time, UTC+01:00)
Great article, very detailed.

Thanks for sharing.
Sunday, June 1, 2008 12:05:01 PM (GMT Daylight Time, UTC+01:00)
You know that you need to add "http://" to href when linking, right? ;-)
All your links are inaccessible due to this.
Comments are closed.