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.

W3C TAG FAQ

If you follow me (or many of my friends) on twitter or on G+ (or even on Facebook which I don’t really use) then you’ve probably seen lots of posts about W3C elections.  The funny thing about elections, unlike most of my other projects, is that they have a hard deadline and (I think) a potentially much bigger impact than anything else I’d be working on, so I find myself especially motivated to do what I think it is I need to do. As a result, they tend to dominate my streams for a while.  Over the last few elections, we’ve been gaining steam and more and more people are asking questions about it. That’s great, but since it’s hard to respond individually (or in 140 characters), I thought it would be worth putting together a FAQ which I (or others if they are so inclined) can point people to to explain the madness.

Who the freak is TAG?

TAG is the W3C Technical Architecture group.  It is one of only two groups in the W3C which is composed by election rather than appointment by groups who (generally) pay to belong to W3C (the other is the Advisory Board, or AB).  These two groups are also unique in two ways: First, in the sense that their charters cut across the spectrum of W3C,  second they are small - only 9 members in each and they are mostly elected.

Mostly Electeded?

Tim Berners-Lee (the creator of the Web) is the chair of the TAG and he gets to appoint 3 others.  You don’t even have to be a member of W3C to serve, you just need one to nominate you.

Is this a new thing?

Actually, no.  It’s been around for a long time (since 2001) – you’ve just likely never heard of it.

Why haven’t i heard of them before?

A few reasons: First (most importantly I think) is the fact that they’ve never done anything visible that you’d care about.  It’s mostly been a somewhat academic exercise at very high levels that produce documents and notes you will probably never read.  It’s helped a bit to steer things though which I address more in another section below. Second, you (probably) don’t get a vote (yet) – so traditionally, no one has bothered to tell you.  Seems pointless, right? Before you throw your hands up and close this window, keep reading – there is a rationale here.

Wait… If they don’t do anything I care about… Why should I care?

Simply put, because they could. In developer terms, its a bit like “discovering ajax” – there’s a great tool with a lot of potential just lying there dormant – waiting for someone to tap it and use it to do great things.

An honest history of why standards are in the shape they are in would be a lengthy post of it’s own (there are already several good ones), but these things we know: We don’t want to go down roads of the past and we do want to reform things that aren’t working well. We want to help blaze a bright new future. The candidates I support have a vision and common outlook (see The Extensible Web Manifesto for the thrust), and TAG is one of the tools that we can use to help realize it.

Wait… We need less appeal to authority, not, more…isn’t TAG problematic in this regard?

I don’t think so for a few reasons: As I said, historically TAG has been kind of a non-issue. What’s more, the candidates I support are made up of people with a common vision that swings the pendulum in a new direction in which there is, by design, less appeal to authority.

Things are what they are and we don’t get to pick where we start – recognizing current realities and operating within current structures to help drive things in a better way and (hopefully) bring some reform along the way just seems more logical than pretending reality doesn’t exist or needlessly tilting at windmills: W3C has a lot of things going for it. Additionally, it comes down to what powers TAG actually has…

Yeah… What powers does TAG have?

Power is a funny word – all organizations (including governments) have only the powers constituencies give them. The TAG doesn’t have a lot of official formal powers, but that doesn’t actually reflect the reality of things. By way of a somewhat US-centric analogy (the same holds in many counties, this just happens to be mine and serves as a decent example): The US president has comparatively weak formal powers – our congress maintains the power of the purse, to declare war and the ability to make and change laws. Our judiciary has the power to enforce and interpret laws. But if you think it doesn’t make much difference in practice who the president is, you really don’t pay attention. The president has a big influence on just about all these areas, in practice. But, and this is key: Their ability to do so is somewhat limited by their ability to mobilize popular support. Support provides political capital. While limited in official powers, in many ways, these powers are enough to let them help set the agenda. The bully pulpit lets them carry the voices of many in a powerful way. This is what I see as TAGs strength, and why I think the next item is key.

I am a developer, what can I do?

Most people reading this are likely average developers, and they don’t get to cast a vote (yet). However, if this its you – you can still raise your voice. Speak up and let the people who can vote know where we stand. If electors see a surge of support for a positive movement, we are likely to swing some votes our way. This matters more than you could imagine as there is actually low turnout – a (comparatively) few really involved companies with heavy interest tend to always show up and walk away with it. There is a great untapped wealth of organizations who are entitled a vote but don’t exercise their right to do do. If you know someone from a member organization, talk to them directly. If not, just show your support – as a community we are remarkably interconnected via social media. Just because you aren’t a member doesn’t mean that your message won’t reach them. What’s more, your voice helps empower our candidates described as in the political analogy above.

Why would an AC listen to me? They represent their organization…

For two important reasons: First, they are supposed to base their vote on what’s good for the Web at large and not just their company/organization. I believe that most ACs will act in good faith if presented with a compelling case, but maybe I am native in that. The second reason is more practical: Developers are the ones that make their organizations possible. Developers like you are the engine that drives their success. Their incentive to make you happy by representing you (assuming you are asking for something reasonable) is probably even stronger than that of a representative politician- business competition is strong. Even if they don’t vote your way, no organization wants to be out campaigning hard against developers. It seems to me, organizations will want to be on the right side of history, not the ones waving their hand and saying “let them eat cake”.

The vision the candidates I support isn’t just “reasonable” – its really good.

I think that the combination of these factors is healthy -there are good incentives for ACs to have a look at their platform and vision. Once they do, I honestly think most will become supporters themselves. A good movement is contagious.

I am an AC Representative – what can I do

If you are a W3C AC Representative, you can cast your vote! More still, tell another AC about why you did and encourage them to as well.

You keep saying I don’t get a vote yet – what’s that all about?

There have been informal proposals about changing the rules in a way that would let developers have some kind of more direct voice in the election process That’s where the other group, the AB comes in. That’s their job: Rules and process. It’s another post entirely- but if you’d like to see those sorts of reform as well – we’ll need to work together as a community.

Web Wars: Episode IV – A New Hope

Don’t let this happen to our Web…

Prologue
Long, long ago, in a galaxy far, far away…

It is a period of technical upheaval.  The plans for galactic XML domination have been thwarted and a breakaway group has taken over much of HTML base.  New technologies threaten the future stability of the Web.  Developers have begun challenging the status quo and established institutions.

The universe of Web standards stands poised on the brink of collapse and civil war.  A group of rebel developers with plan are building an alliance in an attempt to restore order to the force, establish a bright future and #extendthewebforward…

And they need your help…


Help me … You’re my only hope.

Let me cut to the chase: The Web needs your help. Here’s the TL;DR: The W3C has a group of 9 members called the Technical Architecture Group – I’ll explain what it is and why you should care later in the post, but the takeaway is that most of the members of this very small (9 member) group are elected and there is an election going on right now. I think the outcome really matters and that your involvement is key and that we need to help get Dave Herman and Domenic Denicola (more about them below the fold). Let me explain…

We can make a difference

Never underestimate the power of the force.

Historically, TAG hasn’t mattered much. It’s charter gives it a unique role, but chances are you probably have never heard of it. Almost exactly 1 year ago we ran a slate of “different” candidates for the TAG – well known, active, open-source developers who have been working tirelessly with standards bodies to solve real problems that matter. The aim was to give this group of representatives popular support and use TAGs charter to help drive things in a better direction, and carry our collective voices across the spectrum of standards bodies and working groups that we are currently not a part of – to reform Web standards.

So, for the first time in W3C history we ran a popular campaign via social media asking developers to voice their support – to lobby publicly and privately.  While you don’t get a vote (yet), the W3C members who do heard your voice and filled all of the open slots with our reformist candidates.  The chair seems to have also heard your voice as he appointed two additional candidates to co-chair.  Later, one of our candidates changed employers and according to the rules was ineligible to continue to serve (no organization can have more than one TAG member – good rule), so we ran another – and he won too.  We ran 4 candidates for the Advisory Board and 3 of the 4 won there too.

What’s it gotten us?

Here are a sampling of the ways our TAG members have helped us so far in less than a year:

  • Re-focused the TAG on things we care about.  Chances are that you’ve never read or heard of a single thing that’s come out of TAG since its inception – but you’ve probably heard of lots of stuff they are talking about now.
  • They helped to envision, co-authored and bring together a wide and diverse group of signatories for The Extensible Web Manifesto - an architectural plan that layers and moves exclusive power to innovate out of browsers and hopes to change the way we develop and think about standards themselves.
  • Championing these ideas in the TAG, which has now essentially adopted them as guiding principles.
  • TAG members are helping to coordinate the first Extensible Web Summit.
  • Opened up collaboration between groups and helped coordinate common visions and APIs – helping either directly or indirectly on just about every interesting new thing:  Service Workers, Promises, Streams, Archives as first class citizens, Web Components, ES6 Modules, Web Audio, etc. etc. etc.
  • They have helped make TAG a known entity by talking about it and involving developers in the discussions – TAG has had two public forums, has a twitter account and posts things to GitHub.

The Rebel Alliance

I’m excited that we have gotten two excellent candidates nominated and here’s why I will be doing everything I can to support these Jedi warriors in The Cause.

Dave Herman

Dave Herman: Nominated by Mozilla.

Dave Herman is from Mozilla Research – he is an original co-signer of extensiblewebmanifesto.org and has been with us all along. Everything his group does is conceptually extensible web. He is on TC-39, the committee in charge of JavaScript, and he is the co-creator of asm.js and advocate/developer of many polyfills and prollyfills. His group is working on Servo, a parallel process rendering engine, so his group has a lot of feedback and thoughts of efficient APIs that can make the Web more competitive too.

Domenic Denicola

Domenic Denicola: Nominated by JQuery

Domenic Denicola is also an original co-signer of  extensiblewebmanifesto.org and an active open source developer who has been increasingly involved in efforts – as a developer – with all of the major standards bodies. He has been an influential force in helping drive work on ideas like Streams and Promises and has also authored/advocated a number of polyfills and prollyfills, and this year has given several great conference talks evangelizing the extensible web and helping explain how to be involved with standards as a developer. He was nominated by jQuery.

This is your Web.

As the creator of the Web (and director of W3C) famously said, “This is for everyone”.

Aren’t you everyone? You are.

But historically speaking, you’ve had comparatively no real voice in the important decisions – so here is your chance:  Act.  Help us reform the W3C – let’s get these guys elected and start building a Web that is built to adapt, last and evolve.

Making your voice heard matters – and it’s so easy to click “Retweet” or “Like” or “+1″ or 100 other things that help grow the movement . Write a post, make a video, send an email to a member you know.

Let’s make our collective voices heard and let the W3C know that we want representation that will help us #extendthewebforward.

A new hope TAG (2)

 

The DOM and Managing Complexity in API Evolution

Here’s a confession: I have a love/hate relationship with DOM related APIs.

You see, I love having a standard surface and that we have helped improve it in a lot of ways – there are some really great improvements.  But I still hate the reality of working with it sometimes. Originally I thought that it was merely because we know a lot of common usage patterns and while they are entirely accomplishable with existing APIs they currently tend to require a lot of boilerplate.  As I use them I often feel a dissonance between how simple the thing i am trying to describe is conceptually versus how much it really takes to accomplish — and how much that boilerplate can differ depending on which APIs i am dealing with.  Some of it is just sugar, sure, but recently I am thinking there might be more to it…

It’s frustrating when I see developers I know try to stick to native but eventually go and grab jQuery just for its DOM goodness, but – I kinda get it and it makes me think that maybe we’re missing something kind of fundamental.  Maybe not, but I’d like to throw it out there and see.  I’m happy to be wrong.

First, let me describe the more generalized problem as I see it, using the DOM APIs as an example:

  • Even as fundamentally new capabilities arrive, we are constantly attempting to simultaneous align the new trajectory of the bright and glorious future with the very real requirement of “Don’t break the Web”. 
  • The combination of these competing factors mean that legacy inevitably co-exists with things that have a different (hopefully better) new view on the world, but, at least for the near future (pronounced “years”) cannot completely eliminate the legacy.  In the case of DOM APIs, Arrays of Elements will live along side and cooperate with live NodeLists and Elements and jQuery array likes for years to come, and we’re still tweaking…
  • The crux then is that the true state of affairs is that developers work with APIs that are in a state of perpetual transition between the mediocre past and the increasingly better future.  

 Just add this, over there…

A developer knows that conceptually we want to “just add this thing over here” in the DOM tree.  Seems simple enough.  But:  Given the state of things, Is the thing we want to add an Element? An Array of Elements? A node list?  Or, god forbid, a fragment of HTML serialization? Worse still is if that serialization is something that requires context (a table row, for example).  Or – is it some new thing?  Think about it – how you approach the problem is affected by which of these “over here” is.

Yikes.

Yes, It’s all accomplishable. Yes, and it’s way better than where we were 5 years ago.  But it leaves developers wanting and leaves a lot of room for error.  I have to use Array.prototype to turn something that is *almost* an array into an array, I have to worry about whether I am talking about a single element or an array of elements, or a NodeList.  It all seems unnecessarily complex and error prone at some level.

It sees that sometimes, as in this case, perhaps we could recognize that this will be a common evolutionary step and perhaps we could stabilize continuity by way of a unifying API based on the common concepts?  

And if you think about it, it’s sort of the one thing core thing that jQuery does that still isn’t currently a proposed standard.

A proposal to get things started…

Let’s imagine that we create a new unification API based on the common concepts:  Select one or more points in the DOM to modify and then perform modification on them.  Let’s call them DOMModificationTargets in keeping with the generally unfriendly tradition – aliases and bike-shedding a better name are easy.

DOMModificationTargets is a constructible abstraction with an underlying array that allows you to perform common patterns of DOM operations on All of the Things

// A dead-simple unified API for conceptually similar 
// past, present and future APIs... It always freezes and
// exposes an underlying array
class DOMModificationTargets {

  // Create targets object via Any of the Things...
  DOMModificationTargets constructor(string markup);
  DOMModificationTargets ,constructor(Node node);
  DOMModificationTargets constructor(array elements);
  DOMModificationTargets constructor(NodeList list);

  // Perform conceptually common modifications on them...
  DOMModificationTargets append(string markup);
  DOMModificationTargets append(Node node);
  DOMModificationTargets append(array elements);
  DOMModificationTargets append(NodeList list);

  DOMModificationTargets prepend(string markup);
  DOMModificationTargets prepend(Node node);
  DOMModificationTargets prepend(array elements);
  DOMModificationTargets prepend(NodeList list);

  DOMModificationTargets replace(string markup);
  DOMModificationTargets replace(Node node);
  DOMModificationTargets replace(array elements);
  DOMModificationTargets replace(NodeList list);
  
  DOMModificationTargets replaceWith(String markup);
  DOMModificationTargets replaceWith(Node node);
  DOMModificationTargets replaceWith(array elements);
  DOMModificationTargets replaceWith(NodeList list);

  DOMModificationTargets addClass(string className);
  DOMModificationTargets removeClass(string className);
  DOMModificationTargets toggleClass(string className);
  DOMModificationTargets setAttribute(string name, string value);
  DOMModificationTargets removeAttribute(string name);

  array collection;

}

I’ve created a quick prollyfill for this on github with a demo - the source is a mere 200 lines of JavaScript.

Given that the underlying operations are the same, it would even be easy to add an extension pattern to this for prollyfilling future API types.

It it worth something to think that occasionally we should look at conceptually unifying/adapter APIs?  What do you think?

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.

Once more unto the breach…

photo credit: drp via photopin cc

photo credit: drp via photopin cc

If you believe in the change we helped initiate this years, I encourage you to support Sergey for W3C Technical Architecture Group - here is why.

But you are probably weary of hearing about W3C Elections.  I get it.  To be honest, I am a bit weary myself.  We’ve done a lot in a very short time and it can begin to seem like it will never end.

But, in fact, it will end very soon:  Midnight tomorrow to be exact (Tues, July 16th 2003).  Whether you do anything or not, when you wake up on Weds, it will be over.

Do something.

Until then, you still have a chance to make a difference!  Once more unto the breach, dear friends, once more!!  Unlike committing your life to a battle, it really couldn’t be easier to support the cause of reform we helped get rolling this year:

  • If you are an AC rep – just vote.
  • If you know an AC rep, send them an email.
  • If you are just a regular Joe or Jane developer – state your support on Google+, Twitter, Facebook or wherever – you’d be surprised how connected we all are and how likely it is that someone who might help could see it.  In the very least this helps show popular support, which is relevant no matter who wins.

 

Tagging in a new partner…

At the beginning of this year, we helped make Web history…

But there is a fork in the road ahead… 

For the unfamilliar, the W3C Technical Architecture Group is a kind of steering commitee for the direction of the Web and its architecture and how that relates to Web Standards.  It is composed of 9 members chaired by Sir Tim Berners-Lee , a few appointees and 5 elected members. Since its inception, this has been a closed process and, although it maintained a public mailing list, the simple fact is that few people were even aware of it. How could such an important group be largely unknown? Surely we should be well-aware of its works, right? As it turns out, not really – but we have felt effects. What’s more, only a small percentage of eligible representatives even cast their vote in these elections.

Until now…

This year we changed that by taking the case to the public that we would like to change all that. We got reform candidates to blog about their vision: what they would envision and advocate and where they thought TAG and W3C itself needed some improvement. We tweeted and blogged and shared and made public opinion clear and lobbied representatives to exercise their right and vote with us. What resulted was the most participatory election in W3C history and every open seat filled by one of our candidates.

We delivered a mandate for significant change…

In the few months since then, things have shaped up nicely.

  • We have seen unprecedented coordination and consultation with ECMA, the group in charge of JavaScript standards.
  • We have seen great advice on improving APIs and coordination across Working Groups.  Excellent new things like Promises/Futures being introduced across the spectrum.
  • TAG, as a group, is more known and visible than ever: things are moving to github, you can follow it on Twitter, they have even had a Meet the TAG event.
  • TAG members are out there in public – developers know who they are, they know the sorts of things they stand for and they are interested.
  • All 4 of our candidates and both new TAG co-chairs helped author and/or signed the Extensible Web Manifesto, laying out a new, more open vision for architecture and process surrounding standards.
  • Work to replace WebIDL in standards descriptions has begun.
  • When it was time for Tim Berners-Lee to appoint a co-chair, he  appointed from among our reformers (we had more candidates than seats available).

The TAG is listening to everyday developers – and delivering…

But another thing happened, one of our elected representatives switched employers and because this would leave the TAG with two members from the same organization, it means he is no longer eligible to serve. As such, there is a special election happening to fill his spot.

Reaffirm the mandate
There are only two nominees to fill this seat:  Frederick Hirsch from Nokia and Sergey Konstantinov from Yandex.

Frederick is a pretty traditional sort of TAG nominee – he has lots of W3C experience under his belt and credential projects like XKMS, SAML, WS-I Security and a bunch of other stuff.

Sergey is pretty new to the official Web Standards game – Yandex has only been a member of W3C for about a year.  He comes from the trenches – most recently in charge of Yandex Maps.  He does a lot of working with developers directly, he has written two public posts explaining some of the reasons that he is running.  I have spoken to him myself and I believe that electing him will reaffirm the mandate that we sent at the beginning of the year.

If you supported reform candidates in the last TAG election,  please join me in spreading the word – share via whatever means you like – and let AC reps know:

image

Extend The Web Forward: This is an intervention…

Today marks what I hope will be a turning point in the way we deal with standards which will usher in a new wave of  innovative enterprise on the Web and a smoother and more sensible process and better architecture.  It’s no small dream.

This morning, along with 19 other signatories representative of a broad coalition of individuals across standards bodies, organizations, browser vendors, groups and library creators, I helped to launch The Extensible Web Manifesto. In it, we outline four core principles for change that will create a more robust Web Platform and describe their value.  For a more complete introduction, and reasons behind it, see Yehuda Katz’s explanatory post.

We hope you will join us in creating a movement to #extendthewebforward. If you agree, pass it along and help us spread the word.

Brian Kardell
Chair, W3C Extensible Web Community Group

New Blood: Reform the W3C Process

Unless you are a big W3C policy wonk, or actually a W3C AC member – chances are pretty good that you’ve never even heard of the W3C AB (Advisory Board).  Chances are also pretty good that your immediate thought is “why should I suddenly care?”.  Well, let me break it down for you in a few simple bullets:

  • The Advisory Board’s job is to manage the evolution of the W3C “Process” and inform and advise the W3C on issues like licensing.  As part of this, they can also recommend changing the relationship/workings of the Advisory Board itself, and some kind of synergy between who we elected there and who we elect here would be awesome.

  • It is an elected committee just like the W3C Technical Architecture Group (TAG) made up of 9 members elected to offset terms.  This year 4 of those 9 seats are open and, in the nomination process we have an historic 12 nominees for those four seats including number of “reformers” who would like to affect some change.

  • At the end of last year, the public got personally involved in an unprecedentedly public campaign to elect TAG reformers and we managed to win an historic election getting a whole slate elected.  We can do it again.  I argued then that changes to the process were necessary to the health of the platform: AB is a necessary element.

  • The  process is exceptionally static and slow changing historically and comments and public discussion are few and far between.  In fact, the public mailing list for AB has been around since 2007 and contains a whopping 12 total postings: 1 of which is clearly spam, another which appears to be posted to the wrong list and a few announcements about talks or conferences (http://lists.w3.org/Archives/Public/public-process-comments/).  The members only list is sadly similarly sparse.  HOWEVER, that isn’t to say that nothing has happened in that time!  Instead, it is an indicator of how closed off from us all of their work and discussion has been historically.  So much so, in fact, that some started an open W3C Community Group dedicated to revising the process!! Which leads to the most important part and why you should care:

This is Our Web.

The Web is a commons and the W3C is a group that we entrust with its general safekeeping.  As a constorium, it needs to operate and it needs members who belong to big companies that make things like, oh I don’t know, phenomenally complex Web browsers.  At the same time, we need to continue to strive to keep it open, participatory and representative of the interests of people who care about, use and write for the Web at large. In fact, this is how it is supposed to be – an AB electee is supposed to represent the interests of the Web at large, not their company or even just companies in general: They are supposed to represent you and me.  If they have no connection, visibility or openness – how is that even possible?

What can I do?

Whether you work for a member org or not – you should Tweet, Like, Plus, blog and just generally show your support.  This is an election and the W3C and its member orgs are not ignorant of social media or public perception – let them know who we’d like to cast a vote for.

Here’s my short list:

So here is my short list of supportable candidates, composed of folks who have both publicly and privately expressed some positive changes/openness or even potential changes to the AB itself and have worked for increased openness in the past.  I’ve included their public posts when available, unfortunately unless we can make this process more open, you’ll just have to trust me that they have done so on the W3C members only list.  During the TAG elections several folks contacted me and said “I can’t vote for X, but otherwise I agree” – so I am including a qualified “5th” candidate below.


Tantek Çelik

A Mozillan, frequent blogger, always dedicated to an open Web and participation.  Freedom fighter.  I’ll let him explain why he is running.  I’m not sure what else there is to say: A vote Tantek is a vote for the future I’m looking for.

Chris Wilson

Now a Googler, formerly with Microsoft, Metallica (j/k) and worked on Mosaic – always involved with standards.   Here’s his public statement.  As with Tantek – you should know who he is and what he’s about:  We want him.

 Charles McCathieNevile

Co-founder and chair of the afforementioned “revise the process” Community Group, Yandexoid. “Chaals” is currently an AB member, but is also responsible for a great deal of the openness that we do see and many of the criticisms in this election.  Here is why he is running.

Virginne Galindo

Virginne is from Gemalto and is the chair of the Web Cryto group. I think she explains why she is running better (and funnier) than I possibly could… Really you should give it a read.  She is determined and pragmatic and I think she would have a good impact.

Daniel Glazman

Daniel is co-chair of the CSS Working Group and has done a ton to open things up there.  A former Mozillan, he now represents his own Disruptive Innovations.  He has been working with W3C a long time and cares and contributes in a number of arenas.  Daniel hasn’t publicly blogged on why he is running (if he does I will post it) and I’m not even sure some would consider him an ‘outside’ candidate or reformer - in fact he is last on my list because of his positions “anti-” positions on open-licensing, but his comments and answers to questions and history of being rational lead me to believe he would be an excellent choice.

Interweb-style campaign button:  Share it.

Interweb-style campaign button:
Share it.

Dropping the F-Bomb on Web Standards

small_57466134

photo credit: wiccked via photopin cc

In 2012, Mirriam-Webster’s dictionary added a definition for the F-Bomb.  Why?  Because the elite Mirriam-Webster work
d-wonk committee decided it was necessary to mint a “steamy new word”?  No, rather, because it is a well-established part of the common vernacular of the English language. There are occurrences of it going all the way back to 1988.  Not every slang term someone makes up will get into the dictionary. The Oxford English Dictionary has a vault full of millions of words that currently do not make the cut.  Many never catch on.  Some die out quickly and others change shape as they spread, that is what etymology is all about.  Some stagnate and maintain distinct and valuable regional meanings, and that is fine, but they aren’t part of the standard language.  The ones that are ultimately widely understood and eventually become commonly used are accepted and codified into the dictionary. Some words even become extinct.  In other words, the process of word standardization is evolutionary.

What’s this got to do with Web Standards?

There are actually many similarities between a dictionary which codifies and specifies the English language and a Web standard, but today the two work in nearly opposite ways*.

I didn’t come up with the dictionary metaphor (I dont know who did first).  I first heard Alex Russell mention it in 2011 in a Fronteers talk while I was trying my best to find a way to describe it succinctly myself and it really struck a chord with me.  It very simply illustrates in a way that is easily understood, not just the problem itself, but some excellent/proven solutions that we can use to solve them:  What we really need is a way to develop the slang of the Web and, as it catches on,  potentially mutates or dies, eventually have a way to recognize that, pick it up and codify it into the standards dictionary.

* Some attempts at seeing what people are doing outside of Web standards has happened, but for the most part, the real work of creation happens in a committee and the   dominance or extinction happens by browser vendors (who also dominate the committees).  This has, so far, left us with APIs that are often less than what we want, general slowness in rate of change and lots of other undesirable qualities for developers.

A Path for Natural Platform Evolution

photo credit: Kaptain Kobold via photopin cc

photo credit: Kaptain Kobold via photopin cc

Yehuda Katz and Alex Russell gave an excellent presentation on the importance of Layering at the first W3C Technical Architecture Group F2F recently.  As you can see from the minutes, they returned on to this idea again with some positive/open responses from other member including questions and observations that further illustrate the language-link from Sir Tim Berners-Lee who seemed to express a lot of interest in parts.

It is critical to have competition/mutations and a population to evolve a platform – it is important to the long term health of the Web that we be able to evolve the slang of the Web (not just specify and release).  Yehuda called this a “Path for Natural Platform Evolution”.

What’s in it for me?  What do I have to do?

If you have ever participated in the open standards lists you know:  Most people aren’t that committed to bettering something that might make their lives easier years from now.   They have a job to do.   Within a month or two of following any list, you will begin to recognize the same small group of people who really contribute at that level.  It’s not that the general public is unwilling to contribute, it’s just really difficult to do and they don’t actually get anything out of it now.  This is distinctly different from words in a language – it’s very easy (and cheap) to pick up words that you find useful or descriptive and use them in your everyday parlance, on Facebook or Twitter.  You get something out of it when you find something becomes much easier to describe or maybe even makes you sound a little smarter or hipper than you might be without them.  Web standards on the other hand are kind of the opposite of that at the moment.

Cheap ways to help

  1. Collect the slang:  One very cheap way that you can help if you have chrome is to install Meaningless and help collect anonymous statistics about the elements and approaches used in sites that you visit – this helps inform what slang is actually picking up and which is mostly just theory or fad.  What benefit do you, personally, get out of it right now?  Actually none, but it’s so easy, why not help :)
  2. Provide the environment, use the slang:  Prollyfills (which I write about a lot) are to standards as slang is to words in the dictionary – they are essentially proposals that we hope catch on.  Using them right now actually does deliver value and it can be pretty cheap to try them out and provide some feedback.  If you’re very interested, join the Extensible Web Community group (see prollyfills link above) and help out – it’s open and you can do so in any way you like, and at your own pace.  You can comment, show us examples/use cases, contribute new ideas, or help create tests – or just help promote some proposal you really like.

Missing links….

Unfortunately this will only take us so far with the Web platform as it is today.  As Yehuda and Alex explained in their TAG presentation – it is hard to impossible to prollyfill some things in order for us to develop this slang in the real world: The platform doesn’t contain the right layers for people to step in and tweak/develop just one piece.  The only ones capable of doing this are browser vendors.  The architecture is lacking.

Thus, today, developers write increasing complex JavaScript: Re-implementing in order to emulate things that are already natively implemented in the browser just to make a single piece work a little better.

In order to fix this problem, we need to fix the gaps in the platform.  Some of this will take a while.  Luckily we have some good people working on it.  We’ve elected some good guys to the W3C Technical Architecture Group, both the membership and private encouragement we have gotten in the W3C Extensible Web Community Group have been encouraging  and there are spec authors like Tab Atkins who are helping to open new doors to make things like this more possible in places where they are currently very hard.