Peter-Paul Koch and the browser dilemma

In July of this year, mobile platform strategist, consultant, and trainer, Peter-Paul Koch (PPK), published an article on his blog, Quirksmode, called “Stop pushing the web forward.” When PPK publishes, people tend to listen and at AREA 17, we’re no different.

Peter-Paul Koch and the browser dilemma

PPK always sparks debate

Not long after PPK’s post hit the internet, everyone at the agency received an email from global technical director, Luis Lavena. “This is a very good article from Peter-Paul Koch,” Luis wrote. “It focuses on the current dilemma faced while creating websites.” Alright, worth a read. But rather than just share the link, Luis, somewhat uncharacteristically, went on:

Too many web browser features, partially implemented, all aiming to re-implement Native without being native and us (developers) having to deal with all these quirks and issues across browser and vendors. All in the name of a better user experience.

But is that really the reason? Do all those new partially-broken things really bring improvements? Or are these so-called improvements just mimicking something else?

How much are we paying for this constant evolution and ongoing game of catch-up? Not only in time and resources, but also the distraction from what’s always been our priority — content.

While a bit technical, I think it’s a good read for everybody.

Enjoy and discuss!

Luis’ prompt set off a rapid response from Paris technical director, Ned Baldessin, pushing back on Luis and the famous PPK. It’s a great read with a nice look back at the development of the web so we wanted to share it:

The main point, as I understand it, is that the web platform API is spread too large and thin, and that we should stop adding features and focus on the core user experience.

Focussing and enhancing the user experience is precisely what the Google Chrome team (the main target of his rant, really) is doing. Better yet, they are doing so based on real usage data. For example, they dropped further enhancements in multicolumn layout in CSS, because it wasn’t really used much, and was slow on mobile. Same goes for hyphenation and other typographic enhancements: they were too slow on mobile, so they got pushed back.

On the other hand, they are pushing hard to introduce new APIs to map the capabilities of these new devices: beacons, device motion and orientation, server push, vibration, speech input, WebRTC, etc. To understand why they are so gung ho on this, you have to understand that we are in the middle of the web’s third platform war.

Let’s rewind…

Web War I, Web vs desktop applications, mid to late 90’s

With the explosion of interest in the web and belief in its potential to revolutionize all human interactions (see Wired Magazine, circa 1996 – 1997), the Browser Wars (Netscape vs Internet Explorer) came to an end when Microsoft recognized that the web was a bigger threat than Java to its platform dominance and killed the browser market by releasing an excellent browser for free. The thinking was that the web would be an app platform, so Microsoft tried merging the browser with the file explorer, and pushed ActiveX, a technology to make use of native Windows functionality in a web context. Others attempted from different angles: “push” technology, AOL’s walled garden, Apple’s Sherlock, etc. Everyone could see that the strength of the web was content and reach, so “open and available” would win over “proprietary and restricted.”

Web War II — Web vs Flash — early to mid 00’s

Client-side web development was a nightmare by the late 90’s, very much like HTML email development is still today. Flash offered a stable, performant, and feature full platform. Most web platform innovation was happening in Flash. Microsoft had put a stall on the web platform by greatly slowing the development of Internet Explorer. We couldn’t use transparent PNGs. Z-index stacking didn’t work properly. In a heroic effort Dean Edwards built “ie7.js”, which was the ancestor of todays polyfills, and managed to fix (at the expense of performance) some of IE6’s bugs using JS and ActiveX hacks. The W3C was powerless and acting like a bureaucracy.

Mozilla, Opera, and Apple — the underdogs of the web at that time — detached from the W3C and formed the WHATWG in order to advance both browser technology (specifying parsing rules) on user-facing features (form validation, audio, video, etc) under the umbrella “HTML5”.

In 2007, with the release of the first iPhone, Flash was evicted from the web platform by Apple, the main reason put forward was performance: Adobe couldn’t deliver a Flash player with good performance on an iPhone 1. (Note: the eviction certainly also had other reasons, like not extending the reach of Adobe’s platform for free, but that’s another story). HTML5 was pushed further, and resulted in a Cambrian explosion of web APIs, many of which already existed on the Flash platform: file api, binary blobs, user media recording and playback, sockets, pixel buffers (canvas), 3D, etc.

The web platform “won” once again, despite a technological disadvantage to Flash. The fact that it wasn’t owned by anyone allowed it to resist and re-flourish.

Web War III — Web vs mobile apps — 2010 to present day

People now spend more time using mobile devices than a desktop computers. Trillions of dollars are being spent on this platform war. Nokia (Meebo, WebOS) has lost. Microsoft (Windows Phone) has lost. Mozilla is building FirefoxOS phones for free and trying to gain market share in emerging markets. Google, in order to properly display ads on new entertainment channels, makes phones and tablets, layered with two operating systems, layered with a browser! So in order to make the web platform still relevant on mobile, Google is pushing hard to add new APIs mentioned above.

This is when PKK comes in and tells us that we should stop adding features and celebrate the good old webpage of yesteryear.

Everyone at AREA 17 is acutely aware of the value of reduction in design, less is more, user-centered design, etc etc, so on the surface I’m sure everyone agrees with his argument. But these APIs are a reflexion of the capabilities of these new devices. The web is “catching up” because we are doing what we’ve always done: find common interoperable ground, and extract common usage patterns into high level APIs. It’s not catching up, it’s making native platform patterns of usage and interaction into universal standards.

Second, and more importantly: these are high level APIs, mostly related to I/O. They offer new territories to explore. Are they useful? We’ll see.

What PPK isn’t talking about is the new frontier of innovation happening in the inner core of the platform, for example:

Service Workers — programmatically handle all requests routing, opening great capabilities for smooth transitions between online and offline.

ES6 and ES7 — at last, Javascript is starting to become enjoyable to write!

Web Components — brings encapsulation and easy sharing of functionality.

HTTP/2 — reduce latency and speed up page load.

Houdini — an effort to redefine the building blocks of CSS

Responsive Images — a great example of how grassroots web developers can take over the standardisation process and contribute to it (thanks Mat Marquis, Yoav Weiss, and others).

These additions to the platform are a direct result of the new blood in the W3C’s TAG, and are defined in the Extensible Web Manifesto: “make bedrock level APIs available and then standardize the resulting higher level APIs (built in JS) once a consensus has emerged.

I would agree with PPK that there’s currently a strong feeling of fatigue in the community (mostly I think because of an overwhelming amount of new tools coming out every week), and that we need to separate the wheat from the chaff. But that shouldn’t be at the expense of new platform features, like Apple is doing.

In the end, what we see is that the web is systematically championed by those that have the most to lose in a platform war:

– Microsoft fearing to lose it’s Windows monopoly to Netscape (and Sun)

– Apple losing a decisive platform feature to Microsoft, and then later building the iPhone platform up from nothing against Flash

– Google, countering the iOS native platform and saving its advertisement-based business.

That’s how the web evolves. It feeds off these platform wars. On the other hand, it’s guaranteed to be the eternal underdog.

Which is good, because who doesn’t love an underdog?

Thanks Luis and Ned!