The Web is Both Extremely Fast and Agonizingly Slow

Firefox OS is coming – Ars posted a preview of a prototype, and while its chances of success are slim in the face of (relatively) more mature mobile operating and eco-systems[1], it’s encouraging to see how something as rich and as complex as an operating system be built with web APIs and standards. In fact, the rate of progress that the web has seen these past few years has been nothing short of astounding, going everywhere from game engines to a multitude of compile-to-JS languages to webapps that are almost indistinguishable from native ones.

That last point has been the crux of the argument to how apps (usually of the mobile variety) should be built. Webapps that are as polished as Forecast are extremely rare, and plenty of companies – big and small alike – have given up trying to make HTML5-based apps work, citing browser performance and lack of native APIs as reasons that web apps will always have that inferior, laggy user experience.

From a purely technical standpoint, we’ve had six years of continuous improvement in hardware and browser engineering to erase a lot of the failures that plagued the original iPhone’s attempts at making web apps a mobile standard. Mobile browsers are much better at parsing JavaScript; they can hardware-accelerate CSS animations; they can download megabytes of web code in seconds with LTE connections. We ought to be able to build performant apps as sites, except that there’s still no indication of a mass movement to mobile HTML.

iOS, Android, and Windows Mobile have well-defined frameworks for app development, and while official frameworks can’t move quite as fast as the open source community as a whole (see: JavaScript MVC framework explosion), they plant a flag in the ground and set the platform’s standard. The UI components, data storage and access APIs, offline handling and touch/swipe interactions were all provided by the SDK, and were enough to attract a critical mass of developers during those early years. Half a decade later, the design and engineering has evolved to allow for more custom interactions, third-party integrations, and designs that go above and beyond their systems’ standards.

The openness of the web has the opposite effect: there are a huge diversity of frameworks and designs, but rarely a dominant standard that developers can rally and fortify a standard around. Almost a decade after Google showed the world what it could do with a simple XMLHttpRequest, I can’t recall a time when we’ve had wide consensus on how to build a desktop or mobile web app[2]. The noise-to-signal ratio of web development is maddeningly high; it evolves at breakneck speeds, but seems to strive to merely catch up with the innovation shown by mobile app development.

That’s the promise that a mobile Firefox OS brings to web apps. It’s not so much technologically superior to mobile OSs as it is a beacon that web development can coalesce around: a platform with an SDK that sidesteps the evolutionary crawl that seems to be a requirement for open standards. Even if the initiative fails horribly, we can hope that it will establish the bar that all subsequent web development should be measured against.

Footnotes    (↑ returns to text)
  1. Not to mention, backed by much more money and engineering firepower.
  2. The closest we’ve come has been some combination of HTML5, jQuery, Backbone.js and Twitter Bootstrap, though consensus is still too strong of a definition.