The Promise of the Web
By Francisco Tolmasky on
Joe Hewitt just published a blog post titled Web Technologies Need an Owner, and it has predictably created quite a contentious discussion. I have had the pleasure of discussing these issues with Joe on a few occasions, and have thought a lot about it myself, so I figure it’s as good a time as ever to share some of my thoughts, and some of my interpretations of what he is saying. Before I begin, I would like to state something that should be obvious but is often forgotten: we are all on the same page here. We all want a better more vibrant web. We share these opinions precisely because we care about the web.
For a little background, JavaScript and the web were one of my first programming environments. In 2008 I started a company that was all about the web, and the promise I thought it had for the future. We launched our first product 280 Slides, a presentation authoring tool, to a lot of excitement. Since I’m thus very familiar with this app, I feel that a good place to begin this discussion is with a short corollary that I think really sums up my general feelings about the web today:
Had we released 280 Slides today, in 2011, it would generate as much excitement and be considered just as innovative as when it was released 3 and a half years ago.
This is a problem and certainly doesn’t make me happy. I use 280 Slides here not because I believe it was the best app ever released, but because regardless of how good it was, this statement should not be true in a healthy and evolving environment. Anything from 3 and a half years ago should seem kind of old.
When I started 280 North with my cofounders in 2008 I believed deeply that the web held an incredible potential: a promise for the future for application development that was both free and exciting. I think the web has failed on that promise in a lot of ways. If anything, I certainly think that the timing was off.
What’s Important About the Web?
Before I continue, I’d like to take a step back to talk about what I mean by the web, and what I consider to be crucial to the web. The “web” is an overloaded term that gets used to mean a lot of things.
A lot of people think this is a discussion largely about the future of HTML, JavaScript, and CSS. While these are certainly important components which influence the web greatly, I think they actually represent the least important “pieces” of the web. A web composed of XML and Python would in my opinion still be the web. Alternatively, a native platform that happened to use HTML and JavaScript but forced you through a marketplace would hold very few of the virtues of the web.
Take a look at iTunes: it is well known that the iTunes Music Store (iTMS) is written in HTML and JavaScript and hosted in a WebKit View within the app. However, since it is confined to the iTunes cage, it couldn’t behave any less like the web. I can’t search the contents of the iTunes Music Store on Google, it’s incredibly difficult for me to link a friend to an iTMS page, I can’t go to the iTMS on Linux or any new platform that might come out tomorrow, and I can’t even do simple things like view two iTMS pages at once. Don’t get me wrong, the iTunes Music Store is great (you can check my credit card statements if you think I am being facetious), but it is not the web.
That is why I think a lot of the developments we’ve seen with “web technologies” in the past years are completely orthogonal to the future and health of the web. If you are a big proponent of getting JavaScript to run on embedded devices that’s great, but it is not really a “web” issue.
In other words, what I consider most important about the web is the freedom it gives us, the interoperability it provides. The web is unique in that by default web pages behave very well together, as opposed to native where by default things don’t cooperate very well at all. I think that what makes the web is best embodied in the browser. Ultimately what I am saying is that I don’t want the browser to die, since it remains our last outlet for free technological expression. A world where HTML and JavaScript become the dominant languages but the browser takes a more muted role in our lives is not a good one in my opinion.
In What Ways is the Web Failing?
The web is an incredibly complex environment, where the most important issues at stake are in my opinion the most subtle. For this reason, this argument can quickly digress and we often spend too much time focusing on the wrong problems.
I think a great example of this is the history of Flash. Most people would point to Flash’s incredible decline in the last 3 years as a great success of the web. However I believe that the crusade against Flash was incredibly misguided and ultimately left us in a worse position on the web overall. I am obviously no big fan of Flash (having created many technologies meant to compete directly against it), but what web evangelists fail to recognize is that the object tag is also part of the HTML standard and serves an incredibly democratic and important role in the web. Plugins are the equivalent to California’s ballot initiatives, an opportunity for us the developers to shoehorn something into the web when we are unsatisfied with where web standards are going. Remember that had it not been for plugins, YouTube may have taken another 5 or 10 years to come out. Had plugins existed on mobile perhaps FourSquare would today be a largely mobile web app instead of a native one. By killing Flash, what we actually did was kill plugins. Sure, today we happen to have a lot of influx of technologies being provided by HTML5, but as things change in the future, we have lost a powerful tool to experiment with. We are now completely at the mercy of the browser vendors and standards writers to have access to some really cool technologies, furthering the gap between web and native.
But of course Flash is not the crux of this argument. Simply put, the web is failing because it is failing to “expand its market”. If we were to imagine the web as a corporation, we the stockholders should be growing increasingly worried that it isn’t able to tackle new problems. The web is as good for CRM’s and blogs as it was years ago, but I’m honestly surprised that it still can’t compete with desktop applications. For a more cogent example, the web is still a great place for your social networks on the desktop, but is it really the best place to launch a social network on mobile? The data would suggest not: the most successful recent mobile social networks seem to all exist in the app space. Which brings us to a very interesting case study…
The Mobile Web
I find the mobile web incredibly interesting because it really represented the culmination of most web developer’s gripes and fantasies: it had no flash, it was dominated by one major engine (WebKit), it provided unheard of lowest denominator support for the fanciest and newest CSS features and HTML 5, and it even gave us hardware acceleration.
And yet… 4 years after the iPhone gave us the most modern web on mobile, what do we have to show for it? Not much, really. The mobile web is at best doing OK at presenting you existing desktop content in a mobile friendly way, but no one has really come out and done anything absolutely amazing with it. Have you ever been as blown away by a mobile web app as with the GarageBand native app? Alright, maybe that’s not fair since even most native apps aren’t as good as GarageBand, but the truth is, I’m not seeing a lot of innovation at all.
But what I find particularly disturbing is that the exact opposite seems to be taking place. Major news publications like the New York Times and the Economist have launched native apps, not to mention Facebook. This is precisely what the web is supposed to be good at, and yet the market is telling us something different.
What Does an “Owner” of Web Technologies have to do with all this?
I think there is some confusion as to what Joe meant by needing an owner. Hearing this, people imagine one person in charge and fear a tyrannical and incompetent owner, much like the old days of Internet Explorer. But ironically, that is precisely the situation today: the infrastructure for unilateral rule is already in place. If any browser were to become dominant today, there is no reason we wouldn’t relive the stagnation of those years again. I am betting that if you, the average web developer, wanted to get an idea into the next HTML spec, you wouldn’t be able to. In fact, very famous and well renowned developers have given up on trying for precisely this reason. That sounds a lot like ownership to me. I think what Joe meant is that HTML, JavaScript, and CSS need to be “demoted”, both in a technological and philosophical sense. After this, anyone and everyone could be the owner, and that is the key. Allow me to explain.
The reason no one thinks twice that jQuery or CoffeeScript have owners is because we do not put them on some untouchable pedestal. Worst case scenario, if the owners of jQuery or CoffeeScript make a mistake, we could always just use an older version, fork it, or just switch to a competitor. I think this is incredibly healthy. In other words, what matters is that anyone with vision can really take the reigns, and when they do, you can choose to not be affected by it.
When people imagine HTML, CSS, or JavaScript having an owner, they imagine that in the same context as they exist today where these are the only and lowest level technologies we have. So of course the odds are much higher. A mistake in HTML, CSS, and JavaScript could be devastating, the problems would percolate up the stack and affect everything, and it’s not like you could choose to not use JavaScript on the web.
Now imagine a world where the browser ran something lower level. Where Google, Mozilla, Microsoft, Opera, and Apple’s jobs in providing a browser more resembled Intel’s job of providing a chipset: they simply provided hooks for basic technologies like sound, camera, movies, geolocation, etc. And on top of that, we the developers wrote HTML, CSS, JavaScript, and… and anything else we might think up. What if HTML was a file you included in your webpages, a project you could fork on GitHub. Worst case scenario, if the current owners really messed up, you could always just fall back to HTML4 or something else… something we can’t even imagine today because we are not allowed to.