The web isn’t broken because of poor performances, lazy developers, or complex specifications, it seems affected by a hierarchy issue and by the misconception about what is a web app.
The Matryoshka Effect
Browsers shipped with iOS or Android devices are native apps, just like Instagram or Facebook. Mobile apps are accessible by their users from the same level. Websites instead, are available at a lower level, inside the browser. To access a web app you must first open the browser, type or recall a URL and even you can access them from the home screen, what you get is just a “wild app” that behaves and looks like a website.
The wild/web app is just a different kind of website, just like a blog is a different kind of website and Twitter is a different kind of blog. But differently from websites, web apps are solely composed of a single—sometimes heavyweight—web page that can smoothly request additional content in the background and show them without requesting other web pages. In this way, websites can mimic applications behavior with some substantial differences:
- they can’t access (all of) hardware features or other apps data
- websites are downloaded and processed every time you request them
- web views or browsers can’t provide the same execution speed of native runtimes
Mobile Apps are Just Clients
Successful iOS and Android apps (excluding the calculator some games and other few apps) are clients—just like web clients—connected to server-side RESTful web applications made with Python, PHP, Ruby, Node.js, Java, Scala, Erlang, Go, and so on. In the end, what you are using is just a small selection of clients for the most used web applications. The client, what the user sees, is only half part of a complex system that still resides on a web server.
Stop thinking of websites as “crabapps”
Browser vendors (Mozilla is one of them) have the opportunity to establish a friendly environment in which web clients would be first-class citizens and not just web views with a sub-user experience served by a competitive environment. Some mobile app features can be adopted first than others (I agree with @ppk here) and adapted to a “native web” model. Offline access and background tasks are some examples of high-priority features.
This means that we don’t need more accounts, approvals, marketplaces, updates, downloads, and other mobile app frictions. To remain useful, the web should evolve as a rich, diverse and advanced publishing platform (as it is already), providing what people care about in this context, information, and human interactions, in an undemanding and streamlined way. We can call it ”emphasis on speed”, ”Hassle-free” or immediacy, at the end, at least on one thing, we all agree.