Reinventing Discovery_ The New Era of Networked Science - Michael Nielsen [29]
Note that nobody reads every post in linux-kernel. In fact, nobody who expects to have time left over to actually do any real kernel work will read even half. Except Alan Cox [one of Torvalds’s lieutenants], but he’s actually not human, but about a thousand gnomes working in under-ground caves in Swansea. None of the individual gnomes read all the postings either, they just work together really well.
Anyway, some of us can’t even read all our personal email, simply because we get too much. I do my best.
Linux has grown greatly since Torvalds wrote that post. Today no one, not even the superhuman Alan Cox, can follow all the work going on. The beauty of the Linux collaboration is that it’s organized so no one needs to.
Radical Reuse and the Information Commons
Modularity is important, but there’s an even more basic pattern of collaboration underlying open source: the ability of open source programmers to reuse and modify one another’s work. This may seem so obvious as to be unworthy of consideration, but it has some surprising consequences. The obvious impact, of course, is that programmers don’t have to start from scratch, but instead can build on and incrementally improve what others have done. Effectively, open source programmers are building a publicly shared information commons. This commons isn’t located anywhere in particular, but rather consists of all the open source code distributed in myriad locations across the internet. This enables a dynamic division of labor, in which code from one person can later be improved by other people whom they have never met, with expertise and needs they may never even have heard of. The richer the information commons becomes, the more powerful a foundation it is for collaboration.
Together, the community of open source programmers is creating a remarkably active and rich information commons. A study by two scientists at the software company SAP, Amit Deshpande and Dirk Riehle, shows that the commons now contains more than a billion lines of publicly available code, and is growing at a rate of more than 300 million lines per year. Want to add flames to your home movie as a special effect? There are open source software packages for that. Want to control your robotic home telescope? Depending on your telescope, there may well be open source software for that. Open source software is available to do an almost unimaginably broad range of tasks.
The emergence of this rich information commons has radically changed the way programmers work. Before, programmers wrote their programs largely from scratch. Their heroes were people who could, in a few days, whip up a program that would take lesser programmers months to write. To give you the flavor of what skills were valued in those days, consider this story from one of the great pioneers of modern computing, Alan Kay, a recipient of the Turing Award, the highest honor in computer science. It’s an admiring story about the programming prowess of Donald Knuth, another legend of computing and Turing Award recipient:
When I was at Stanford with the [artificial intelligence] project [in the late 1960s] one of the things we used to do every Thanksgiving is have a programming contest with people on research projects in the Bay area. The prize I think was a turkey.
[Artificial intelligence pioneer and Stanford Professor John] McCarthy used to make up the problems. The one year that Knuth entered this, he won both the fastest time getting the program running, and he also won the fastest execution time of the algorithm. He did it on the worst system [. . .] And he basically beat the shit out of everyone.
Today, programming has changed. Today, a great programmer isn’t just someone who can quickly solve a problem from scratch. A great programmer is someone who is also a master of the information commons, someone who, when asked to solve a problem, knows how to quickly assemble and adapt code drawn from the commons, and how to balance that with the need to write additional code from scratch. Such a master can build on the work