"This has all happened before, and it will all happen again." (BSG, various)
I remember reading a long time ago in Byte Magazine about the differences between relational and alternative databases. They gave an analogy where they said, you could park a car by driving it home, disassembling it in your drive way and storing each part in neatly catalogued boxes. However the article said, at some point you wake up and realise that whilst you can do this, it's not the ideal way of doing things.
With the release of Google Gears (also see Firefox3 and Slingshot ) everyone is lauding this as the second coming of the web saviour whilst I'm going huh? Seriously?
Whilst I am absolutely behind the need of web applications to develop the ability to operate in an offline mode, and I do think this is a great step for, it's nothing all that brilliant, nor new, nor the most important thing needed on the web right now (HTML5, CSS3 anyone).
See I have no problem with web apps going offline. What I keep arguing against is this concept of the web as a platform. The web is not a platform. It's an interface. To the internet.
With the web going offline, and everyone saying "Wow I can now access my gmail when offline". I'm like "Yeah I could do that, it's called IMAP". However with IMAP I can use any application (including a gears powered browser) to access it. With gmail, you can only use a web browser. Hell this kind of lock in everyone has been taking Microsoft to task for years over. Now Google does it and they are a saviour?
The simple fact is the web browser is now the most abused piece of software on the computer. If I tried to sell you an OS that you could only program one interpreted scripted language that ran slowly on it, and every application ran in the same memory space you would laugh at me. Not to mention the OS would perform slightly different on every computer type. Not different enough to be different, but different enough to add significant time to development. But that's what the web browser has become. Suddenly it's a JavaScript based OS.
Are you kidding me.
Windows, *Nix and OSX have evolved now over about 25 years (at least) and I've yet to see a convincing argument that the web browser can make a better OS. The web is an interface. So are my client side apps. There is no difference between them, and I should have a choice of what I want to use to access my data.
Take mail for example (it's an easy one to understand). With IMAP I can choose to use webmail, mail.app on OSX, outlook on windows and thunderbird on linux. With gmail and gears you can choose to use ... a web browser.
And the web browser is a shoddy operating system. On. Every. Single. Level. Security, speed, stability, graphics. Why? Because it was never architected to be an operating system. And lacks just about everything a good operating system should have (including a wide range of developer platforms).
The only thing the web has is that the storage is online, and this makes for easy collaboration. However this is a feature of the internet and not the web, and I can easily enable all my client side applications to do this. Microsoft if they were smart, they would sort out the implementation of sharepoints into a decent platform for this. But MS is too slow. Apples is actually moving quicker on this.
Ok and the web makes incremental updates to a program quicker and seamless. But half my client side applications do this in the background now and are just as seamless. And at least I have a choice on if I want a client side app to update.
Whatever you can do on Google Docs I can do in word/excel faster and quicker and better. Because core operating systems are designed for this. JavaScript is not. It's a hack and shoddy one at that. And will be for a while.
The future of computer and user systems is not everything happening through the web browser. It's everything happening through everything. Client side applications, web browsers, offline web browsers, and other. The interface should be a choice. Right now Google Gears is lock in and not choice. Dispute this, but explain why not give gmail IMAP access instead of gears? They could have done this far more easily.
Don't confuse "I like gmail" or "I find greader useful" with "this is better architected". I have no issue with anyone choosing googles (or any other online ui) as their application of choice. But if you are going to argue it's a better architecture, you better come up with some damn good reasons. I've yet to see any.

1. annie
whzzzzzz
that was the sound of this post going over my head. I’m sure you’re right though.
Will leave it to someone more intelligent to make the intelligent comments.
2. Dragon
To be consistent I should take you to task over something in this post. I’m not sure I can. Oh, except the bit about Windows evolving…
But, with that aside, I’m inclined to agree with you.
Oh wait! There’s one: web has storage online… nope you’ve got that covered too.
I fucking loathe javascript and hate devolving important parts of application functionality down to being run “client” side and then having to code it several times to accomodate for different browsers.
It is, however, good for generating marquee or blinking text on the fly. That really annoys my current manager.
3. Adrian
We’re agreeing on something. Surely somewhere a universe just exploded.
Actually thanks for mentioning the “code several times for different browsers”. I forgot to mention that, but did think of it when writing this post in my head in the bath. I’ll go add it.
What worries me is that there is suddenly an entire group of people who see JavaScript as a decent platform (yes platform) never mind thinking it’s a semi-viable OS. (Yes Matt & Gordon, I’m looking at you, amongst others).
Speaking of the blink tag, after 7 years of blogging I finally found a use for it. Did you notice it in my twitter updater at the top of the index page.
4. QE
I’ve given up trying to organise actual paragraphs and stuff, so I’m just going to make statements I consider true. Some of them match things said in the post, QFE, and others are new opinions.
- Web browsers make a pretty lousy application platform, for lots of reasons as described in Adrian’s post.
- They’re much better than having no application platform at all, such as on a machine where you don’t have the permissions to install offline apps.
- Using internet-based storage is great, but it’s just as accessible to real OS apps as to online ones.
- Vendor lock-ins are always a significant disadvantage. IMAP 4tw.
I haven’t really joined this debate before now, because I consider the argument between the first two points to be moot. Clearly real OS apps are more powerful/secure/stable, it’s just a question of whether you have the authority/resources/etc. for the offline app to be a more appropriate choice than the online. And I still don’t think Matt was ever arguing that online apps were ‘better architected’. He prefers them for some things that he does, and that’s fair enough.Besides that, there’s middle ground that hasn’t really been recognised. Both the Java VM and the .NET VM have mechanisms for downloading and launching applications from the web (JNLP aka Java Web Start, and ClickOnce, respectively). This removes the main obstacles to installing client-side software and (theoretically, at least) allows apps as powerful as real OS apps. Apologies for the slight fanboi tone in the previous paragraph. It’s not that I care, really; perhaps the zealotry around here is catching.
The lock-in factor is a very good point, though. To steal Adrian’s example, IMAP is great: I can choose the provider (or get some hosting and choose the software with which to provide it myself), I can choose the client software, and if I need it online I can choose one of the perfectly good webmail apps.
Dragon: “It is, however, good for generating marquee or blinking text on the fly. That really annoys my current manager.”
Doesn’t generating marquee and blinking text really annoy everyone?
5. Matt
I didn’t laud it “as the second coming of the web saviour”. My main point (although not in so many words) was that you had pointed out in a comment on a previous post that Google Reader’s main flaw when compared to NetNewsWire was that it had no offline abilities. You could ync your Feeds locally on your Mac, and read them wherever, without internet access.
My point was that now, you can do the same with Google Reader. Granted, it still only works inside Firefox, but it still works, and it’s faster than shit off a shovel in offline mode.
Sevitz found a use for the blink tag, and he’s very happy about it. It says so when it takes a while for his Twitters to load.
6. razorhead
Whoa there cowboy. Bunging an SQLite database as a browser plugin with some (rather clever) Javascript is not a new paradigm, but it is very smart, no one has done this before and it’s going to make one helluva difference to people who with online data who are not connected all the time.
Google did this before when the XML Document Object was put to good use and popularized Ajax. (and I know ajax has been knocking about for a while, but I did say ‘good use’).
With Gmail BTW, you can go grab all your mail with a POP client, no lock in there. And don’t forget, Gears is open source.
Don’t get me wrong, I’m sort of with you on some points, but I think you’re being overly negative.
PS the difference between relational and alternative databases is that the former is based on sound mathematics, the latter are broken.
7. Adrian
Matt, ok maybe not lauding but close. Yours and Gordon’s Google posts do tend gush sometimes.
Point taken. I n the most mentioned I was giving a reasons for why I didn’t use GReader. In the discussion now I am explaining why I don’t think the web browser is necessarily the best platform for everything.
Razor, it has been done before. What you are talking about is implementation. However the fat client, thin client, client server circle has been gone around so many times, this is nothing new. Google Reader: Thin Client. Gears: Fatter Client.
POP takes away the server side aspect of mail, so I’ll fail you at that.
Gears is open source, but google does keep inventing new protocols instead of using existing ones. I’ll fail them on that too.
I’m not actually being overly negative, I think Gears and Slingshot are fantastic architectures and will find their place. I’m just highlighting how I feel everyone is getting too carried away and forcing the web browser to be something it’s not.
And relational databases are not good for everything. Their are other types of databases that suit other types of data better. That was the point of the byte article 10 years ago.
8. Matt
Apologies for the gushing! I think some of the things Google has been doing for the past couple of years have been astoundingly brilliant (even if it just involved buying a company with a good/interesting product), and have been exactly the things I’ve been looking for on a couple of fronts (take a bow, Gmail, Picasa, Google reader and lately Scholar) and definitely worth an occasional gush.
But they are also in need of criticism, and that’s where you come in, old boy.
You can criticise people and companies for trying to make the web browser something it’s not, but I’d be one to say why don’t they make the web browser into what it could be, as in a viable platform for all these services? Is it impossible? If not, why isn’t someone doing something about it?
9. Adrian
Look I have tremendous respect for Google and they have been good for the industry. Microsoft used to be too.
Just sometimes they get praise for not doing all that much either.
The thing is the web browser doesn’t need to be a viable platform for all these things. That doesn’t stop people trying to make it.
These things are cyclically and the web browser will go through several iterations as will the web. And as everything starts becoming more internet aware or enabled what the web browser needs to do and does will change.