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 really 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 by a single — sometimes heavyweight — web page that can smoothly request additional contents in 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 the half part of a complex system that still resides on a web server.
Stop thinking to 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 apps 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.