Jeremy Keith on Web vs Native

Peter-Paul Koch wrote a post suggesting it was time for web developers and advocates to “concede defeat — or, at least, concede that the web cannot, and should not, compete with native when it comes to complex, app-like structures.”

In response, Jeremy Keith takes a broader lens and considers what the web is for:

What if the fundamental differences lie deeper than the technical implementation? What if the web is suited to some things more than others, not because of technical limitations, but because of philosophical mismatches?

The web was born at CERN, an amazing environment that’s free of many of the economic and hierarchical pressures that shape technology decisions elsewhere. The web’s heritage as a hypertext document sharing system for pure scientific research is often treated as a handicap, something that must be overcome in this age of applications and monetisation. But I see this heritage as a feature, not a bug. It promotes ideals of universal access above individual convenience, creation above consumption, and sharing above financial gain.

I agree with this. The web’s strengths are speed, accessibility, and a common document model. Web pages are, by default, easy to author, easy to publish, and easy to consume, which also makes them easy-ish to index, and therefore easy to discover via search engines.

By publishing web pages—not apps, but documents, full of meaningful content—you’re contributing something of value to a global base of knowledge, without necessarily sacrificing the ability to create an engaging experience for your own users. Well-made web pages can serve both ends.

But then there’s the “well-made” aspect, which speaks to the one thing for which web and native must truly compete: the time and attention of developers. AIR, Flash, Shockwave, and Java all came along and got some traction from the idea that you could write software once and have it work everywhere. Each of those technologies have now passed into history — or been repurposed for other, less ambitious means — because cross-platform apps offer an inferior experience, and also because native apps are not that much harder to develop, and the return on investment from building natively tends to be much higher.