Joe Hewitt

What the Web is and is not

My post the other day generated a lot of responses. I suspect that most of the positive responses were from people who, like me, have a depth of experience on other client platforms, and are able to judge the Web in comparison. It's hard not to be disappointed by HTML if you've developed for iOS, Windows, or other mature platforms as I have.

Then there are the people who reacted negatively to my post. A common theme throughout these responses is complacency. The Web is good enough and it's been getting much better lately, so we should be grateful, they say. The shortcomings are not so important as to risk that a centralization of ownership would lead to more IE6-style stagnation. The Web will catch up eventually.

This argument is futile, because nothing I yearned for in my post is possible. HTML and company are going to continue going through the same standards bodies, there will continue to be an array of subtly different implementations, and the Web "operating system" will continue to evolve at a far slower pace than centrally-controlled operating systems. That train left the station a long time ago.

Thinking about this in public helps me work out why I care so much about the Web. I'm beginning to see that some parts of the Web we take for granted are not what actually defines it. The Web is not HTML, CSS, and JavaScript. It's not DOM, SVG, WebGL, PNG, or Flash. The Web is really just HTTP over TCP/IP. What gets transported over HTTP does not define the Web.

There is, however, one other characteristic that does define the Web, and that is the humble hyperlink. Links are a feature of HTML, but they are not limited to HTML. Links are the connections that give the Web its name, and links are the biggest thing missing from native platforms. Some have pointed out to me that iOS and Android allow you to construct URLs that let users navigate between apps, but what they are navigating is not a network, but the tiny subset of the App Store they have installed on their devices. That is a far less powerful idea than the Web, where a single click is guaranteed (network willing) to take you to a self-contained application that begins running immediately.

So, my definition of the Web then is resources loaded over the Internet using HTTP and then displayed in a hyperlink-capable client. This definition is liberating. It helps me see a future beyond HTML which is still the Web. I can say now that when I exclaim my love for the Web, it's the freedom of driving the open Internet in a browser that I love, not the rendering technology. Hyperlink traversal matters. The Internet being global and decentralized matters. HTML does not matter.

The biggest thing HTML has going for it is that every computer in the world can render it. Not a small benefit, to be sure, but not a reason to limit ourselves to HTML forever. People can and will download new browsers with new rendering engines, given the proper motivation. It just so happens that we're currently in a major transition period, from desktops to mobile touch screen devices, where there is an incentive for people to try new browsers. I wonder, will someone capitalize on that?