browser fragmentation

The browser has been our main tool for consuming the web ever since the very beginning. It's still the most efficient tool to access massive amounts of data coming from various resources, but a couple of years ago browsers suddenly encountered some serious competition when apps started to emerge. Browser vendors and html enthusiasts countered with a knee-jerk reaction in order to compete with apps, the question remains whether that was the right way to go.

browser vs app

Even though apps and browser compete for the same audience (ie everyone using the web), they often fail to realize that they both have very different goals. A browser is a tool constructed for massive data consumption. It's anything but single-focus and it allows you to quickly get all the data you need. Apps are made for single-focus, smaller data consumption. Apps are mostly single-purpose tools that remove the cruft of a browser and get the single unit of data you need to you as quickly as possible.

It's a pretty important distinction that demonstrates the pros and cons of both approaches. Apps are great to replace sites you want access to at all times (Facebook/Twitter), but they suck when you need to find something random or you want broad input on a problem (like product reviews). Browsers are great if you want to gather lots of data and you don't really know where to look, but they suck when you want to quickly consume a single unit of data with known location.

And yet, when you look at the war being fought between apps and browsers these days, 90% of the battles are fought over pointless design or functional quibbles that have little to do with how the technology can best serve its users. Worse is the fact that browser performance and stability is seriously suffering because of that.

browser fragmentation

Remember the days Netscape and IE were fighting for dominance? Well, today there are five main browsers, five main OSes and a never-ending list of hardware to deal with. One of the most annoying things is that browser-families fail to act consistently across different platforms. If something works in Firefox Windows, you can't trust it to work in Firefox OS X. If something works in OS X Safari, that doesn't mean it works in iOS Safari. Surely OSes are partly to blame (Apple's iOS restrictions for example), but browser vendors still have a responsibility in this matter. I get that it's hard to abandon a popular (mobile) platform just because the platform's owner is actively trying to shun you, but in the end it's the user that suffers.

The result is that almost every browser is trying to gain market share on all the different platforms available. Chrome was released on iOS, even though it can't use its javascript engine, Opera was released on iOS, even though it can't use its rendering engine. Firefox is aiming to take a piece of the market cake by releasing an Android version and no doubt once Windows 8 is going to be available we'll see browsers expand their territory into the Windowsphere. Sadly reality shows us that, at least for some part, these platform spin-offs can't be trusted to act consistent with their parent browsers and are in fact, different browsers only bound by name.

front-end feature creep

In order to compete with apps, browsers are coming up with the craziest css and javascript improvements to recreate that typical "app" feel. In reality this means a lot of unstable graphical and functional features are added, stuff nobody is particularly interested in when wanting to consume information. 3D css3 animation? Who cares. Direct camera feeds? Useful for like 0,00001% of all sites out there. What I really want when I look for something on the web? The information .. as quick and painless as possible.

It's not that these new features aren't nice, at best they slightly improve the overall user experience, but for now they are a serious attack on the stability and performance of browsers. That and the fact that partial support and lack of proper fallbacks are actively hindering people finding the content they are after. Sometimes I open a page in Opera (yeah, I switched) and don't even comprehend what I'm seeing. Having to open Chrome to see what these Picasso-like layouts are all about is the saddest user experience one can imagine.

browser regressions

What's even worse is that all those new css and javascript features seem to impact the stuff that's been working seamlessly for years. Recently I've seen Chrome fuck up drawing table borders and containing inline-block elements. That's oldskool css2.1 stuff, bugs that ie8 would be ashamed of having. I've noticed similar things happening to Opera and Firefox, only not as in-your-face.

It doesn't really help that Firefox and Chrome update themselves every 6 weeks without a single word of warning. I've come to a point where I don't really trust new releases of browsers to behave the way they did before, then again, we can't check all our sites in full every time a new browser version is released. That would be a full-time job considering the current variety of browsers and platforms. So stuff that worked before might break in cutting edge versions of new browsers, is this really 2012?

conclusion

Rather than focus on what they're good at, browser vendors are spending a lot of their time competing with very specific functionality, sacrificing stability in the process. I can't remember ever having so much trouble browsing the web even though my demands changed very little in the past 10 years. I still want to find the info I'm looking for, as quickly as possible. Most of the time apps won't give people that, so they're hardly life-threatening competition.

Technological advancement is nice and needed, but not at the expense of stability and user experience. Maybe the problem is the way we define user experience nowadays (focusing on transition effects and looks rather than speed and lack of friction), but browsers should be smarter, not giving in to every whiff and whim of the development community.