The Extensible Web Summit: An Unexpected Journey

Still from Peter Jackson’s “The Hobbit: An Unexpected Journey” credit MGM/New Line Cinema/Wingnut thehobbitblog.com

This past Friday, two remarkable things happened. First, “we” held the first ever Extensible Web Summit in San Francisco, California (I’ll get to the “we” bit). Second, I attended it. While the former is amazing, the later is actually kind of incredible on several levels too – not because it is such an amazing thing to have me (believe me, my self opinion is not that high). Let me explain…

First, on a personal level, you should know that I am actually a hobbit. You see, I don’t do this sort of thing – at all.

“It’s a dangerous business, Frodo, going out your door. You step onto the road, and if you don’t keep your feet, there’s no knowing where you might be swept off to.”

I haven’t attended a conference since the late 1990’s, despite requests, demands, and even in one remarkable case where my own software was presented. Hell, I don’t even leave my house to go to work – my employer allows me to telecommute from my hobbit hole in the shire (rural Vermont – thank you for that Apollo Group). Except online or in places where I am employed or very comfortable I’m about a step away from Golem sometimes. It’s not healthy, I know, and recently I’m working on it – but for the past decade or so it’s been the case. So, my attendance is a small personal accomplishment for me. It was such an incredible pleasure to not just meet, but be warmly welcomed by so many of the great friends that I’ve made online that I felt compelled to share this very personal information. You all rock more than words can describe.

More importantly though, because I’m just a developer – and I went. Until very recently I’ve not been a member of anything officially in Web standards – and this meeting included my input. Not just me, but others like me. No one treated us as second class, though not many of us spoke up as much as I’d hoped we would have. It gave us an opportunity to see what’s going on, connect with other developers, standards writers, chairs and – very importantly – implementers to discuss things that are important to me and more fully understand the larger scope of what’s going on.. In other words: To play a role.

“That, my dear Frodo, is where I come in. For quite by chance, and the will of a Wizard, fate decided I would become part of this tale. It began, well, it began as you might expect. In a hole in the ground, there lived a Hobbit. Not a nasty, dirty, wet hole, full of worms and oozy smells; this was a Hobbit-hole, and that means good food, a warm hearth, and all the comforts of home.

Developer involvement and engagement is tremendously important to the vision we set out in the Extensible Web Manifesto. It’s critically important that we begin to work together to break down, tie together, prioritize and create an environment where we establish a virtuous cycle. To change the way we develop the Platform itself to be adaptable and evolutionary is an enormous effort – it’s not the natural state of existing standards bodies in general.

Your typical Web Standards Discussion…
Bilbo: Good morning.
Gandalf: What do you mean? Do you mean to wish me a good morning, or do you mean that it is a good morning whether I want it or not? Or, perhaps you mean to say that you feel good on this particular morning. Or are you simply stating that this is a morning to be good on?

But now, things are changing – and they are changing for the better. Obviously, in general, the manifesto is helping to change things, I believe we are actually approaching an architecture that lends itself to adaptation and evolution… But there is another thing worth noticing here too: Until a year or so ago, the vast majority of developers had never heard of the W3C Technical Architecture Group (TAG) and the general consensus was that they just weren’t that important. But then, developers got involved and helped elect a good group of folks across two elections and the TAG is turning out to be super useful in two ways: First, at helping to look across the working groups and break down the architecture of the platform, see connections and facilitate communication and realignment in working groups where it is necessary. Second, to help carry the voice of “We the developers” to places it was difficult for our voices to previously reach. This summit was actually an example of both. And it’s all out in public now – github, twitter, etc. If you write to TAG, they listen. I call that an incredible win.

You might recall that in the first sentence I said “we” held the first Extensible Web Summit. While the W3C was prominent, and it took place coinciding with a TAG face to face and other W3C meetings, it was not officially a W3C event. I am immensely grateful to Anne van Kesteren (whose TAG term has ended, but continues to be involved directly in the trenches/outreach) for championing this through TAG, and the whole TAG for setting it up and attending despite the fact that it was unofficial – that’s a really nice signal to us developers. And a huge thanks to Adobe for agreeing to provide a substantial location and to implementers and finally – to developers and implementors for laying down cash and budget to allow us to all show up.

It wasn’t perfect, don’t misunderstand. But no first attempt is. It was too short. The topics competed in not great ways such that we couldn’t get necessary people into all of them. There wasn’t enough setup/groundwork for more significant engagement so some sessions kind of jumped off the rails before they could really get started. Personally, I got much progress through side conversations in hallways and before/after – maybe as much I did in sessions themselves – but these are all things we can learn from and improve. It was good, but we can do better and I’m confident we will. If you were less than thrilled, provide some feedback and give it another chance. I’ll try to write about that in another post perhaps, or more likely to the TAG mailing list – but there were many, many positive aspects and I consider it a substantial step.

thcc_bilbo_01

Galadriel: Why the Halfling?
Gandalf: I do not know. Saruman believes it is only great power that can hold evil in check, but that is not what I have found. I found it is the small everyday deeds of ordinary folk that keep the darkness at bay…


All of this really stresses the importance of more direct developer involvement and finding ways to open the doors to the W3C/standards without creating total chaos. If this sounds good to you too, keep watching as my next post will be about an incredible opportunity arising there – which, as many of my posts – involves an election and requires your help. Stay tuned.

A Web for the Next Century


The Web Platform
Chapter 1.

1. In the beginning, Tim created the Web.
2: And the platform was without form, and void; and confusion was upon the face of the Internet. And the mind of Tim moved upon the face of the problem.
3: And Tim said, Let there be a new protocol: and there was HTTP.
4: And Tim saw the protocol, that it was good: and he divided the network by domains and subdomains.
5: And he called the network the World Wide Web.
6: And Tim said, Let there be a browser for viewing pages delivered by this Web that they might be viewed.
7. And it was so.
8: And Tim separated the structure of the content from its style.
9: And the structured content he called HTML and the means of styling he called CSS. And he saw that it was good.
10. And Tim said, let us describe this structured content in the form of a tree and make it scriptable, and it was so.
11. And from the dust of the Interwebs were created developers, whom he gave dominion over the platform.

If you’ve read any of the numerous articles about The Extensible Web or heard about it in conference presentations, or seen The Extensible Web Manifesto you’ve likely seen (or heard) three phrases repeated: “Explain the magic,” “fundamental primitives” and “evolution of the platform”. I thought it might be worth (another) piece explaining why I think these are at the heart of it all…

For thousands of years the commonly accepted answer to the question ”where did dolphins come from” (or sharks or giraffes or people) was essentially that they were specially created in their current form, by a deity as part of a complex and perfect plan.  Almost all cultures had some kind of creation myth to explain the complex, high level things they couldn’t understand.

Turns out that this very simplified view was wrong (as is much of the cute creation myth I’ve created for the Web Platform) and I’d like to use this metaphor a bit to explain…

Creation and Evolution: Concrete and Abstract

It’s certainly clear that Sir Tim’s particular mix of ideas became the dominant paradigm:  We don’t spend a lot of time talking about SGML or Gopher.

It seems straightforward enough to think of the mix of ideas that made up the original Web as being evolutionary raw materials and to think of users as providing some kind of fitness function in which it became the dominant species/paradigm, but that is is a pretty abstract thing and misses a subtle, but I think important distinction.

The Web Platform/Web browsers are not an idea, they are now a concrete thing.  The initial creation of the Web was act of special creation – engineering that introduced not just new ideas, but new software and infrastructure.  The Web is probably the most grand effort in the history of mankind – browsers as a technology outstrip any operating system or virtual machine in terms of ubiquity and they  are increasingly capable systems.  There are many new systems with concrete ideas to supplant the Web browser and replace it with something new.  People are asking themselves:  Is it even possible  for the Web to hang on?  Replacing it is no easy task: technically or socially – This is a huge advantage to the Web.  So how do we make it thrive?  Not just today, but years from now?

Some more history…

In Tim’s original creation, HTTP supported only GET; In HTML there were no forms, no images, no separate idea of style.  There was no DOM or async requests – as – indeed there was no script. Style was a pretty loosely defined thing – there wasn’t much of it – and CSS wasn’t a thing.  There was just GET me that very simple HTML document markup which is mediocre at displaying text – and display it – when I give you a URL and make sure there is this special concept of a “link”.

This is at the heart of what we have today, but it is not nearly all of it:  What we have today has become an advanced Platform – so how did we get here?  Interestingly, there are two roads we’ve followed at different times – and it is worth contrasting them.

In some cases, we’ve gone off and created entirely new high level ideas like CSS or AppCache which were, well, magic.  That is, they did very, very complex things and provided a high-level, declarative API which was highly designed to solve very specific use-cases.  And at other times (like DOM, XMLHttpRequest and CSSOM) we have explained some of the underlying magic by taking some of those high-level APIs and providing some imperative APIs.

Looking at those lists, it seems to me that were it not for those small efforts to explain some of the magic, the Web would already be lost by now.

Creating a Platform for the Next 100 Years

The real strength of life itself is derived from the fact that it is not specifically designed to perfectly fill a very niche, but because complex pressures a high level judge relatively minor variance at a low level and this simple process inevitably yields the spread of things that are highly adaptive and able to survive changes in the complex pressures.

Sir Tim Berners-Lee couldn’t have forseen iPhones and Retina displays, and had he been able to account for them in his original designs, the environment itself (that is, users who choose to use or author for the Web) would likely have rejected it.   Such are the complex pressures changing our system and we could learn something from nature and from the history of technology here:  Perfectly designed things are often not the same as “really widely used” things and either can be really inflexible to change.   

Explaining the magic means digging away at the capabilities that underly this amazing system and describing their relationships to one another to add adaptability (extensibility).   At the bottom are a number of necessary and fundamental primitives that only the platform (the browser, generally) can provide.  When we think about adding something new, let’s try to explain it “all the way down” until we reach a fundamental primitive and then work up.

All of this allows for small mutations – new things which can compete for a niche in the very real world – and unlike academic and closed committees can help create new, high-level abstractions based on real, verified shared need and acceptance and shared understanding.  In other words, we will have a Platform which, like life itself, is highly adaptive and able to survive complex changes in pressures and last beyond any of our lifetimes.