Skip to content

Is the Browser the New OS?

Yes, this is an old question. I still think it’s interesting. Disclaimer: I haven’t tried out a Chromebook yet.

First, let’s look at the situation as of late 2012. The applications I use generally fall into three categories:

  1. Web-based.
  2. Native, but easily available on Windows, Mac, and Linux. These include a file browser, a shell, Emacs, LaTeX.
  3. Native and less portable: Photoshop, development tools such as compilers and debuggers, high-performance games.

A quick look at the Chrome store indicates that most or all of the applications in category #2 are already available in browser versions (though I currently use the native versions out of inertia). Category #3 is trickier; it’s not clear that it really makes sense to port, for example, Photoshop into the browser. On the other hand, category #3 is basically power tools and many people (including me, much of the time) can get by using weaker web-based versions. Even embedded software development tools, which might at first seem to be the antithesis of web applications, have web-based versions. In summary, to a first approximation, “the browser is the new OS” has mostly happened already, though we do see an interesting reverse trend in the mobile space (though quite a few of those native apps are thin wrappers around a browser).

Second, how did we get to this point? The first application I ever saw that used a browser as its primary interface was SATAN in 1995. I remember thinking this was an elegant and striking design decision; it permitted the implementors to focus on their application logic instead of wasting time on what would likely have ended up being the kind of crappy X windows GUI that was standard at the time. Not long after 1995 we saw the rise of Java-enabled browsers making everyone (for a short time, at least) get interested in the potential for platform-independent applications delivered over the web. But this potential remained unrealized. Around 2008 it became clear that the following three efforts, taken together, constituted a serious attempt to create a new platform. First, Google Chrome, with a fast JavaScript engine and significantly increased robustness (and perhaps also security) due to the process-per-tab model. Second, Google Gears, which facilitated disconnected operation for web applications. And third, Google Docs, which implements at least 80% of the useful stuff in MS Office. Of course Gears is gone but similar functionality is available elsewhere. More recently, Chrome OS and the Chromebook make it clear what Google wants to see. I’m painting a sort of Google-centric picture here and in fact I use their stuff a lot. However, most of the time I could get by using Firefox, Bing, and other alternative technologies.

Finally, what is the prognosis for browser-is-the-OS, looking forward? What will it take for people to really not care about which OS they’re running? First, we want to minimize the number of applications in category #3, but realistically I think most casual users don’t have that many apps in this category and us power users are willing to compromise. For example, the special-purpose tools I use for research are probably always going to run outside the browser and that is fine—they’ll run on workstation-class machines at the office and in the cloud. Photoshop and high-quality video processing is not likely to be moving into the cloud real soon, but on the other hand again these are special-purpose, workstation-grade applications. Most people already do their photo editing online.

The second thing that I require is that any web application that looks remotely like an editor (whether for programs, documents, presentations, web pages, or whatever) has to support rock-solid disconnected operation and have a sensible conflict resolution mechanism. Google Docs’ disconnected operation seems pretty good since last summer, but I worry that lots of applications are going to need special-purpose logic to handle this nicely, and it’s going to be a long slog since many developers won’t consider disconnected to be a priority.

Third, we need near-native performance in the browser. Plenty of JavaScript work has been done and it’s getting pretty fast. For more compute-intensive workloads Google Native Client seems like a good option.

In summary, we seem to be headed towards a segregated world where most people don’t need a PC, but rather an appliance that runs a browser. On the other hand, people who use computers more seriously will keep using workstation-style machines that run native apps when considerations such as performance, dealing with large amounts of data, security, reliability, and local control are paramount. I’ll go ahead and predict that in 2022, the number of PCs sold will be 25% of what they were in 2012. By PC I mean something like “non-Android, non-iOS machine primarily intended to be used by a single person to run native applications”—a category that includes all laptops except Chromebooks.

{ 5 } Comments

  1. Andre | December 21, 2012 at 12:03 am | Permalink

    Somehow I doubt that PC sales will decline that much. Time will tell. But I agree that mobile devices will be the “successor of the PC” in the future. Of course PC is not entirely outdated in certain areas like programming, resource consumptive apps, data inputs, etc.

    BTW, I’m not sure whether this is relevant or not, but probably will grab your interest. It’s called Tizen (https://www.tizen.org/): a Linux-based OS designed to run HTML5 natively.

  2. MD | December 21, 2012 at 10:35 am | Permalink

    Regarding #3: We might be getting there as well, some notable developments include:
    http://media.tojicode.com/q3bsp/
    http://www.quakelive.com/
    http://gaming.adobe.com/technologies/flascc/
    https://github.com/kripken/emscripten/wiki

  3. Adrien Lamarque | December 21, 2012 at 12:29 pm | Permalink

    @MD: Quake Live is not really relevant since the game runs on (native) plug-ins.

    I have to say that I’m kind of sad of this trend for various reasons, one of them being the usability of web apps compared to native apps. Except for a few very well thought, like gmail or Synology’s DSM, I find that most of the time web apps are a pain in the ass in terms of usability. Maybe I’m just too much of a power user to be able to compromise on that.

  4. bcs | December 21, 2012 at 1:13 pm | Permalink

    tl;dr; A prediction that in a few years there will be very few usages that a phone can’t handle but that you will be willing to own a big enough computer for. I.e. run it on your phone/tablet or run it in the cloud.

    I expect there will be somewhat of a market for “personal clouds” that are in effect consumer oriented headless boxes with more storage, CPU, network access, physical security or stability than you would get in a mobile device. I expect they will be as common and dedicated home file servers.

    http://herbsutter.com/welcome-to-the-jungle/

  5. George Hahn | December 22, 2012 at 2:58 pm | Permalink

    I agree absolutely. In fact, this is part of the reason I left my job writing embedded C and will be moving in an EE direction (going to school full time again; will be blogging about it later).

    Native apps will never die, but the apps we use every day will begin to appear as web apps. This happened to email long ago; the trend has continued through document and picture editors, and is even beginning to reach compilers, IDEs, and schematic capture and layout applications.

    As a continuation of this idea, Javascript has suddenly become one of the most important languages to be proficient in. For example one can write both sides of a website in Javascript using Node.JS. Take that fact and add in the bit about ubiquity of JS browsers, and you’ve got an extremely intriguing language. So intriguing, in fact, that when a beginning CompSci friend asked me how to start programming as a hobby, I had to strongly recommend JS (or TS, I suppose) as a language to learn. (That’s coming from a hardcore embedded C + C#/.NET practitioner)

    TL;DR: Native options will always exist, but online options will soon appear for every class of application. If learning a language, learn JavaScript and write webapps.