- From: Ian Hickson <ian@hixie.ch>
- Date: Wed, 23 Apr 2014 00:13:53 +0000 (UTC)
- To: Chris Wilson <cwilso@google.com>, Glenn Adams <glenn@skynav.com>
- cc: www-archive@w3.org, Anne van Kesteren <annevk@annevk.nl>, Si Robertson <retromodular@gmail.com>, PhistucK <phistuck@gmail.com>
- Message-ID: <alpine.DEB.2.00.1404222239580.23431@ps20323.dreamhostps.com>
(continuing from blink-dev) On Tue, 15 Apr 2014, Chris Wilson wrote: > On Tue, Apr 15, 2014 at 2:23 PM, Tab Atkins Jr. wrote: > > > > ... whenever the W3C forks a WHATWG spec, they: > > > > * rarely if ever update the fork, so it drifts behind the WHATWG > > version by a significant amount (sometimes *years* - there are some > > W3C forks of WHATWG specs that were last updated in 2012, *when they > > initially forked*) > > Well, certainly not true in HTML. The HTML spec is often weeks or months behind. > > * sometimes make incompatible edits without attempting to get it into > > the WHATWG version of the spec, and rarely if ever indicate this > > prominently, so implementors accidentally following the W3C fork > > implement incorrect things that are incompatible with what other > > browsers are doing > > I'm not sure what "attempting to get it into the WHATWG spec" means, > precisely, nor why the W3C WGs would find that particularly a goal. Well the alternative is to be actively forking a spec, which seems obviously bad. > > * violate the spirit of their own refusal to allow forks of W3C specs, > > a decision which has been repeatedly affirmed by W3C management. > > Making a conscious choice to be a one-way street is not the same as > violating the spirit of their refusal. The W3C says "Forking a specification imposes high costs, and is therefore not recommended" (http://www.w3.org/2013/09/html-faq). But then they do it. Over and over again. > The WHATWG says it's fine to fork their specs http://wiki.whatwg.org/wiki/FAQ#Isn.27t_it_bad_that_the_specs_have_forked.3F | Isn't it bad that the specs have forked? | Yes. It is critically important (not just here but in life at large) to understand the difference between something being _a right_, and something being _right_. In the USA, for instance, one has the right to blatently lie in political advertising. However, doing so is certainly dubious on moral grounds. Similarly, it's quite legal to smoke; however, from a health perspective, it's not a good choice. In the free software world, one has a legal right to fork software products; however, creating multiple forks tends to have negative consequences and is therefore broadly frowned upon. It's fine if you fork a project to reuse its code in a different way (e.g. the many forks of 2048 to make new variants of the game were considered fine), but it's considered quite different to take a project and then make a new one using the same code base competing with the original (). Wikipedia: "there is a reputation penalty associated with forking" -- http://en.wikipedia.org/wiki/Fork_(software_development) Jargon File: "Forking is considered a Bad Thing [...] accompanied by a great deal of strife and acrimony [...] There is serious social pressure against forking." -- http://catb.org/jargon/html/F/forked.html There's a reason the history of software forks is littered with negative connotations -- the "Unix wars", Emacs vs XEmacs, XFree86/XOrg, KOffice/ Calligra, OpenOffice.org's various forks... In the case of the WHATWG specifications, the licenses allow broad re-use, so that implementors can copy-and-paste text into their comment blocks, so that tutorial writers can copy-and-paste text into their documentation, so that experiments we haven't considered can spring up without inhibition, and so that, if the WHATWG stops being a good steward (like the W3C stopped being a good steward in the early 2000s), the next group of spec editors doesn't have to start from scratch. However, forking and competing? That's not why the spec is reusable. It's plagiarism. Yes, I use that word intentionally. Taking someone else's work or ideas and passing them off as one's own. Take this page: http://www.w3.org/html/wg/drafts/html/master/ It lists seven editors. What percentage of the spec do you think was written by each of those seven editors? What percentage of the spec do you think was _read_ by each of those seven editors? At least on some of the other specs, they have the decency to put the forking editors last, though still with no real acknowledgement of the difference in effort between the various roles ("upstream WHATWG version" could really mean anything unless you're already in the know): http://www.w3.org/TR/dom/ http://www.w3.org/TR/XMLHttpRequest/ But even on those, a casual observer won't realise they're looking at non-original work. For example, the XHR one just says: Copyright © 2014 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. The DOM one is dual licensed with one license being CC-BY, it's not at all clear who the attribution should reference; it later says: This document is published as a snapshot of the _DOM Living Standard_. This document was published by the HTML Working Group as a Last Call Working Draft. [...] This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. ...and it has a big "W3C" stamp at the top. How is a casual observer to guess that what the above really means is "This document was written by someone working outside the W3C, and we then took a copy that we're not maintaining"? How is a casual observer supposed to know that "produced" here really is inaccurate boilerplate? (Then there's the silent changes. For example, take this spec: http://www.w3.org/TR/webstorage/ ...supposedly, according to the header, I'm the sole editor. Now look at the references, specifically the [HTML] line. I guarantee I didn't write _that_ reference. Compare it to the W3C-branded draft I publish: http://dev.w3.org/html5/webstorage/ Stuff like that is all over the place. For example, see this spec's [HTML] reference: http://www.w3.org/TR/XMLHttpRequest/ Compare it to the [URL] reference, though. Makes you wonder why they had to change the [HTML] one -- I'm sure Anne's original version of that spec, before they forked it, didn't have that change.) > the W3C avails themself of that privilege. Yes, of that there is no debate. The question is merely whether that is an appropriate thing to do, given that all the original editors in question have repeatedly asked the W3C not to do so. I mean, it's not like our views on this are secret. We've asked Jeff Jaffe directly. We've asked the relevant working groups during their meetings. We've posted about it on the mailing lists, we've talked about it in person, we're talked about it on IRC. There's the WHATWG FAQ entry I cited earlier. > The W3C does NOT say it's fine to fork THEIR specs, out of concern that > precisely what the WHATWG does would happen Actually the DOM spec says it's fine, by your reasoning, since it has a CC-BY license. > that a third party would attempt to wrest the "definitive" title from > them. Note that the original HTML work at the WHATWG happened without any license-preventable textual forking. > I would hope the W3C adds value to their versions of WHATWG specs, > driven by their consensus work mode, and intellectual property policy*; > if none, then I would expect the actors to participate in the WHATWG > instead. One would hope. Most people who contribute to the forked specs have indeed moved to contributing in the WHATWG sphere. This hasn't stopped a small number of people from causing rampant confusion by using the W3C brand to give their forks prominence. > * I would point out that the lack of a coherent IP policy prevents some > actors from participating, and likely always will. The WHATWG patent policy is the W3C Community Group policy, which is more coherent than the IETF policy. On Wed, 16 Apr 2014, Si Robertson wrote: > > Google and Mozilla, get together and form a new standardization group, > boycott the existing ones and clean this mess up :-) That's how the WHATWG was started in the first place. :-) On Wed, 16 Apr 2014, Glenn Adams wrote: > > This is why I previously stated that the WHATWG does not follow a > consensus process. It endows certain individuals with the privilege of > speaking for the entire community, whether some or or all of that > community agrees with the results. The editors of WHATWG specs don't speak for any community. They merely produce documents which they then hope will be considered good by the relevant implementors. Consensus is not a useful value in Web spec development, because it doesn't accurately reflect the power dynamics at work. In practice, implementors have the ultimate say, not spec editors, not authors, not users, and not interested bystander standardistas. The W3C and the WHATWG thus have no power. (The WHATWG is built around that realisation; the W3C, however, is built no the assumption that it does have power. That's how it ends up making mistakes like RDF, XForms, or XHTML2.) XForms was developed with consensus. On the broad design strategy, it even had unanimous consensus. In the formative years of that group, certain individuals pushed for a particular design strategy, and those who disagreed, which happened to include key browser vendor implementors, left the group. The result: a specification which had unanimous consensus in the working group, and majority support amongst the W3C Advisory Committee, and which got zero support from browser vendors. Spec DOA. sXBL was developed with consensus. The spec was formed in a subgroup of the SVG group which -- probably due to the rather complicated nature of the work -- eventually dwindled to three people: me, a representative from a company that is not a browser vendor, and a chair who did not have a neutral point of view. The work continued for months in the form of weekly multlihour phone calls where painfully little progress was made; eventually, when the three of us finally deadlocked, the SVG group put the issue on their agenda and I planned to dial in to make my case. At the last minute (and while I was asleep), the meeting time was moved up, and I thus missed the meeting. During that meeting, Consensus was announced. sXBL never went anywhere. (I gave up on sXBL at that point, and rewrote it into XBL2. That didn't go anywhere either, because it was too much for browser vendors to adopt in one go. The idea later evolved into Web components, which is going through a W3C working group with a very different membership.) All of this is to say: I don't say that consensus is worthless for developing Web specs on a whim. I've been doing this for 15 years now. I've been involved in groups with a wide variety of development methodologies. A single responsible editor is not ideal (it depends a lot on the quality of the editor, for one), but consensus is no panacea either. It leads to multiplication of credit and dilution of blame ("I made that! Oh I didn't do that part, that was someone else's fault"), it is too trivially subverted (just stack the committee), it doesn't scale (witness the disaster that was the 1000+ member HTMLWG when it was still really active), it leads to least-objectionable compromise solutions rather than allowing specs to take risks with potentially great solutions, it is very vulnerable to the "echo chamber" effect where people who disagree with vocal participants get pushed out and inconvenient (but pertinent) feedback gets ignored, and it's really slow. More on this topic: https://plus.google.com/+IanHickson/posts/4MrPNJzE8vV Also, note that consensus is actually not the ultimate decision making process at the W3C. The final call on everything is made by Tim. The WHATWG, on the other hand, leaves the final call with the editor, but gives a small group of people the authority to kick editors out if they get out of hand (which has never happened so far). This means that editors get the final say only so long as on the balance they make good calls. (Of course, in both cases, as noted before, the real final say is with the implementors. It doesn't matter if the spec is written with consensus or with a single decision maker, if the implementors ignore it in the end.) > Even though I have a lot of respect for the technical output of these > individuals, I don't always agree with their position, conclusion, or > resulting work. Even _I_ don't always agree with the conclusions and resulting work that I'm responsible for. There's TONS of stuff in the HTML standard that I think is terrible and horrible. Unfortunately for me, my opinion really doesn't enter into many of the decisions that I have to make as editor. These things aren't even limited to pure implementation specifics; I even disagree with some authoring criteria (where one would imagine I have more latitude). For example, I think it's silly that HTML allows "<br xmlns="http://www.w3.org/1999/xhtml"/>" given that the trailing "/" and the "xmlns" attribute have no effect. (You can tell that that's how I feel because of the way the relevant spec prose is phrased -- "In HTML, the xmlns attribute has absolutely no effect. It is basically a talisman." and so on. Some of the original prose I had around these things were even more opinionated; I've dialed it back a bit over the years.) However, compelling arguments were made that were stronger than the arguments I could put forward and thus the features made it in. Same with how style="" is allowed on all elements (I wanted to limit it to only <font> elements), or the way <div> is allowed (I wanted to drop it), or the headers="" attribute on table cells (whole centithreads have I participated in debating that issue). The list goes on; see, e.g.: http://lists.w3.org/Archives/Public/public-html/2009Jun/0714.html). Do you always agree to everything that the W3C does? > And I have no recourse and no due process when it comes to resolving > differences or even in insisting that they listen to my objections or > those of anyone else. I guarantee a response to every substantial piece of feedback sent to the WHATWG list regarding a spec that I maintain. You might not like the final decision, but you cannot say that I won't listen. I go out of my way to listen to, and even seek out, objections. What is your recourse at the W3C when Tim makes a Formal Objection call that you disagree with? -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Wednesday, 23 April 2014 00:14:19 UTC