As a developer, articles declaring the death of the web are easy to dismiss out of hand. It’s not unusual or unexpected for people to predict (or herald the arrival of) the next big thing and declare the status quo dead. Yet despite the mobile explosion over the past few years, the web is going to remain the dominant software platform for the foreseeable future.
First, let me say that by web I mean HTML content accessed in a browser or lightweight browser-like shell. A broader definition might include the HTTP APIs used by nearly every native mobile application. By that definition, the web has no competition at all.
Why the web?
Native applications existed long before the web. Why then did the web come to be such a powerful platform for software distribution? Even in the days of Internet Explorer 6, the web gained ground due to several key advantages:
- No Installation. To access a web application, you simply visit its URL in a web browser. Every user of every operating system can access a web application within seconds of desiring to do so.
- Always Up-to-Date. With no installation comes no update process. Every time you access a web application you get the latest version (with the latest data) for free.
- Cross-Platform. Because the web is built on open standards, anyone can build a web browser. The web promises true write-once-run-anywhere software and (short of some annoying browser quirks) delivers on that promise.
- Network Effects. Web applications link to one another without need for permission. Every link works just like every other link. The concept of “going viral” only exists because URLs are universally shareable.
- Fast Enough. On the desktop, hardware advances yielded faster and faster devices. This led to an inflection point: for most software, most of the time, web applications were fast enough. They were functionally equivalent to their native counterparts.
These advantages sum up to the lowest barrier to entry in software history and an opportunity too good to pass up. Designed as a way to deliver documents, the web soon became something much more: an application platform.
Mobile, mobile, mobile
With the meteoric rise of the App Store it’s easy to forget that 2007 Apple’s original “app” plan was all about the web. While many things contributed to Apple’s move to native third-party apps, the most-cited reason is performance-related user experience. We’ll talk about that shortly.
The App Store brought massive improvements to native application distribution. Installing and updating apps suddenly became almost as easy for the end user as visiting a web site. The App Store also provides a single centralized payment authority (never underestimate the power of stored credit card data!). These factors have led to many touting mobile app stores as a viable competitor or successor to the web.
With global smartphone penetration outpacing that of the PC, has the web finally met its match? Is it time to pass the torch onto the younger native app generation?
Pretenders to the throne
This isn’t the first time that the open web has faced a popular adversary. America Online boasted a massive walled garden of content in the mid-nineties. The biggest ISP in the United States at the time, they geared their entire service toward users living within it. Today AOL is a content company that runs properties (including TechCrunch) on, you guessed it, the open web. The web won.
Flash was once the toast of developers and users alike. It offered things that HTML didn’t like video, animation, sound, and interactivity. The Flash plugin was installed in more than 97% of all browsers. Today, Flash is on around 14% of websites down from a high of more than 50%. The web won.
There will always be new technologies challenging the web for software dominance. Many of these will have advantages in one area or another over the web at first. But that’s the web’s superpower: it keeps evolving. As Jason Kottke wrote in 2007, “In competitive markets, open and messy trumps closed and controlled in the long run.”
July 22, 2010 is one of the most important dates in the history of the web platform. It’s the day Google announced a six-week major version release schedule for Chrome. Chrome, then on version 5.0, is now on version 34.0. In 2011, Mozilla followed suit and announced a similar plan for Firefox. A fast-paced release schedule coupled with a “release channel” concept (early access to new features for the willing) forever altered the landscape of web development.
Consider that Internet Explorer 7 came out five years after Internet Explorer 6. Chrome set the new normal release pace to be 40 times faster. It’s no coincidence that the set of browser technologies called “HTML5″ went from zero to commonplace in the same timespan. Browser vendors must evolve their platforms or be left behind by increasingly discerning users.
More than a document viewer
Modern browsers are operating systems in their own right. Browser technologies exist to meet or exceed nearly every advantage of native. A few examples:
- Real-Time/Push Messaging. It used to be impossible to send data to a browser after the page loaded without a new request. Today Server-Sent Events andWeb Sockets make it straightforward, and services like GoInstant, Firebase, and PubNub make it trivial.
- Rich Media. Most people are familiar with the HTML5 video tag. Now we also have (or soon will) ways to access webcams and microphones, establish peer-to-peer video communication, and even process voice input straight from the browser.
- Offline Access. Web applications can run offline, store data changes, and synchronize them once networks become available, just like native apps.
- Device Awareness. Modern mobile browsers can access device orientation, accelerometers, GPS geolocation, and network connectivity information.
As new use cases emerge, it’s never a question of if the web can support a new technology. It’s just a question of when.
For many of the web’s doomsayers, the only issue worth consideration is performance. “The web will never be as fast as native apps!” they cry. And they’re right. But the web doesn’t have to be as fast as native, it just has to be fast enough.
Most-often cited is Facebook’s abandonment of HTML5 as “proof” that the web isn’t fast enough. There are several problems with this argument:
- Anecdotes are lousy evidence. Even at the time,others claimed that the issue was in execution, not concept.
- It makes sense for Facebook to build native apps even if the improvement is minor. Facebook can afford to hire whole teams of developers to support each platform. Most companies aren’t so lucky.
- It happened almost two years ago. That’s 15 Chrome release cycles ago. Web tech changes, and fast.
Recent developments like asm.js are bringing high-end game engines like Unreal and Unity to the browser. Hardware accelerated transforms make buttery smooth animations and transitions a reality, even on mobile. What you can do today in a browser seems like magic compared to just three years ago.
If you’re building a graphics-intensive game or video/image manipulation software, by all means build native. For the vast majority of applications, however, multi-platform native is going to be an anchor around your developers’ necks. And developers are really important to the dominance of software platforms.
Developers, developers, developers
While users dictate the demands of application functionality, developers make it happen. The web as a platform is easier to learn and lets developers do more faster than any other platform. That’s why companies from Treehouse to Codecademy to General Assembly focus more coursework on the web than any other platform.
The distribution of the web is objectively the largest on the planet. Every platform that has native apps also has a browser. That’s why HTML5 is the #1 job trend on Indeed. That’s why I’ve been able to use a Chromebook as my primary computer for the past year. And that’s why, regardless of the short-term advantages of competitors, the web will eventually rise to the top.
The web does have a few tricks it could learn from mobile. We need standards for browser-driven authentication like Google’s login on Android. We need simpler ways to pay for things on the web (requestAutocomplete is a good first step). We need tools to make application-building a first-class concern of HTML (Web Components, led by Google’s Polymer Project are going to change everything). As a developer working with web apps for more than a decade, I am confident that the technology will evolve to meet the demands of developers.
By all means go out and try the shiny new technology. That’s how the technology industry (and the web) gets better. Just be careful not to get too swept away. Betting against the web in the long run has always been a sucker bet. My advice is to be extremely careful before you place it.
TL;DR: XKCD 1367
Illustration by Bryce Durbin