Google Chrome, HTML5, and the new Web platform

The Chrome dev team is working toward a vision of Web apps that offers a clean break from traditional websites

A friend and I were debating the other day: Is it appropriate to refer to Google's Chrome OS as a platform?

We in the tech press often use the terms "operating system" and "platform" interchangeably, but they aren't always the same thing. Ubuntu is an OS, for example, but it's not really a platform. The platform in that case is Linux.

HTML5 Deep Dive
[ Go deep into HTML5 programming in InfoWorld's "HTML5 Megaguide Deep Dive" PDF how-to report . Then understand the issues surrounding HTML5 today in InfoWorld's HTML5 Deep Dive PDF strategy report. | Learn how to secure your Web browsers in InfoWorld's " Web Browser Security Deep Dive " PDF guide. ]

Chrome OS is also based on the Linux kernel, but as user environments go, it offers much less than Ubuntu does. A Chrome OS device boots directly into a version of the Chrome browser that's virtually indistinguishable from the Mac or Windows version, nothing more. The OS supports no other applications except those that run inside the browser.

Does that mean Chrome OS is just a browser, interchangeable with every other browser? If so, then it hardly seems appropriate to refer to it as a platform, when all it does is show us the same websites and applications we've always used.

But maybe that's not right. More than any other browser vendor, Google has been aggressively evolving Chrome to include features and capabilities that set it apart from the classic Web client. Google is doing more than just developing technology. It's realizing a vision. By the time it's done, the Web browser -- and Chrome in particular -- could resemble a full-fledged application development platform more than ever before.

Web apps reloaded

Want proof? Check out Google's new "Field Guide to Web Applications," published this week by the Chrome developer relations team. It's essentially a crash course in the world of Web app development. What's interesting, however, is that Google's definition of a Web app may not be quite the one you remember.

For starters, the guide makes a clear distinction between Web "apps" and "sites." Unlike simple websites, it says, Web apps have rich UIs and use asynchronous techniques -- if you ain't AJAX, you're out. Furthermore, unlike websites, Web apps "encourage people to interact, engage, and accomplish something, rather than passively view content."

So far so good, but Google goes further. Web apps, it says, take advantage of the full size of the browser windows available to them. Traditional website navigation elements are hidden from view, and browser controls like the Back button are disabled. Instead, Web apps use the same paradigms as desktop applications -- buttons look like buttons, dialog boxes look like dialog boxes, and users can follow traditional UI patterns such as drag-and-drop.

There's more. Web apps, Google says, follow a "primarily" client-side architecture model. That means they handle most of the application logic in the browser itself, rather than making constant trips to an application server. They also work offline (which not even all of Google's services can do). If that wasn't ambitious enough, they use the capabilities of the device they're running on, which means not just the screen and traditional input devices, but also GPS, accelerometers, or any other sensors that might be available.

A new kind of browser for a new kind of app

That's a tall order. It's a set of capabilities beyond what we expect of the traditional Web browser -- in fact, a few years ago no browser could have supported them all. But because of Chrome's rapid release schedule and its revolutionary silent update mechanism, Google has been able to roll out not just security updates but also new features at a remarkable rate.

Google is as gung-ho about HTML5 as anyone, and Chrome's HTML engine regularly scores highest in standards support tests. Chrome has also led the pack in JavaScript performance, and Google is moving aggressively to implement the features the next version of the JavaScript language, code-named Harmony.

But recent versions of Chrome have also incorporated other, decidedly nonstandard technologies. One example is Native Client (NaCl), which allows Web apps to run compiled object code at near native speed. Another is Dart, a programming language designed to replace JavaScript; experimental Chrome builds now include a Dart virtual machine. Then there's Chrome OS itself.

It should be no surprise that competing browser makers have been reluctant to implement Google's less orthodox inventions. But even when they've tried to emulate Chrome, they've struggled. When Mozilla switched to a rapid release schedule for Firefox, it met resistance and was eventually forced to provide an alternative for enterprise users. And if users have been skeptical about Chrome OS, Mozilla's Boot to Gecko project seems even less fully baked.

When you add it up, it starts to look as though, for all the noise Google makes about Web standards, Chrome is moving further and further apart from competing browsers, just by virtue of its technological advantages. In that sense, maybe Chrome isn't just a Web browser; maybe Chrome itself is the platform -- or is becoming one.

Chrome: Threat or menace -- or neither?

If Google is crafting a new kind of platform for the Web, is there anything wrong with that? If you believe the search giant already has too much influence over Web standards through its browser and its participation in the various standards bodies, then maybe so.

On the other hand, Google's primary source of revenue isn't Web browsers, Web standards, or the accompanying developer tools. It's advertising. Google doesn't need to dominate W3C standards to maintain its core market. It just needs a healthy, thriving Web -- and maybe, just maybe, accelerating the Web's evolution away from the classic client/server model toward something that more closely resembles a desktop application development platform is a way to ensure that the Web remains vibrant.

Check out the "Field Guide to Web Applications" and let me know what you think. How will Web designers react to the idea that they should discard traditional Web UI paradigms? How will J2EE developers react to the suggestion that Web apps should be primarily client-based? How will browser makers react to the need to support nontraditional sensors and input devices? Even if Chrome is not yet a development platform in its own right, the Chrome dev team has certainly built a compelling platform for debate.

This article, "Google Chrome, HTML5, and the new Web platform," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.

Copyright © 2012 IDG Communications, Inc.