About the decline of the mobile web

I linked to an article discussing the decline of the mobile web yesterday, and for the most part, I agree with it. Mobile is overtaking the web.

John Gruber doesn’t agree:

I think Dixon has it all wrong. We shouldn’t think of the “web” as only what renders inside a web browser. The web is HTTP, and the open Internet. What exactly are people doing with these mobile apps? Largely, using the same services, which, on the desktop, they use in a web browser. Plus, on mobile, the difference between “apps” and “the web” is easily conflated.

In essence, he claims that Internet-connected native apps and websites alike are all part of the web.

I don’t know if I agree. Being able to navigate from document to document is what made the World Wide Web popular; hyperlinks are such fundamental part of the web that for me, they are what define it. You can’t link to elements of a mobile app. You can’t link from one app to another. Well, you can in some cases, but it isn’t something that is there by design. So no, apps and websites aren’t both part of the web. Apps are connected, but there is a distinction to be made here.

We should celebrate, not bemoan, that the web has diversified beyond the confines of browser tabs and the limits of HTML, CSS, and JavaScript. Let websites, rendered in browsers, be good at what they’re good at. (And websites are perfect for so many things.) But let native apps be good at what they’re good at, too. Like water flowing downhill, users gravitate to the best experiences. Saying that we’re worse off for the popularity of native mobile apps is like saying water should run uphill.

No argument here—native apps offer mobile users a better experience. But instead of taking this as something set in stone is idiocy. Why not concentrate on making the performance of browsers better? Instead of thinking “nothing is faster than a native app”, why don’t we think outside of the box? What if websites were served as native, compiled software that runs locally? What if JavaScript wasn’t the only client-side language? What if HTML, CSS and JavaScript were treated as first-class citizens at the hardware level? These may be crazy ideas, but breakthroughs often originate from crazy ideas.