R.I.P.: The Web
Regardless of where you stand in the debate, the results are now clear: native mobile has won. On any given day in April 2014, nine out of ten devices sold for the primary purpose of internet access will be running mobile operating systems (seven out of ten will run Android). Desktop computers aren't going away but they are moving into new roles, with most personal and home use migrating to devices running mobile operating systems: phones, tablets and set-top boxes. Typically, users of these devices do not contact the internet through a traditional browser; indeed, many do not even have a browser available. Does this diminish the experience? No. Major applications such as Instagram and WhatsApp completely de-emphasize the web. The mass market has embraced the non-web internet. It is only web developers who still think the future is up for grabs.
The debate has raged now for a few years. Advocates for HTML5 have touted the possibility of producing flexible, adaptive experiences that are easily optimized for whatever device is used. But that future never arrived and now native mobile development has decisively triumphed. How did this happen?
- The mobile web could only succeed with the assistance of the vendors of the major mobile platforms. But these vendors were more interested in seeing native apps succeed, ergo the web would always be crippled on mobile.
- The HTML5 standardization process could not produce a viable approach to fully utilizing mobile devices. Where support exists, it still requires developers to navigate browser compatibility issues and devices with fixed browser versions. The W3C simply cannot keep pace with the state of the art, and even their best efforts take too long to appear in deployed browsers. Many interesting advances such as webGL aren't even part of the unfinished HTML5 standards family. Despite being "open", HTML5 is a mess.
- It is not possible to deliver reasonable performance for modern applications on mobile devices using HTML5. Despite heroic efforts such as asm.js, it is just easier to write idiomatic native code.
- Mobile has a clear revenue stream through app stores...the web doesn't have an equivalent autopilot revenue mechanism. Native mobile development has enabled a generation of independent developers to make a living who would have gone broke trying to monetize the web.
Don't mourn for the web, it was never designed to be a platform for highly interactive, rich applications. It was designed to be a document delivery mechanism. It will continue in that capacity for a while, eventually becoming a ghetto. Critics respond that native apps cannot encompass the diversity of the web...are we really expecting users to download an app for each site they visit? No, but these critics are ignoring the obvious trend of traffic concentration on the internet...most of the independent services they use today will soon not be economically viable as independent entities and will eventually become data producers for the dominant data pipes like Facebook, etc. The dominant data services are already promoting native mobile apps, so the need for much of the web will vanish for most consumers. Desktop platforms will eventually support running mobile applications, so these users will not be left out either. The web will become the internet's strip mall, anchored by the revenue of seedy businesses that will be precluded from the premium native experience.
Lastly, some advice: if you are under thirty and a front-end web designer, you should see the writing on the wall and migrate to mobile development.
last update 2014-04-15