By John Gruber
Never deploy an infrastructure bastion again. Try Tailscale now.
Christopher Mims, writing in the WSJ, “The Web Is Dying; Apps Are Killing It”:
Everything about apps feels like a win for users — they are faster and easier to use than what came before. But underneath all that convenience is something sinister: the end of the very openness that allowed Internet companies to grow into some of the most powerful or important companies of the 21st century.
I can’t believe someone is still writing this in 2014. Users love apps, developers love apps — the only people who don’t love apps are pundits who don’t understand that apps aren’t really in opposition to the open Internet. They’re just superior clients to open Internet services. Instagram didn’t even have a web interface for years, but native app clients for iOS and Android didn’t lock Instagram into anything. Their back-end is just as open as it would have been if they had only had a web browser client interface. They just wouldn’t have gotten popular.
I spoke about this four years ago at O’Reilly’s Web 2.0 conference, in a talk titled “Apple and the Open Web: A Love Story”. The gist of it being that native iOS apps (and native apps for Android, Mac OS X, Windows, and everything else) aren’t in opposition to the “web”. They live on top of the web. A new layer. They are alternatives to websites that run in web browsers. They’re just better clients. There are two big four-letter “H” acronyms that powered the web from the beginning: HTML (client) and HTTP (networking protocol). Native apps are just an alternative to HTML running in a web browser (and many native apps still use HTML web views embedded within the apps themselves to render parts of their interface). Almost all native apps use HTTP/S for networking, though.
It’s just a conceptual simplification. Instead of a web app running inside a browser running as an app inside an OS (three levels of abstraction), we just have apps running within an OS (two levels). Simpler, easier, more elegant.1
Take that most essential of activities for e-commerce: accepting credit cards. When Amazon.com made its debut on the Web, it had to pay a few percentage points in transaction fees. But Apple takes 30% of every transaction conducted within an app sold through its app store, and “very few businesses in the world can withstand that haircut,” says Chris Dixon, a venture capitalist at Andreessen Horowitz.
That’s patently false. Even with Mims’s own example, Amazon. Just a few minutes before sitting down to write this piece, I used Amazon’s iPhone app — the one distributed through Apple’s App Store — to buy some stuff. I added items to my cart, signed in with my getting-close-to-two-decades-old Amazon account, and I was done. Apple won’t see one penny of that transaction. Not one.
If Amazon started using Apple Pay in their app, Apple would have gotten a fraction of a penny of each dollar I spent — but those pennies would have come from my credit card company, not Amazon.
Retailers who sell through native apps do not pay Apple anything, let alone 30 percent. What Apple charges 30 percent for are purchases for in-app digital content. I can’t buy Kindle books in the Kindle app, or Amazon MP3 music, because of this — but I can buy everything else from Amazon.
The Web was intended to expose information. It was so devoted to sharing above all else that it didn’t include any way to pay for things — something some of its early architects regret to this day, since it forced the Web to survive on advertising.
Says the guy writing for the site with a rather strict paywall.
And exposing information, freely, is where the web continues to thrive (says me, the native app proponent who publishes everything I write on a freely-accessible website). If something works great as a web app, let it be a web app. (There are some great web apps, perfectly suited for what they are.) If something works better as a native app, let it be a native app.
The Web wasn’t perfect, but it created a commons where people could exchange information and goods. It forced companies to build technology that was explicitly designed to be compatible with competitors’ technology. Microsoft’s Web browser had to faithfully render Apple’s website. If it didn’t, consumers would use another one, such as Firefox or Google’s Chrome, which has since taken over.
So let me get this straight. Microsoft’s Internet Explorer “was explicitly designed to be compatible with competitors’ technology”. I can’t wait until Jeffrey Zeldman reads this. From a 2007 Businessweek profile of Zeldman:
This concept may seem obvious today, but during the Browser Wars of the 1990s, Microsoft and Netscape each claimed close to 50% of the market, and their browsers were almost entirely incompatible. It wasn’t uncommon to type in a URL and find that the site didn’t work. Companies eager to open their virtual doors had to invest in multiple versions of their sites. In short, it was a bad situation for businesses and consumers alike. Yet the browser makers were behaving as many software companies do — by trying to out-feature the competition with the introduction of new proprietary technologies.
Back to Mims:
“In a lot of tech processes, as things decline a little bit, the way the world reacts is that it tends to accelerate that decline,” says Mr. Dixon. “If you go to any Internet startup or large company, they have large teams focused on creating very high quality native apps, and they tend to de-prioritize the mobile Web by comparison.”
Many industry watchers think this is just fine. Ben Thompson, an independent tech and mobile analyst, told me he sees the dominance of apps as the “natural state” for software.
Ruefully, I have to agree. The history of computing is companies trying to use their market power to shut out rivals, even when it’s bad for innovation and the consumer.
How has the rise of native mobile apps been anything but a renaissance of innovation? I’d argue we’ve seen far more innovation in the iPhone era (2007-2014) than from 2000-2007. I can’t see how anyone would argue that we’ve seen less innovation. We used to print driving directions from mapping websites; now we get audible turn-by-turn directions on our devices. The pre-mobile web was largely about consumption for most people: reading articles, watching videos, buying stuff. In today’s world, everyone is creating and sharing their own content — everything from photos to videos to their thoughts and observations. Mims claims native mobile apps are “bad for innovation and the consumer” while consumers around the world are doing remarkably innovative things using native mobile apps.
That doesn’t mean the Web will disappear. Facebook and Google still rely on it to furnish a stream of content that can be accessed from within their apps. But even the Web of documents and news items could go away. Facebook has announced plans to host publishers’ work within Facebook itself, leaving the Web nothing but a curiosity, a relic haunted by hobbyists.
Here is where Mims most betrays his conflation of client software and “the Web”. For the sake of argument, imagine a world where all native apps went away. A world where we do everything through web browsers like Safari, Chrome, Mozilla, and IE. In that world, Facebook could do exactly the same thing — “host publishers’ work within Facebook itself”. Exactly the same thing. The control Facebook is exerting here has nothing to do with native mobile apps in particular. They’ve always locked non-Facebook users (like me) out of most content posted to Facebook. Now they’re just talking about hosting even more Facebook-only content.
Arguments about “open” and “closed” often devolve into unresolvable cross-talk where the two sides have different definitions of what open and closed really mean. But the weird thing about a truly open platform is that its openness allows closed things to be built on top of it. In broad strokes, that’s why GNU/GPL software isn’t “open” in the way that BSD software is (and why Richard Stallman outright rejects the term “open source”). If you expand your view of “the web” from merely that which renders inside the confines of a web browser to instead encompass all network traffic sent over HTTP/S, the explosive growth of native mobile apps is just another stage in the growth of the web. Far from killing it, native apps have made the open web even stronger.
Chrome OS is an attempt to simplify things a different way: web apps running inside a web browser that presents itself to the user as the OS. ↩︎