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 than which tech stack is winning, and instead 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 everything Jeremy says here. 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 easyish 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” thing, 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 just once, and have it work well on all computers everywhere. Each of those technologies have now mostly passed into history (or been repurposed for other, less ambitious means) because it turns out cross-platform apps are inferior to native ones, but also that native apps are not that much harder to develop, and the return on investment tends to be much higher.