Browsers are not OS components

1
Official Construct Post
Ashley's avatar
Ashley
  • 15 Dec, 2014
  • 1,016 words
  • ~4-7 mins
  • 2,472 visits
  • 0 favourites

This is basically a rant about browsers that I need to get off my chest. I think it's crazy that some companies treat browsers like operating system components. This has disadvantages for distribution, reliability, security, and competition.

The job of an OS

Operating systems are the low-level software that manages the running of your hardware and the apps you want to use. Their jobs include managing device drivers, memory, files and processes - the primitives that apps are made with.

Apps on the other hand are what make use of these features. They do things like edit documents, send emails, and play music and movies. It should be obvious that a browser is an app. Downloading a web page and displaying it is not a fundamental system-level problem, it's just the job of normal software that runs on the OS. However with some major software companies treating their browsers as OS components, they cause problems for web developers, and even disadvantage their own browsers.

Reasons it sucks

As a web developer the main frustration is the slow update cycle and distribution. Operating systems are vast and complex engineering projects, and are developed and tested very carefully. Accordingly their release cycles are appropriately conservative, with yearly major releases about as frequent as anyone in the industry dares. By throwing a web browser in to the mix, it will see infrequent updates, and its subsequent adoption will be tied to the success of the OS and the number of users willing to go through sometimes painful updates. For example Windows 8.0 users are required to update to Windows 8.1 to upgrade from IE10 to IE11, and if the update is opt-in or users run in to problems like unsupported drivers when updating then they get stuck with an old browser. This probably explains why there's still a big chunk of IE10 users hanging around despite the fact "install new versions automatically" was a new feature of IE10. Oops. Then even if IE11 is competitive with the latest crop of browsers, Windows 8.0 users stand to gain a lot by switching to Chrome or Firefox, since they are normal apps and they can get the latest version. So this even seems to harm adoption of the OS maker's own browser.

The slow distribution also impacts reliability. Waiting for bug fixes is particularly frustrating with this process. A random selection bothering us at the moment includes audio crashing Windows Phone 8.1, IE11 having broken fullscreen mode, Safari ships a broken 'Set', AppCache breaks audio in Safari, some audio files crash Safari, and a few bugs preventing adoption of the new WKWebView. It's a long wait to see if they get fixed, and will the next update actually completely fix the problems, or just partly? Who knows! On the other hand Chrome and Firefox bug fixes can happen within days, and then steadily and predictably make their way through the developer, beta and stable channels in a couple of months, giving us and our users ample time to verify everything is working as intended.

While most OSs have an update channel for security fixes, sometimes the lack of choice on the OS impacts user security. For example iOS only allows a single browser: Safari. (There's also Chrome, but it's just Chrome's UI around the Safari browser engine, which is a compromise Apple forces on browser vendors to be approved for the App Store.) If there is a serious vulnerability in Safari, all users are affected and there is no workaround until the patch arrives - through an OS update, no less.

Finally, in particular Apple's restriction on only allowing Safari on iOS as if it were some core component that cannot be replaced also impacts market competition. Remember Chrome on iOS is just a UI on top of Safari, it's not really the Chromium engine. Firefox isn't available for iOS because they would want to port their engine, although they might change their mind and provide a Firefox wrapper around Safari like Chrome does. This means iOS has a total browser engine monoculture. There is no pressure on Apple to do better with Safari, except from entirely different systems like Android. Do you think this encourages Apple to make Safari better, or make them a little more lax about adding new features and fixing bugs? We know from the IE6 monoculture from the past how much this can hurt. I guess Apple can at least easily claim they have the best browser, because nobody is allowed to meaningfully compete on iOS.

How to do it right

Dear OS vendors: please feel free to bundle a browser app and develop it on its own schedule, but don't install a browser as an OS component. The only OSs I can think of that do this are Linux and Android. On Android Chrome is shipped as a stock browser, but it's an app with its own separate rapid release cycle, you can test the beta version, or get a genuinely different browser, or the beta version of that. As of Android 5, even the web view control used by apps gets updated independently of the OS. I think this shows only Google really understands the web and how to provide a good browser for it at the same time as the OS it comes with.

Microsoft went to great pains in the late 90s to argue Internet Explorer was a part of Windows to dodge their antitrust case. This was ridiculous, probably still contributes to IE's decline in market share with their OS upgrade requirements, and they look like they're making moves to contradict that argument anyway by moving IE12 to a rapid release cycle. For some reason Apple have gotten away with even worse on iOS: no other browsers are even allowed.

OS-bundled browsers need to be freed from their unnecessary ties to the operating system. Android demonstrates that this can be done, even at the level of embedding web views in to apps, and that it's a great idea. Then the web will be free to make even more progress than ever.

Subscribe

Get emailed when there are new posts!