Academic journal article Library Technology Reports

Chapter 6: What Makes Open Source Work?

Academic journal article Library Technology Reports

Chapter 6: What Makes Open Source Work?

Article excerpt

The Linux community seemed to resemble a great babbling bazaar of differing agendas and approaches ... out of which a coherent and stable system could seemingly emerge only by a succession of miracles.

--Eric Raymond (1)

The earliest open-source programs were those that we now think of as the most basic. When Linus Torvalds began work on his eponymous kernel, he did it not because he wanted to build an operating system, but, as he explained in the 2001 documentary Revolution OS, because he wanted to use an operating system:

   The thing about an operating system is that you're never supposed
   to see it. Nobody uses an operating system; people use programs.
   The only mission in life of an operating system is to help those
   programs run. (2)

But when Torvalds couldn't find what he needed elsewhere in the community, he started work on his own. And as people joined Torvalds over time, it wasn't because they simply wanted to use the OS, but because they wanted the OS to help them do something.

And when computer scientists at UC Berkeley started work on the building-block networking software that is now an essential component of the Internet and any computer that connects to it--even our laptops and desktop PCs--they weren't doing it because networking was an end in itself. They were doing it because it supported other applications and uses of the computers. (The folks at Berkeley also invented the e-mail infrastructure we all use today.)

Matt Mullenweg's true passion is jazz, but the expat Texan started doing Web sites to pay for sax lessons. (3) But Mullenweg soon came to appreciate the beauty of a well-designed page and good typography and began to struggle with the limitations of the tools that he had to achieve that beauty.

   At the time, everybody was using "nl2br," a function that
   converted new lines to breaks, but I wanted it to do better. (4)

The problem was that breaks, the
tag, made a piece of text look correct, but they weren't semantically correct. That is, a break gave the appearance of paragraphs in the text, but they didn't work like paragraphs. And that meant that some typography rules didn't work. How could you tell the Web browser to make the first few words of the first paragraph of each section bigger if the Web browser didn't know where the paragraphs were?

And fixing that was just a start. Mullenweg wanted to automatically insert curly quotes, the quotes that smartly lean left or right on each side of the quoted text, and a dozen other things that might fix what he thought was the ugliness of so much text on the Web.

So Mullenweg, who admits he hadn't done much programming before that, started work on a new function that did what he wanted. He sought help from friends, people on mailing lists, even his dad, and eventually put together the first version of "autop."

The code has been modified over time, reused in other projects, and generally adopted everywhere to the point that the features it provides have become commonplace and expected in any software that publishes to the Web.

And so a fellow who would have rather been playing in jazz clubs found himself writing bits of code. And a number of people, who each had their own goals, found those bits of code useful. And some of them contributed fixes and improvements back.

That's how open-source communities take shape.

"Good programmers know what to write. Great ones know what to rewrite (and reuse)," explains Eric Raymond in "The Cathedral and the Bazaar," and most successful open-source projects prove the truth of it. (5)

The development of the Apache Web server offers an interesting look at how programmers will reuse code and communities can form to solve a common problem while achieving different goals.

Rob McCool wrote httpd, a Web server program that ran on Unix, in the early 1990s while working at the National Center for Supercomputing Applications (NCSA), University of Illinois, Urbana-Champaign. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed

Oops!

An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.