I want to talk to you today about something the open-source programming world can teach democracy, but before that, a little preamble. Let's start here.
This is Martha Payne. Martha's a 9-year-old Scot who lives in the Council of Argyll and Bute. A couple months ago, Payne started a food blog called NeverSeconds, and she would take her camera with her every day to school to document her school lunches. Can you spot the vegetable? (Laughter) And, as sometimes happens, this blog acquired first dozens of readers, and then hundreds of readers, and then thousands of readers, as people tuned in to watch her rate her school lunches, including on my favorite category, "Pieces of hair found in food." (Laughter) This was a zero day. That's good.
And then two weeks ago yesterday, she posted this. A post that read: "Goodbye." And she said, "I'm very sorry to tell you this, but my head teacher pulled me out of class today and told me I'm not allowed to take pictures in the lunch room anymore. I really enjoyed doing this. Thank you for reading. Goodbye."
You can guess what happened next, right? (Laughter) The outrage was so swift, so voluminous, so unanimous, that the Council of Argyll and Bute reversed themselves the same day and said, "We would, we would never censor a nine-year-old." (Laughter) Except, of course, this morning. (Laughter) And this brings up the question, what made them think they could get away with something like that? (Laughter) And the answer is, all of human history prior to now.
(Laughter) So, what happens when a medium suddenly puts a lot of new ideas into circulation?
Now, this isn't just a contemporaneous question. This is something we've faced several times over the last few centuries. When the telegraph came along, it was clear that it was going to globalize the news industry. What would this lead to? Well, obviously, it would lead to world peace. The television, a medium that allowed us not just to hear but see, literally see, what was going on elsewhere in the world, what would this lead to? World peace. (Laughter) The telephone? You guessed it: world peace. Sorry for the spoiler alert, but no world peace. Not yet. Even the printing press, even the printing press was assumed to be a tool that was going to enforce Catholic intellectual hegemony across Europe. Instead, what we got was Martin Luther's 95 Theses, the Protestant Reformation, and, you know, the Thirty Years' War. All right, so what all of these predictions of world peace got right is that when a lot of new ideas suddenly come into circulation, it changes society. What they got exactly wrong was what happens next.
The more ideas there are in circulation, the more ideas there are for any individual to disagree with. More media always means more arguing. That's what happens when the media's space expands. And yet, when we look back on the printing press in the early years, we like what happened. We are a pro-printing press society.
So how do we square those two things, that it leads to more arguing, but we think it was good?
And the answer, I think, can be found in things like this. This is the cover of "Philosophical Transactions," the first scientific journal ever published in English in the middle of the 1600s, and it was created by a group of people who had been calling themselves "The Invisible College," a group of natural philosophers who only later would call themselves scientists, and they wanted to improve the way natural philosophers argued with each other, and they needed to do two things for this. They needed openness. They needed to create a norm which said, when you do an experiment, you have to publish not just your claims, but how you did the experiment. If you don't tell us how you did it, we won't trust you. But the other thing they needed was speed. They had to quickly synchronize what other natural philosophers knew. Otherwise, you couldn't get the right kind of argument going. The printing press was clearly the right medium for this, but the book was the wrong tool. It was too slow. And so they invented the scientific journal as a way of synchronizing the argument across the community of natural scientists. The scientific revolution wasn't created by the printing press. It was created by scientists, but it couldn't have been created if they didn't have a printing press as a tool.
So what about us? What about our generation, and our media revolution, the Internet? Well, predictions of world peace? Check. (Laughter) More arguing? Gold star on that one. (Laughter) (Laughter) I mean, YouTube is just a gold mine. (Laughter) Better arguing? That's the question.
So I study social media, which means, to a first approximation, I watch people argue. And if I had to pick a group that I think is our Invisible College, is our generation's collection of people trying to take these tools and to press it into service, not for more arguments, but for better arguments, I'd pick the open-source programmers. Programming is a three-way relationship between a programmer, some source code, and the computer it's meant to run on, but computers are such famously inflexible interpreters of instructions that it's extraordinarily difficult to write out a set of instructions that the computer knows how to execute, and that's if one person is writing it. Once you get more than one person writing it, it's very easy for any two programmers to overwrite each other's work if they're working on the same file, or to send incompatible instructions that simply causes the computer to choke, and this problem grows larger the more programmers are involved. To a first approximation, the problem of managing a large software project is the problem of keeping this social chaos at bay.
Now, for decades there has been a canonical solution to this problem, which is to use something called a "version control system," and a version control system does what is says on the tin. It provides a canonical copy of the software on a server somewhere. The only programmers who can change it are people who've specifically been given permission to access it, and they're only allowed to access the sub-section of it that they have permission to change. And when people draw diagrams of version control systems, the diagrams always look something like this. All right. They look like org charts. And you don't have to squint very hard to see the political ramifications of a system like this. This is feudalism: one owner, many workers.
Now, that's fine for the commercial software industry. It really is Microsoft's Office. It's Adobe's Photoshop. The corporation owns the software. The programmers come and go.
But there was one programmer who decided that this wasn't the way to work. This is Linus Torvalds. Torvalds is the most famous open-source programmer, created Linux, obviously, and Torvalds looked at the way the open-source movement had been dealing with this problem. Open-source software, the core promise of the open-source license, is that everybody should have access to all the source code all the time, but of course, this creates the very threat of chaos you have to forestall in order to get anything working. So most open-source projects just held their noses and adopted the feudal management systems.
But Torvalds said, "No, I'm not going to do that." His point of view on this was very clear. When you adopt a tool, you also adopt the management philosophy embedded in that tool, and he wasn't going to adopt anything that didn't work the way the Linux community worked. And to give you a sense of how enormous a decision like this was, this is a map of the internal dependencies within Linux, within the Linux operating system, which sub-parts of the program rely on which other sub-parts to get going. This is a tremendously complicated process. This is a tremendously complicated program, and yet, for years, Torvalds ran this not with automated tools but out of his email box. People would literally mail him changes that they'd agreed on, and he would merge them by hand.
And then, 15 years after looking at Linux and figuring out how the community worked, he said, "I think I know how to write a version control system for free people."
And he called it "Git." Git is distributed version control. It has two big differences with traditional version control systems. The first is that it lives up to the philosophical promise of open-source. Everybody who works on a project has access to all of the source code all of the time. And when people draw diagrams of Git workflow, they use drawings that look like this. And you don't have to understand what the circles and boxes and arrows mean to see that this is a far more complicated way of working than is supported by ordinary version control systems.
But this is also the thing that brings the chaos back, and this is Git's second big innovation. This is a screenshot from GitHub, the premier Git hosting service, and every time a programmer uses Git to make any important change at all, creating a new file, modifying an existing one, merging two files, Git creates this kind of signature. This long string of numbers and letters here is a unique identifier tied to every single change, but without any central coordination. Every Git system generates this number the same way, which means this is a signature tied directly and unforgeably to a particular change.
This has the following effect: A programmer in Edinburgh and a programmer in Entebbe can both get the same -- a copy of the same piece of software. Each of them can make changes and they can merge them after the fact even if they didn't know of each other's existence beforehand. This is cooperation without coordination. This is the big change.
Now, I tell you all of this not to convince you that it's great that open-source programmers now have a tool that supports their philosophical way of working, although I think that is great. I tell you all of this because of what I think it means for the way communities come together.
Once Git allowed for cooperation without coordination, you start to see communities form that are enormously large and complex.
This is a graph of the Ruby community. It's an open-source programming language, and all of the interconnections between the people -- this is now not a software graph, but a people graph, all of the interconnections among the people working on that project — and this doesn't look like an org chart. This looks like a dis-org chart, and yet, out of this community, but using these tools, they can now create something together. So there are two good reasons to think that this kind of technique can be applied to democracies in general and in particular to the law.
When you make the claim, in fact, that something on the Internet is going to be good for democracy, you often get this reaction.
(Music) (Laughter)
Which is, are you talking about the thing with the singing cats? Like, is that the thing you think is going to be good for society? To which I have to say, here's the thing with the singing cats. That always happens. And I don't just mean that always happens with the Internet, I mean that always happens with media, full stop. It did not take long after the rise of the commercial printing press before someone figured out that erotic novels were a good idea. (Laughter) You don't have to have an economic incentive to sell books very long before someone says, "Hey, you know what I bet people would pay for?" (Laughter) It took people another 150 years to even think of the scientific journal, right? So -- (Laughter) (Applause)
So the harnessing by the Invisible College of the printing press to create the scientific journal was phenomenally important, but it didn't happen big, and it didn't happen quick, and it didn't happen fast, so if you're going to look for where the change is happening, you have to look on the margins.
So, the law is also dependency-related. This is a graph of the U.S. Tax Code, and the dependencies of one law on other laws for the overall effect. So there's that as a site for source code management. But there's also the fact that law is another place where there are many opinions in circulation, but they need to be resolved to one canonical copy, and when you go onto GitHub, and you look around, there are millions and millions of projects, almost all of which are source code, but if you look around the edges, you can see people experimenting with the political ramifications of a system like that. Someone put up all the Wikileaked cables from the State Department, along with software used to interpret them, including my favorite use ever of the Cablegate cables, which is a tool for detecting naturally occurring haiku in State Department prose. (Laughter) Right. (Laughter) The New York Senate has put up something called Open Legislation, also hosting it on GitHub, again for all of the reasons of updating and fluidity. You can go and pick your Senator and then you can see a list of bills they have sponsored. Someone going by Divegeek has put up the Utah code, the laws of the state of Utah, and they've put it up there not just to distribute the code, but with the very interesting possibility that this could be used to further the development of legislation. Somebody put up a tool during the copyright debate last year in the Senate, saying, "It's strange that Hollywood has more access to Canadian legislators than Canadian citizens do. Why don't we use GitHub to show them what a citizen-developed bill might look like?" And it includes this very evocative screenshot.
This is a called a "diff," this thing on the right here. This shows you, for text that many people are editing, when a change was made, who made it, and what the change is. The stuff in red is the stuff that got deleted. The stuff in green is the stuff that got added. Programmers take this capability for granted. No democracy anywhere in the world offers this feature to its citizens for either legislation or for budgets, even though those are the things done with our consent and with our money.
Now, I would love to tell you that the fact that the open-source programmers have worked out a collaborative method that is large scale, distributed, cheap, and in sync with the ideals of democracy, I would love to tell you that because those tools are in place, the innovation is inevitable. But it's not. Part of the problem, of course, is just a lack of information. Somebody put a question up on Quora saying, "Why is it that lawmakers don't use distributed version control?" This, graphically, was the answer. (Laughter) (Laughter) (Applause) And that is indeed part of the problem, but only part.
The bigger problem, of course, is power. The people experimenting with participation don't have legislative power, and the people who have legislative power are not experimenting with participation. They are experimenting with openness. There's no democracy worth the name that doesn't have a transparency move, but transparency is openness in only one direction, and being given a dashboard without a steering wheel has never been the core promise a democracy makes to its citizens.
So consider this. The thing that got Martha Payne's opinions out into the public was a piece of technology, but the thing that kept them there was political will. It was the expectation of the citizens that she would not be censored. That's now the state we're in with these collaboration tools. We have them. We've seen them. They work. Can we use them? Can we apply the techniques that worked here to this?
T.S. Eliot once said, "One of the most momentous things that can happen to a culture is that they acquire a new form of prose." I think that's wrong, but -- (Laughter) I think it's right for argumentation. Right? A momentous thing that can happen to a culture is they can acquire a new style of arguing: trial by jury, voting, peer review, now this. Right?
A new form of arguing has been invented in our lifetimes, in the last decade, in fact. It's large, it's distributed, it's low-cost, and it's compatible with the ideals of democracy. The question for us now is, are we going to let the programmers keep it to themselves? Or are we going to try and take it and press it into service for society at large?
Thank you for listening. (Applause) (Applause) Thank you. Thank you. (Applause)