May 13th, 2011

"You can do everything on the web:" fourth time's a charm?

Tom Boutell
Chief Software Architect
The Google Chromebook is out. It's a laptop that boots in eight seconds and takes you straight to the web, where all your stuff lives anyway. It's a game-changing, Microsoft-killing, paradigm-shifting ball of excitement... or is it?

As a web development firm, we naturally like the idea that, in Google's phrase, "you can do everything on the web."

But this isn't the first time we've heard this. I count at least three serious efforts in the past:

1. Apple initially resisted pressure to allow third-party apps to "run native" on the iPhone, insisting that iPhone-friendly mobile websites were plenty good enough. Why not? You can add them to your phone's homescreen and launch them just like apps. You can do everything important with our apps, you can do everything else on the web!

2. In 2007, Wal-Mart pushed extremely low-cost PCs loaded with Linux from several manufacturers. An Everex spokesman described one as "almost a Google PC." You can do everything on the web for $200!

3. Palm bet the farm on WebOS, a new smartphone operating system released on the Palm Pre and the Palm Pixi. WebOS apps are written entirely in JavaScript, CSS and HTML. You can call everybody on the web!

So what happened when the web platform met reality?

Apple flip-flopped and gave developers access to the iPhone SDK (later renamed iOS). In low-level, superdorky Objective C, no less, with exciting 1993 features like manual memory management.

Wal-Mart's cheap Linux PCs came and went. Rumor has it that most users dumped Linux (which was, in this case, pretty much intended as a way to get up and running in your Chrome browser) and installed Windows, legally or otherwise.

WebOS bombed in the marketplace. Critics loved the OS, but users didn't buy the phones.

So maybe you can't do everything on the web. Or can you?

Let's look at these earlier efforts. Apple's flip-flop happened because early iPhone models were too slow to run JavaScript (which powers web apps) with anything like the performance of native code. On a laptop or PC, you have speed to spare and can sacrifice some of it to the task of making JavaScript run fast enough for "real" apps... by which I mean the casual games that truly endear people to their iPhones. Also, Apple's app store allows them to control the marketplace, charge a tax on every app and enforce user interface standards, all things you can't do on the open web.

Wal-Mart's "Google PCs" were not actually Google PCs. They didn't have Google's name behind them and were perceived simply as really, really cheap PCs. With hard drives. On which you could install Windows.

And WebOS failed in part because of speed concerns— games written in JavaScript are nice in theory but they have a tough time keeping up on an underpowered handheld device— but mainly because customers didn't like the actual devices.

Contrast this with Google's new Chromebooks. Google has been aggressive in taking the hard drive out of the device, both to reduce costs and to make clear that this is a true "cloud device" in which all of your data lives (and is backed up redundantly) on the web. You can't just chuck ChromeOS and install Windows. Google has also created an elaborate series of videos educating users about the benefits of making the shift to using web apps and keeping their data in the cloud. Notably, there is far less need for antivirus protection or software updates.

And between the release of those early, halfhearted "Google PCs" (not actually blessed by Google) and today, web apps have improved dramatically. But more importantly, the web platform has entrenched itself in the minds of end users. In 2007, I still said "yeah but..." when a friend talked about using Google Docs exclusively— or just using Basecamp for business communications and chucking the print metaphor entirely. Today I shake my head sadly and feel sorry for the person who just doesn't get it.

Also, Google has brought the ChromeBook into entire companies, bringing groups of users who actually work together on board at the same time and creating impressive success stories around lower maintenance costs and just plain lower costs.

And yes, you can play Angry Birds on a ChromeBook. It's available through the Chrome Store. (You don't have to wait for a ChromeBook; it'll work on your regular PC. Which is, after all, a ChromeBook Plus. That boots really slowly and needs lots of software updates. But still, Plus.)

So will ChromeBooks succeed where earlier attempts to make the Web the "real" platform have failed? I think so. Netbooks are already successful, and they are underpowered for most tasks other than using the web and watching DVDs. That's OK because most people just use the web and watch DVDs. Even on full-power laptops and desktops, many of us are already spending our entire day in our web browser tabs, running other apps only to pull in photos, write songs, edit video or fling poultry.

You still can't write songs or edit video on a ChromeBook at the same level as in GarageBand or iMovie, and I think there will be a market for "content creator" PCs for a long time— a separate tier from the "web PC." While many people (including ourselves) are creating tools to create content directly on the web, there will still be a place for the performance you get when nothing has to travel over a network before you can hear or see it. But that place will be an important niche, not the mainstream. The PC category as we know it is about to undergo a sea change.

Update: it has been pointed out to me that Google is cheating a little. Google Chrome's "native client" feature allows "web" apps to run directly on the host computer, bypassing JavaScript and going straight to C and C++ for the most performance-critical features. This isn't "web standards" as we know it. Obviously this would also be a huge security fail, except that Google has implemented "sandboxing" at the operating system level that prevents the code from accessing any inappropriate features of the system. In principle this is similar to the protection you get in any multiuser operating system— or with classic Java applets in the web browser (those were cool once). Is it possible that this will work out well and be safe to use? Sure. Java applets have historically been safe, most of the time, with security patches deployed promptly. How well this feature turns out will depend on how well Google has guarded the door against attacks, and whether there are any as yet unknown security flaws in the underlying operating system or even the CPU that allow code to gain root access. These are manageable risks, but they are greater here than they would be in a system like Java or JavaScript that imposes more layers of abstraction between the "guest" code and the host computer.

Update to the update: since Chrome on my MacBook happily runs Angry Birds, and Native Client (aka NaCl) is currently disabled by default, we can assume the game was implemented using web standards rather than NaCl. That suggests you can achieve impressive performance without resorting to NaCl, which might be something you consent to use if you really want to edit video on your ChromeBook.

Thanks to maethorechannen for his insight on the Native Client issue.
Tom Boutell
Chief Software Architect