A bazillion years ago in Internet time (aka 1995), Brendan Eich, Marc Andreessen, and the rest of Netscape looked at the World Wide Web and saw a sparsely tagged world of static documents -- a computational desert where a programmer's seed could find no purchase.
Technically, the browser doesn't offer what we've come to expect from the traditional OS. Purists will complain: Does the browser team spend any time worrying about the gnarly tangle of device drivers? Does the browser keep the file system clean and uncorrupted? Does the browser juggle multiple threads of differing priorities and help them share the same processor cores in a way that might be considered fair? The OS guys take one look at Chrome and laugh because that browser just punts, splitting itself into a different process for every Web page, letting the OS layer do the work.
Despite these very legitimate plaints from OS geniuses, the browser is the dominant layer, the one nexus for software, the one switchboard where all power lies. It needs from the operating system a rectangle to draw the Web page, a bit of storage space, and a TCP/IP feed. It does everything else in a cross-platform way that is, when all is considered, relatively free of bugs and other issues.
And the programmers are following users to the browser to deliver functionality in the main place users expect to find it these days. Here are 10 reasons why the browser is now king.
Browser as ultimate OS reason No. 1: The rise of vast, rich Web applications
Gmail is one example of the thousands of large programs that regularly run in our browsers. Many let us do the lion's share of tasks once left to native applications. There are integrated development environments (Codio, Cloud 9, and more), image editing packages (AIE, among others), and plenty of HTML5 games (see below). The browser is not limited to static documents and filling out forms.
A long time ago, people would point to the standard apps for reading mail or editing photos and say, "Can your browser do that?" Now the answer is yes.
Browser as ultimate OS reason No. 2: Easy extensibility via plug-ins
Browser as ultimate OS reason No. 3: Its open source foundation
There are many different meanings loaded into the phrase "open source," and the browser illustrates one of the most influential. The Web's languages have always been easy to understand -- at least compared to native binary codes -- and when the early developers included the "view source" option, they made it easy for programmers to learn from each other.
Openness encourages innovation, and this is one of the biggest reasons we've seen the browser layer swell with so many clever additions. Building software for the browser layer is easier, encouraging more work to be done there. The pace of innovation is blinding because good ideas are emulated and improved quickly. Everyone can learn from everyone else's work, then teach everyone in return. This feature alone has created so many programmers that it should be considered a national treasure by those committees in Washington who are always campaigning to create more STEM students.
Browser as ultimate OS reason No. 4: Metaprogramming
Openness doesn't just mean the source code is available for others to copy, revise, and extend -- it also applies to the data in the browser right now. Some software packages like Greasemonkey make it possible to write software that runs on top of the software running on a Web page. Greasemonkey can reach right into the Web page code and resize an element, change a variable, or rewrite the text itself. It's like open source coding in real time.
There have been attempts to offer this kind of feature to classical operating systems, but the scripting systems have never had access akin to Greasemonkey's in the browser. Even the most sophisticated scripting tools, like AppleScript, access the code only through an API. Purists may not like someone messing around with their variables, but they don't have as much fun. This is why some of the cleverest tools are available in the browsers.
Browser as ultimate OS reason No. 5: Multiplatform simplicity and mutability
There will be some who point out, quite correctly, that not every Web page looks good on odd-shaped screens. Some websites look like a car hit them when they're viewed on a tall, thin mobile screen. The elements are scattered everywhere, and nothing lines up. Something went wrong with the float styles.
Those problems are fading as Web designers learn how to plan ahead for the wider range of browser-based opportunities that are appearing. They're learning to be flexible and elegant so that the content can flow easily regardless of the device on which it will appear.
Browser as ultimate OS reason No. 6: A clean abstraction layer
The Web's open source foundation encourages rapid evolution of best practices for design. There are still some corners of the tech world -- say, Apple -- where a few designers insist everything be done their way using their native framework. But for all of Apple's success in wielding Vader-grade control, it can't beat the Web. Every innovation created for iOS is quickly imitated and rolled into the major frameworks that dominate the HTML5 world.
The browser's democratic populism lets the best ideas bubble up as everyone constantly experiments. This is in large part due to HTML and CSS, which have evolved into a clear abstraction layer that separates concerns, making collaboration easier for everyone. Designers and programmers can target their specific layer and, where possible, bring in predesigned libraries and frameworks to leverage the work of other designers and programmers in their own code.
Browser as ultimate OS reason No. 7: Better sharing models for libraries
Libraries have always been one of the biggest sources of headaches for programmers. One application on the computer wants to use Version 3.4.666 of a library, and the other wants Version 3.4.667, but the operating system can only find the wrong one. When things don't align, some call it "bitrot" and others call it "versioning errors." Either way, everyone loses.
The browser world offers a better way of distributing libraries. Many Web pages link to a few centralized copies of popular libraries like jQuery or Dojo. Instead of using their own version hosted with the website, they link to a central version offered by one of the Web infrastructure companies like Yahoo. These are more likely to be caught by the cache, thus saving the next Web page the time of downloading this version of the library.
These centralized versions are neatly numbered. If two Web pages use Version 1.9.1 of jQuery, then the cache will do its job. If one switches to a newer version, both will function. The cache might not save much time until they start using the same version again, but the switch works without a hitch.
The approach is not perfect. If the central copies are corrupted or infected with malware, every website using them could be jeopardized. But when was the last time this happened? Switching to a local version of the libraries, the simplest fix, wouldn't be hard.
Browser as ultimate OS reason No. 8: Fertile, competitive marketplace
Once upon a time, there was only Netscape. Then Internet Explorer dominated. Now it seems like everyone has a browser that's competing. Chrome, Firefox, IE, Safari, and Opera are just the beginning. There are dozens of other minor browsers with their own devotees. The mobile platform has even more.
All of them are competing for eye share. The best one wins, but only until the next upgrade cycle. Then the competition begins again.
This battle breeds quality. The best browsers with the most useful features flourish while the casual hacks disappear. This doesn't always happen in the world, but when it does it's great for consumers. When it's good for consumers, it demonstrates the power of the browser layer.
Browser as ultimate OS reason No. 9: SVG, canvas, vector graphics, great user interfaces
The early Web pages may have been slightly dull, but that was before clever programmers figured out how to animate the CSS properties of a DIV or a SPAN. Now rectangles and the words within can flip, spin, turn, fade, blink, and even -- perish the thought -- just sit there.
Browser as ultimate OS reason No. 10: Node.js
The package offers spectacular performance for some jobs simply by tossing aside the threaded model common in past generations. Instead it adopts the callback function, one of the idioms of browser programming, to juggle the workload. In the right hands, programmers can sidestep the dangers and produce a clean mechanism that dishes up the information from the server quickly and efficiently.
Next up for the ultimate OS: the computer in your car.
- Dev-olution: Saluting 19 generations of computer programmers
- Quiz: "Hello, world": Programming languages quiz
- Quiz: Programming IQ test: Round 3
- 15 workplace barriers to better code
- 9 key career issues software developers face
- Top 7 dilemmas facing today's developers
- 7 programming myths -- busted!
- 10 hard truths developers must learn to accept
- 11 programming trends to watch
- 12 programming mistakes to avoid
- Safeguard your code: 17 security tips for developers
- Download: InfoWorld HTML5 Deep Dive
This article, "10 reasons the browser is becoming the universal OS," originally appeared at InfoWorld.com. Follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.