Elegant Little Pieces

pieterhpieterh wrote on 30 Apr 2011 15:30

chat4.png

Unprotocols are elegant little pieces that we remix to create order and sanity in the swirling chaos that is the software industry. There are, IMO, three essential properties of an unprotocol. One, it's immune from capture. Two, it's lightweight. Three, it uses natural semantics. Said @leastfixedpoint: It's a mystery to me why AMQP isn't yet specified in little elegant pieces like this: http://rfc.zeromq.org/spec:13.

Welcome to unprotocols.org.

Let's take these three essential properties one by one. In 2008 I wrote an analysis for the Digital Standards Organization on the different ways of capturing a standard. It's an amusing way to look at open standards. Instead of listing properties like "Freely available text" and "Patents licensed under reasonable and non-discriminatory terms", the "freedom from capture" approach lets us say that "A standard is a published specification. It is a free and open standard if it is immune to vendor capture at all stages in its life-cycle."

And in real life, standards do get captured, even with the best intentions. The most common is simple copyright. Yes, you can implement this spec. No, you may not mix it into new shapes and forms. For me, a work that can't be remixed isn't culture. At best it's a snapshot of culture. And the best contract for remixing software is the GPL, because it (a) forces anyone who mixes someone's work to reciprocate and allow mixing of their work, and (b) it has clauses to prevent patent hijacks.

So, unprotocols are GPL licensed. Freaky, huh? Yet it works really nicely. Take any of the specs at http://rfc.zeromq.org, and feel free to remix. This is literally how the process works.

OK, part two: lightweight. Again, to quote Digistan.org (I love that website), "Specifications should take minutes to explain, hours to design, days to write, weeks to prove, months to become mature, and years to replace."

If it takes more than a few pages to define a contract, then there's something wrong. Long, complex, tedious contracts usually mean one party is cheating the other. Whereas a conventional protocol spec might be several hundred pages long, the unprotocol equivalent would be a stack of three or four 5-page specs.

Finally, "natural semantics". By this, I mean that an unprotocol should read naturally, use words that are familiar, and be obvious. If it's too complex, it's wrong. In my next posting I'll propose a set of Keywords for Unprotocols that show what I mean.

Comments

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License