Douglas Crockford on making a standard (JSON) (2): minimal solutions and decision making

This is part of a great talk from infoQ. JSON (Javascript Object Notation) is a format for sending data between computers, including those running different programs or operating systems. If you aren’t interested in the technical stuff just them wash over you and focus on the process. Incidentally, the infoQ website is quite a nice way of presenting video of a speaker and their slides together so we don’t miss anything.

I discovered JSON as the necessary solution to a problem. In 2000 I was trying to do applications that today we would call AJAX applications and I needed some way of moving the data across the wire… I only claim to have discovered JSON (Javascript Object Notation), I do not claim to have invented it, and that’s because it already existed in nature. So all I did was give it a name and identify its potential uses… The first use I have been able to document of someone using Javascript to move data across a wire was at Netscape in 1996. So this idea has been out there just waiting for someone to make it real.

So what I did was I gave it a specification and a little website, it’s not much more than one page, which describes the standard in three ways. And that’s all I did. That’s literally all I did. I did not form any consortiums or committees, I did no extensive PR, no nothing. I just put it out there, like throwing a message in a bottle out in the ocean, and people stumbled across it and thought, “Yeah, I could use that,” and that was it. JSON grew from that.

And so JSON happened just because I said so. I am a standards body. JSON.org declared the JSON standard, and it is what it is. And so in that respect I found the standards process to have worked really well.

In addition to being a heretic I’m also a minimalist. I’m always looking for the smallest possible solution, I like things to be really efficient. So especially in terms of standards, I think that standards should be fully minimal. The less we have to agree on then the easier it is for us to interoperate. Very often you see the opposite happening, particularly in standards committees, because a committee has a difficult time agreeing on everything and often a committee will agree to disagree. You know, if we can’t decide which we should do, A or B, a committee will say, “Let’s do A and B,” and that makes things much harder for the implementers and ultimately much harder for the users, much harder for everybody. When you’re a standards organisation of one heretic it turns out to be a lot easier, it’s just, you know, “Let’s just do A,” and that’s all we do.

Douglas Crockford: Heresy & Heretical Open Source: A Heretic’s Perspective

I'd love to hear your thoughts and recommended resources...