Anne van Kesteren

Aryeh Gregor on being an editor and the W3C process

Aryeh Gregor worked for about half a year on defining the editing APIs of the web platform, giving the WHATWG updates in the process. Yesterday he announced his work more widely as he considered it stable. He got critique for not being interested in putting his personal time into guiding the work through the W3C even though he licensed it such that everyone willing to do the work could do so. In response to said criticism he wrote the excellent piece quoted below. His ideas on editor power and how the WHATWG and W3C operate pretty closely match my own experience:

The timing had nothing to do with anything. I've been working on the spec and related material for around six months, and only finished speccing the basic functionality a few weeks ago. I spent my time in the last few weeks cleaning up rough spots that I had left for later, and only just now did I get it into a shape where I'm willing to say it's reasonably stable and not missing many major pieces. I'm doing this on a contract for Google, which as it stands is over at the end of August, so it's well past time for me to try getting serious feedback.

I didn't ask any other WHATWG people before declaring it stable. As with basically everything at the WHATWG, there's no coordination beyond maybe casual discussion on IRC. We're individuals with a common approach to things, not an organization. I can count on one finger the number of times there was any secret discussion among WHATWG regulars that I was party to (which was just someone mass-mailing people to try getting them to comment on a key Change Proposal in the HTMLWG in case they hadn't been paying attention).

I'd been developing the spec solely at the WHATWG until yesterday, and received lots of good technical feedback there. I thought I'd post a heads-up to public-html in case anyone there was interested. Since I figured people would ask where the spec was going to be hosted, I mentioned that I wasn't planning to host it at the W3C. The result of this gesture to date has been one public e-mail, one private e-mail, and at least one blog comment and one Google+ thread concerned purely about procedural and political issues without any concern for the technical work that I spent six months on. And zero technical feedback. This is one basic reason I'm not interested in doing any work at the W3C.

What are my motives for not wanting to do anything at the W3C, in more detail? In my view, the one and only goal of technical specifications is to ensure interoperability between implementations. This is a massive benefit to the web by itself. One of the web's key disadvantages is that the same code doesn't always work reliably cross-browser, and we need clear standards to lessen that. Another advantage of clear standards is that a standardized world only realizes its full potential if there are many tenable competitors, and the less reverse-engineering is necessary to enter the market, the more competition we'll have. Furthermore, implementers have a vested interest in the success of the web platform, so they have strong incentives to favor features that will make the web stronger. Most non-implementers have much less of a direct stake, and as a result are often guided more by idealism than by practicality -- everyone is more idealistic about decisions when they have to suffer less of the consequences. We all have a stake in the web, but not close to the stake Google or Mozilla or Opera has.

An explicit non-goal of any of my standards work is giving non-implementers any binding say in the decision-making process. The only real goal I have is interoperability of implementations, and the only ones whose opinion matters for that goal are implementers. Now, I'm not going to be like Ian Hickson and claim that I have no real power because the implementers decide everything. I face lots of constraints, but there's tons of room for judgment calls on the details that implementers don't care about specifically, or when arbitrating between implementers who disagree. I'm also not going to say, as Ian Hickson does, that my decisions are rational consequences of the evidence presented to me. Of course they're going to wind up based on my own judgment and opinion, and other people could reasonably disagree. So why do I think I should make the decisions without accountability to anyone beyond implementers and my employer?

I'm fine with saying that I'm the one who gets to make the calls here, not anyone else, for a few reasons:

First, someone has to make the calls when the available evidence isn't completely clear, and since no one can really prove they're right to start with, it may as well just be one person for efficiency's sake. At the W3C, instead of having one person decide things by fiat, they have a whole complicated mess of people decide things by fiat, including editors and Working Group members and chairs and the TAG and the Director and the AC and the Team and probably other people I've never even heard of, all guided by a morass of written and unwritten rules that theoretically specify who decides what but so vaguely that lots of time is spent arguing about who gets to make the decision. But you know, it's still decided by fiat in the end, by a person or people at the W3C and not by "the community". I see precisely zero advantage to all this bureaucracy except that it makes more people feel like they have power by giving them illusory control in some circumstances, that in practice they wield anyway only over trivial issues where the implementers aren't going to put their foot down.

Second of all, given the previous, I happen to be writing the spec anyway, so if someone is going to make decisions by fiat, it's simplest and most efficient for me to just write it how I want instead of having someone else decide and tell me what to do. Otherwise I'd have to write the spec and then spend time rewriting it because months later someone else decided they disagree, which is a waste of everyone's time if my opinion is as good as theirs. On top of that, I'd have to maintain a spec I think is wrong, which would cause the quality to suffer. Look at the incoherent definition Hixie wrote for <u>: it doesn't make sense in his vision of the spec, but he was forced to add it anyway, so it doesn't fit.

Third, I happen to have spent over 450 hours of my life over the last six months testing and thinking about this small slice of the web. If we're going to pick someone to call the shots, I'm a pretty logical candidate, even if I do say so myself.

And fourth, my time is my own or my employer's, and no one else has any right to place demands on how I spend it. I'm making my work freely available in the public domain to whoever wants to use it, for any purpose. Part of the reason I'm doing web standards work instead of web development is precisely that I get to work on my own terms and I have the freedom to make my own decisions. I simply do not agree that I have any moral obligation to let the W3C or anyone else tell me how to spend my time. I'm doing what I personally think is best for the web, and if you aren't able to convince me otherwise, you're free to spend your own time however you like.