EWS Melbourne

The Point of Extensibility

Mark, apparently, “volunteered” me to give a lightning talk last night over a dinner that I wasn’t at, so apologies in advance if I run short or long.

Something that comes up frequently in our work on the TAG is the relationship between extensibility as a principle and how it relates to specific features we want in the web platform. To get anywhere in these debates, I think it’s worth zooming out a bit.

The web has a strange origin story: we didn’t build our way up from assembler and C, and the notion of moving words around memory is so far thing from the level of abstraction that HTML, JavaScript, and CSS provide that you can barely see them from there. Even VBScript, perhaps the most relevant contemporary, had a story for how that layering worked. The web, for decades, managed to do without.

Extensibility, then, has been an effective tool in the modern era for trying to understand the hidden linkages between the strange fauna and flora of this alien world. We can almost always get somewhere by asking dumb questions like “so, how does this thing relate to that other thing over there?”. We nearly always turn up some missing primitive that we can catalog and reuse on our shared exploration.

But I’d submit that Extensibility is a tool in the same sense as Standards: it’s possible to drive yourself mad with them if you lose track of the goal. Despite our setting today, this isn’t academic. We’re doing it all for a reason, and that reason needs to be a goal we share.

I can’t set goals for you, but I can tell you what mine are and ask you to join me in them. My specific goal, then, is to improve the rate of progress on the web for the benefit of users and developers, in that order.

Put another way, I want to ensure the web is the platform developers invest in first and most, and that they do so because it’s the easiest, best way to deliver great experiences.

With that in mind, it’s easier to be kind to proposals that come to the TAG for high-level features, particularly if they’re forging new ground or opening up new fundamental capabilities that the web didn’t have but that will enrich user’s experiences by improving developer’s options.

Extensibility and Standards are incredibly useful tools but they make crummy religions.

There will be new features that aren’t extensible by default. That’s OK. Not ideal, but OK and, sometimes, unavoidable. What is avoidable is leaving the web’s features sealed shut, never asking the questions about how things relate; never connecting the dots.

That would be a damned shame. I’m grateful the TAG has joined some of us insurrectionists in asking these questions, but we’ve got a long way to go. And my hope as we go there together is that we don’t mistake the means for the goals.