Today, Google announced on their
blog that they are working on a OS based on their Chrome browser and Linux. The
blogosphere has been expecting this
announcement for a couple of years now. It's been pretty obvious that Google was positioning itself to compete against all of Microsoft's core products, adding first Google Apps to compete with Office and then Google Chrome to compete against Internet Explorer. A Google OS is the final piece, taking on Windows.
I find it amusing the excitement that a Google OS generates. It seems to speak more to a dislike of Microsoft than to an excitement about Google. After all, if Google is successful, it will be in a more dominant position than Microsoft ever was, controlling the operating system,
productivity applications, email and search (which effectively controls the
Internet). That doesn't sound like a
particularly desirable outcome. We all know monopolies tend to stagnate. After all, it took
FireFox to drive Microsoft to improve Internet Explorer, Java to drive Microsoft to scrap COM and now Google Apps to drive Microsoft to update Office. I would hate to see Google replace Microsoft as another monopoly.
On the other hand, operating systems are a bit of a special case. Having a single dominant operating system leads to innovation at the next layer.
OpenSpan only has to develop for Windows currently, which lowers our costs and allows us to focus more effectively. Standards are supposed to alleviate this problem, but standards are equally problematic. I was a web developer when Netscape and Internet Explorer both rolled out their own
implementations of HTML 4.0. Having to develop cross-browser scripting code was an absolute pain in the ass. I've had similar experiences dealing with different Java server
environments, each with their own little quirks. "Write once, run anywhere," usually means "Write once, debug everywhere." Moreover, standards tend to be produced slowly and are very rarely perfect. Browser and
JVM creators are notorious for jumping the gun and rolling out versions that are compliant with an interim standard, but not the final standard. They are also notorious for rolling out innovations that are not compatible with other browser or
JVM implementations. Developers are constantly presented with the choice of targeting the lowest common denominator and sacrificing
functionality, targeting a specific
implementation and sacrificing market share, or targeting multiple
implementations and sacrificing time and money.
Of course, Google will argue that they will not be dominant or
monopolistic, because the Chrome OS is designed to bring web
applications to the desktop. Here's
Google's description of the Chrome OS
architecture:
"The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel. For application developers, the web is the platform. All web-based applications will automatically work and new applications can be written using your favorite web technologies."Google's statement reminds me of the Palm
webOS (on the
Pre), which allows you to build softphone apps that use web
technologies. These local apps are built with HTML and javascript, but they still rely on webOS services to interact with the local system. Is this how the Google Chrome OS will work? Or will the Chrome OS only allow users to interact with
applications in the cloud,
ie. no local storage, etc.? Most likely, the Chrome OS will do both, and some
applications will be compatible with Windows, Mac and Linux and some will not.
If Google wants to demonstrate a commitment to open standards, it could roll out a Chrome OS
virtualization layer to run
applications on Windows. This would actually be a pretty smart strategy, extending the reach of the OS while deflecting potential criticism. Likewise, to gain widespread adoption, providing a Windows
virtualization layer to run Windows applications on the Chrome OS will be required. Ultimately,
virtualization may make much of this mute,
particularly if we move from machine
virtualization to OS
virtualization (thus eliminating the need for OS licenses). It will also be interesting to see if Google open sources the entire Chrome OS. The Chrome browser is mostly open source (as Chromium), although Google does add some small
functionality (
mainly branding) on top of the open source
implementation.
The most fascinating aspect of this will be Microsoft's eventual response if Google is successful. Right now,
Google's search revenue funds free
applications like Google Apps, Chrome and the Chrome OS. Google is going to need to make money off of these eventually, as I'm guessing most people don't want advertising on their desktop. In the meantime, however, being free is a really big competitive advantage for Google. Will Microsoft eventually be forced to make Windows free as well? Will Microsoft have to move more
aggressively to a cloud model to compete? Whatever happens, Google has succeeded in making the desktop market interesting for the first time in a long time, and it hasn't even released anything yet.
Today or tomorrow I'll follow up this post with some thoughts on how the changing OS market impacts OpenSpan and provide some insights on how our architecture is already positioned for the post-Windows world.