Open source as an outgrowth of wide area networking
Most of you know that I'm a big champion of open source technologies, things like Apache, Linux and Perl. But my emphasis in talking about open source has never been on the details of licenses, but on open source as a foundation and expression of the Internet.
|The key point about having source was that you could see how other people did things. This radically lowered the barriers to learning, and as learning by example means you don't have to spend your energy reinventing the wheel, imitation soon sparked innovation.|
By now, it's a truism that the Internet runs on open source. Bind, the Berkeley Internet Name Daemon, is the single most mission critical program on the Internet, followed closely by Sendmail and Apache, open source servers for two of the Internet's most widely used application protocols, SMTP and HTTP.
I've worked hard to get this concept across, to make sure that people realize that open source means more than Linux.
But the relationship between open source and the Internet goes deeper than the programs that implement and support important Internet standards. I believe that the open source movement as a whole is rooted in the spread of wide area networking.
I look back at the early days of UNIX at Bell Labs. The license under which UNIX was distributed was liberal, but not open source by today's definition. There were two things that were important:
1. The fundamental architecture of UNIX supported work by independent developers. Rather than building a single monolithic system, Thompson and Ritchie developed some simple system services, and a powerful concept for how programs could cooperate. As explained so elegantly by Kernighan and Pike in The UNIX Programming Environment, programs were expected to read a stream of ascii text as standard input, and write a stream of ascii text as standard output. As a result, simple programs could be connected in a pipeline, like legos or tinker toys, to accomplish more complex tasks.
This same principle is evident in the development of the Internet. Open standards tell you what you need to write and what you need to read in order to be able to cooperate with another program. What you do internally is up to you.
This is fundamentally a loosely coupled architecture that lowers the barriers to entry to participation in the market, or if you like, in the ecosystem. Anyone can write a program, for his or own purposes, for his or her own small niche, that nonetheless magically becomes a part of the entire system. Ecology in action.
2. Source code was available for inspection.
Much has been made of the merits of various licenses. While it is certainly true that one license or another may meet the needs and values of certain groups of developers and their users better than another, it seems to me that the mere fact of source availability, under any license, so far outweighs the differences between licenses that we'd be better off spending less time arguing, and more time building on each other's work.
That early AT&T license was not open source, and it contained terms that later allowed AT&T to foolishly close down the party, but it was the source availability itself that led to the explosion of creativity behind the first major cooperatively developed operating system.
The key point about having source was that you could see how other people did things. This radically lowered the barriers to learning, and because learning by example means you don't have to spend your energy reinventing the wheel, imitation soon sparked innovation.
We saw a similar explosion of creativity in the early days of the web. Tim Berners-Lee's original web implementation was not just open source, it was public domain. However, NCSA's web server and Mosaic browser were not technically open source. Still, source was freely available, and that allowed Apache to rise like a phoenix from the ashes when the NCSA server was abandoned once its developers went to work on proprietary alternatives.
But even more significantly, the "View Source" menu item migrated from Tim's original browser, to Mosaic, and then on to Netscape Navigator and MSIE. Though no one thinks of HTML as an open source technology (because of the fixation on licensing), it's been absolutely key to the explosive spread of the web. Barriers to entry for "amateurs" were low, because anyone could look "over the shoulder" of anyone else producing a web page. Dynamic content created with interpreted languages continued the trend towards transparency.
But let me go back to the history of wide area networking and the spread of open source.
In the early days, source was sent out on tape, but where things really started to take off was when source could be distributed over the net.
Usenet, that vast distributed bulletin board, was one of the first great success stories of voluntary, distributed collaboration that also characterizes open source. You "signed up" for usenet by finding a neighbor willing to give you a mail and news feed. This was a true collaborative network, where mail and news were relayed from one cooperating site to another, often taking days to travel from one end of the net to another. Hub sites formed an ad-hoc backbone, but everything was voluntary.
The uucpnet and usenet were used for email (the first killer app), but also for software distribution and collaborative tech support. Usenet newsgroups like comp.sources.unix took UNIX beyond the major centers of development at Bell Labs and UC Berkeley, and made it possible for widely distributed individuals and institutions to participate. Programs like Larry Wall's patch, which made it possible to distribute modifications rather than complete source files, compensated for relatively low bandwidth connections to make source even more widely available.