Not too long ago the job of a Web browser was simple: Get the text from the Internet and pour it into the window. If a tag like comes along, change the font. Now the challenges are greater because the browser is becoming the home for almost everything we do. Do you have documents to edit? There’s a Web site for that. Did you miss a television show? There’s a Web site for that. Do you want to announce your engagement? There’s a Web site for that too. The Web browser handles all of that and more.
Choosing a best browser is an impossible job. On one hand, the programs are as close to commodities as there are in the computer industry. The core standards are pretty solid and the job of rendering the document is well understood. Most differences can be smoothed over when the Web designers use cross-platform libraries like jQuery. Many Web sites look the same in all of the major browsers, a testament to the hard work of the developers and their desire to get their information out to the largest audience.
On the other hand, there’s a lot of competition, and some very smart people are working hard to produce very clever new innovations. Yes, some of the so-called innovations are trivial, but if you’re going so spend all day with a piece of software, it makes sense to be picky. While you may not care if someone moves a button from the left to the right, other users do — and the discussion forums are filled with debate.
It may be impossible to be rational about many of the cosmetic issues, like the placement of buttons or the location of the tabs. These are intensely personal decisions, and the look and feel can often be changed with add-ons. There’s not much point debating these issues.
The technical details can also be a bit personal and political, but they have bigger implications for developers and consumers everywhere. You may or may not like Adobe Flash, but the support or lack of support is important for all of us. Careers of Flash developers and the fate of projects they build will rise and fall on these issues. And Flash is just the beginning — all of the browsers are rolling out various combinations of new features, but developers can’t begin to use them until there’s a stable platform with wide enough adoption. The control of the living room screen is worth billions of dollars, and the success or failure of the browser’s video delivery mechanism will determine who may or may not have control over that shimmering rectangle and the zombie eyes glued to it.
Choosing a Web browser is made even harder because solid numbers are often preludes to debate. Some people complain when their browsers suck up every spare byte of memory. Others want their browsers to respond immediately. In many cases there’s a trade-off because the programmers gain speed by filling up the memory and precomputing and precompiling every part of the Web page. You can have small or you can have fast, but you can’t have both.
Often, the bloat isn’t the fault of the browsers themselves, but the Web designers who lard up the site with endless AJAX calls and slick morphing features. Some users may blame the browser when they have 80-odd tabs opened to pages that are issuing AJAX calls left and right. The poor browser has to try to keep them all ready in case someone wants to see any of those tabs immediately.
Choosing among Chrome, Firefox, Internet Explorer, Opera, and Safari is not simple. All are perfectly good choices, but one may be slightly better for certain users than others. Sophisticated users, including developers, may want a browser that supports the latest standards, while casual users may want to avoid the cutting edge for simplicity and stability. Others may have a favorite plug-in they can’t live without. Some users may want to choose based on the location of the buttons. The choices are close enough that this could be fair if you really care about your interface.
The battle of the Web browsers: Google Chrome 5.0
It’s easy for a programmer to be enthusiastic about Google’s Chrome because Google has been emphasizing some of the things that programmers love. Chrome sticks each Web page in a completely separate process, which you can see by opening up Windows Task Manager. If some Web programmer creates an infinite loop or a bad AJAX call in a Web page, Chrome isolates the trouble. Your other pages can keep on running. This isolation isn’t perfect, though, because Chrome users have still experienced crashes.
The good news is that Chrome is among the fastest current browsers, at least when using long-running JavaScript loops as benchmarks. It also offers good support of the HTML5 standards and will continue to push them, at least in spirit.
There is some confusion afoot, though, because in addition to backing HTML5, Google is also embracing Adobe Flash. Google is supporting Flash by including it in the Android OS, and reports claim future versions of Chrome will sport their own, well-tuned version of the Flash plug-in, an approach that will probably do even more to fix crashes and annoying bugs. The developers won’t be able to point at each other across the moat and blame the other side.
Google also encourages plug-ins, and the collection for Chrome is growing quickly. Chrome’s plug-in architecture is much simpler than Firefox’s because it only lets coders write in HTML, CSS, and JavaScript. This is typically more than adequate, and many Firefox developers port their creations to Chrome with little extra work.
If there’s one complaint about Chrome, it’s that it remains a relatively small presence; thus, Web developers usually get around to testing their work on Chrome only after trying IE, Firefox, and Safari first. Just the other day, one of Facebook’s AJAX calls failed on Chrome but worked when I tried the same button on IE. Chrome offers nice developer tools, though, and I suspect that the Web development gap will slowly disappear.
If that’s not enough for you, Chrome is also the one and only component of the Chromium OS. When the operating system boots, it starts up Chrome, then it’s nothing but HTML for your machine. It’s a very lightweight vision of the future.
Best for: People who want to juggle many windows filled with code that crashes every so often.
Worst for: People who get upset when a website breaks because the developer tested the site on IE only.
The battle of the Web browsers: Firefox 4.0 beta
The old Netscape died years ago, but somehow it begat the Firefox browser that gave us many of the innovations being copied by IE and others. The project found a nice source of revenue by routing search requests to Google, and this supported much of the work of the last few years.
No one knows how stable this source of revenue will be in the future. Google leapfrogged Firefox bybuilding a browser of its own, in part to fix the headaches caused by malfunctioning plug-ins like Flash. Firefox is now offering its own “crash protection,” which restarts plug-ins when they stop delivering. Firefox handles this internally, though, because the browser still runs most of the work in one process. Chrome relies more on the operating system by sticking each page in different OS processes, an approach that the Mozilla group will probably eventually come around to using.
One of the strengths of Firefox continues to be the large collection of extensions and plug-ins. These can all be written in a mixture of JavaScript, CSS, and HTML, something that makes them a bit easier for the average Web developer to tackle. (In contrast, Microsoft’s add-ons can be written in C++.)
Firefox add-ons like Greasemonkey make it even easier to write simple scripts that meddle with the DOM of incoming data, a nice playpen for creating your own quick add-ons. Firefox’s model is pretty sophisticated too. While many widgets and extensions in the world are limited to JavaScript, CSS, and HTML, Firefox offers serious programmers more control with XUL. Is it necessary? I’m not sure, but it certainly makes it possible to create more sophisticated applications.
Firefox has not offered the fastest JavaScript performance on the computation-heavy JavaScript benchmarks, but that may not be important for most users. The speed of rendering and the responsiveness of the Internet connection are probably much more important to average browsing. Nevertheless, the Mozilla developers say a new JavaScript engine will be arriving in the fall.
Best for: People who enjoy the wide-open collection of extensions.
Worst for: People who write long-running scientific simulations in JavaScript.
The battle of the Web browsers: Microsoft Internet Explorer 9.0 beta
The days when practically everyone used Internet Explorer are long gone, but the browser continues to dominate, thanks to the fact that it may or may not be integrated with the Windows operating system, depending upon the political winds. Microsoft noticed the erosion from total world domination several years ago and is now rapidly adopting some of the best features from the alternatives. Tabs were added some time ago, and Internet Explorer add-ons are now plentiful enough to form a gallery. Many of the innovations that began with Firefox and Opera are now available with IE8.
Some of Microsoft’s claims may strike you as a bit funny. The company notes on a checklist that IE8 supports “Web standards,” then points out it supports only CSS 2.1 because it’s more common than the newer CSS 3.0. Well, yes, and CSS 2.1 will remain more customary until IE officially adopts it because most Web developers will want to avoid heavy use of any feature that doesn’t work on one of the most ubiquitous browsers.
But if Microsoft isn’t on the cutting edge of the new standards collectively called HTML5, it’s pushing its own features. IE8 helps people “browse safely,” a worthy goal that it pursues by offering more and better ways to check the provenance of the information. I’m not sure whether it’s possible to actually attach a number to this protection — Microsoft claims that IE is “5 times better than Chrome” and “2.9 times better than Firefox in protecting against malicious malware.” The company claims IE can do a better job of catching fake URLs and URLs that lead to sites pretending to be something they’re not. Whether or not this can be quantified, it’s a promising path to take because the provenance of information is a big, big challenge for the Internet.
This focus, however, is coming after a long series of security holes in either IE or the add-ons given too much power by IE. Any search engine can help you find stories about hundreds of vulnerabilities found and patched. The root of all of these troubles seems to come when IE is a bit too generous to plug-in packages. This is almost certainly a deep failure of a strategy to let developers add many features that work very well with Windows and not other systems. ActiveX controls, for instance, offer nice performance through deep integration with the operating system, so they help cement IE and Windows’ position. The only problem is that this deep integration has produced many, many vulnerabilities over the years, and it’s not clear that Microsoft has finally stopped them all.
I’m personally torn about the approach Microsoft has taken. While this deep integration has opened up many opportunities, it has also created problems beyond the security dangers. Add-on developers have access to the registry and other weird corners of the operating system, a big difference from the simpler sandboxes used by the other browsers. I’m sure some Web-based game developers appreciate this speed, but I think a simpler model would have been easier on everyone.
IE9 now offers many of the features that drew me to other browsers. There’s a nicer developer tool for debugging JavaScript, and the speed is catching up to the others. The collection of IE add-ons is large and markedly different in style from those for other browsers. Many come from merchants who offer to help make it easier to search their catalogs, spy good deals, and of course spend money. There are so many toolbars that it’s easy to build a browser with a fat header and a tiny spot for real content.
In the end, IE’s greatest strength may continue to be its fading dominance. Web developers may skip testing on Safari or Opera, but they know that the boss or the boss’s boss is probably using the default browser shipped with the computer. Despite the prevalence of good cross-platform libraries, I continue to find Web pages that only work on IE. This is the kind of feedback loop that reinforces dominance.
Best for: People who don’t care or don’t want to care. IE is still the most likely to work with most websites.
Worst for: People who worry about browser-based attacks and those who want to try the latest HTML5.
The battle of the Web browsers: Opera 10.60
For a long time, Opera’s main selling point was raw speed. The company was proud of how its browser rendered a page faster than any other. This domination continues. Opera version 10.60 on Windows got the fastest results in the SunSpider JavaScript benchmarks of any of the browsers I tested. All of the browser developers are reporting big gains in SunSpider and similar benchmarks, but Opera still seems to be leading.
I’m not sure if this is a critical point for users because the main bottleneck seems to be the speed of the Internet itself. However, JavaScript execution speed may become more important when people start using their browsers to do large amounts of data manipulation and raw computation. The SunSpider benchmark includes many computationally complex operations, like AES encryption and searching for prime numbers with a sieve. Still, much of the work handled by JavaScript today is rendering some XML data or changing some background color.
Opera the company, though, is not focused strictly on the browser. It continues to offer smart, out-of-the-box software that rethinks the current model. Opera Turbo, for instance, is a layer of proxy servers on fast Internet lines. Opera Turbo will fetch the pages for you, then compress them to save bandwidth. This may not be a big win for people with fast lines to their desk, but it should be valuable to mobile browsers with slower network connections and — this is important — tight limits on the amount of data that can be consumed each month.
Another neat solution is Opera’s widgets, little Web applications that run on your Windows, Mac, or Linux desktop. I’m not sure I would go so far as to call them “native applications,” as some documentation does, because the widgets are written in Web languages (HTML, CSS, JavaScript) and run in some Opera sandbox. But somewhere in the stack there’s some x86 code, right? These are structurally pretty similar to the widgets that are part of Mac OS X. Opera also has a few tools that make it relatively easy for anyone with a hint of programming ability to create a widget.
Indeed, it’s almost unfair to focus too much on the desktop version of Opera browser because the company is tightly connected with the mobile market. It continues to innovate and surprise me more than any of the other teams.
Best for: Raw speed and innovation.
Worst for: People who can’t imagine straying from the pack.
The battle of the Web browsers: Apple Safari 5.0
Apple took the old Konqueror browser from the Linux world and injected a large amount of development talent to produce a very nice browser for Mac and Windows. Safari’s WebKit engine is also the heart of the browsers in the iPhone and the iPad.
Safari is a very good option. The speed is competitive, the controls are simple yet comprehensive, and the developer tools are nice. Apple is just opening up an extensions gallery to the general public, and some developers have already ported popular extensions from Chrome and Firefox. There’s nothing missing from Safari that a user might want, but on the other hand there’s little to make Safari unique or irresistible.
The biggest interest in Safari on the desktop may come from the Web developers who want to target the iOS world of the iPhone and iPad. Creating customized Web pages is simple to do with a few extra tags, and the result often runs like a native app developed for the platform. Plus, Safari isn’t the only browser built on WebKit. Google also uses the WebKit rendering engine for its Android phones, and the iOS and Android browsers behave similarly in many but not all cases. When RIM’s BlackBerry team releases its own WebKit browser, WebKit’s dominance of the mobile Web will be even greater.
Apple is pushing HTML5 as part of its skirmish with Adobe over Flash. Safari already offers many of the most important HTML5 features, and it will almost certainly get more of them quickly.
Best for: Web developers who want to support WebKit phones.
Worst for: Lovers of extensions and add-ons.