The Cathedral and the Bazaar

Last updated
The Cathedral and the Bazaar
Cathedral-and-the-Bazaar-book-cover.jpg
Cover of the paperback compendium edition
Author Eric S. Raymond
Publisher O'Reilly Media
Publication date
1999
Pages241
ISBN 1-565-92724-9
OCLC 42420737
005.4/32 21
LC Class QA76.76.O63 R396 1999
Website www.catb.org/~esr/writings/cathedral-bazaar/

The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary (abbreviated CatB) is an essay, and later a book, by Eric S. Raymond on software engineering methods, based on his observations of the Linux kernel development process and his experiences managing an open source project, fetchmail. It examines the struggle between top-down and bottom-up design. The essay was first presented by Raymond at the Linux Kongress on May 27, 1997 in Würzburg (Germany) and was published as the second chapter of the sametitled book in 1999.

Contents

The illustration on the cover of the book is a 1913 painting by Lyubov Popova titled Composition with Figures and belongs to the collection of the State Tretyakov Gallery. [1] The book was released under the Open Publication License v2.0 in 1999. [2]

Central thesis

The software essay contrasts two different free software development models:

The essay's central thesis is Raymond's proposition that "given enough eyeballs, all bugs are shallow" (which he terms Linus's law): the more widely available the source code is for public testing, scrutiny, and experimentation, the more rapidly all forms of bugs will be discovered. In contrast, Raymond claims that an inordinate amount of time and energy must be spent hunting for bugs in the Cathedral model, since the working version of the code is available only to a few developers.

Lessons for creating good open source software

Raymond points to 19 "lessons" learned from various software development efforts, each describing attributes associated with good practice in open source software development: [3]

  1. Every good work of software starts by scratching a developer's personal itch.
  2. Good programmers know what to write. Great ones know what to rewrite (and reuse).
  3. Plan to throw one [version] away; you will, anyhow (copied from Frederick Brooks's The Mythical Man-Month ).
  4. If you have the right attitude, interesting problems will find you.
  5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
  6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
  7. Release early. Release often. And listen to your customers.
  8. Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone.
  9. Smart data structures and dumb code works a lot better than the other way around.
  10. If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.
  11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
  12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
  13. Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away. (Attributed to Antoine de Saint-Exupéry)
  14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
  15. When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!
  16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
  17. A security system is only as secure as its secret. Beware of pseudo-secrets.
  18. To solve an interesting problem, start by finding a problem that is interesting to you.
  19. Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one.

Legacy and reception

In 1998, the essay helped the final push for Netscape Communications Corporation to release the source code for Netscape Communicator and start the Mozilla project; it was cited by Frank Hecker and other employees as an outside independent validation of his arguments. [4] [5] [6] Netscape's public recognition of this influence brought Raymond renown in hacker culture. [7]

When O'Reilly Media published the book in 1999 it became one of, if not the first, complete, commercially distributed books published under the Open Publication License. [2]

Marshall Poe, in his essay "The Hive", likens Wikipedia to the Bazaar model that Raymond defines. [8] Jimmy Wales himself was inspired by the work (as well as arguments put forward in pre-Internet works, such as Friedrich Hayek's article "The Use of Knowledge in Society"), arguing that "It opened my eyes to the possibility of mass collaboration". [9]

In 1999 Nikolai Bezroukov published two critical essays on Eric Raymond's views of open source software, the second one called "A second look at The Cathedral and the Bazaar". [10] [11] [12] [13] They produced a sharp response from Eric Raymond. [14]

Curtis Yarvin's essay The Cathedral or the Bizarre, which argues for the end of American democracy, is named after the Raymond essay. [15]

See also

Notes

  1. "Colophon". The Cathedral & the Bazaar. O'Reily Media. Retrieved 20 December 2011.
  2. 1 2 "The Cathedral and the Bazaar". www.catb.org. Retrieved 2023-05-17.
  3. Raymond, Eric Steven. "The Cathedral and the Bazaar" . Retrieved 18 April 2012.
  4. "Epilog: Netscape Embraces the Bazaar".
  5. Jim Hamerly and Tom Paquin with Susan Walton (January 1999). "Freeing the Source: The Story of Mozilla". Open Sources: Voices from the Open Source Revolution (1st ed.). ISBN   1-56592-582-3. Frank had done his homework, citing Eric Raymond's paper, "The Cathedral and the Bazaar," and talking to people in departments throughout the organization--from engineering to marketing to management.
  6. Louis Suárez-Potts (1 May 2001), Interview: Frank Hecker, openoffice.org, (Since it always gets mentioned in relation to Netscape's Mozilla decision, I should also note that Eric Raymond's paper "The Cathedral and the Bazaar" was referenced by me and others who were lobbying Netscape's management. In my opinion the paper's importance in the context of Netscape's decision was mainly that it provided some independent validation of ideas that were already being actively discussed and promoted within Netscape. If you've ever tried to promote a proposal within your organization, then you may have discovered that it's somewhat easier to do this if you can point to someone outside the organization who's saying the same thing.)
  7. Sam Williams (30 November 2011). Free as in Freedom [Paperback]: Richard Stallman's Crusade for Free Software. "O'Reilly Media, Inc.". p. 161. ISBN   978-1-4493-2464-3. When Netscape CEO Jim Barksdale cited Raymond's 'Cathedral and the Bazaar' essay as a major influence upon the company's decision, the company instantly elevated Raymond to the level of hacker celebrity. Determined not to squander the opportunity, Raymond traveled west to deliver interviews, advise Netscape executives, and take part in the eventual party celebrating the publication of Netscape Navigator's source code.
  8. Poe, Marshall (September 2006). "The Hive". The Atlantic. Retrieved 2012-07-05.
  9. Schiff, Stacy. "Annals of Information". The New Yorker. Retrieved 4 July 2014.
  10. Karl Eugen Kurbel (23 June 2008). The Making of Information Systems: Software Engineering and Management in a Globalized World. Springer. pp. 222–. ISBN   978-3-540-79260-4 . Retrieved 15 October 2012.
  11. Bezroukov, Open source software development as a special type of academic research: Critique of vulgar Raymondism" Accessed 23 May 2019.
  12. Bezroukov, A second look at The Cathedral and the Bazaar Accessed 23 May 2019.
  13. Jan Bergstra; Mark Burgess (19 December 2007). Handbook of Network and System Administration. Elsevier. pp. 202–. ISBN   978-0-444-52198-9 . Retrieved 15 October 2012.
  14. Eric S. Raymond,"Response to Nikolai Bezroukov"
  15. Yarvin, Curtis. "The Cathedral or the Bizarre". Tablet. Retrieved 13 October 2024.

Related Research Articles

<span class="mw-page-title-main">Bugzilla</span> Web-based general-purpose bugtracker

Bugzilla is a web-based general-purpose bug tracking system and testing tool originally developed and used by the Mozilla project, and licensed under the Mozilla Public License.

<span class="mw-page-title-main">Eric S. Raymond</span> American computer programmer, author, and advocate for the open source movement

Eric Steven Raymond, often referred to as ESR, is an American software developer, open-source software advocate, and author of the 1997 essay and 1999 book The Cathedral and the Bazaar. He wrote a guidebook for the Roguelike game NetHack. In the 1990s, he edited and updated the Jargon File, published as The New Hacker's Dictionary.

<span class="mw-page-title-main">Open-source license</span> Software license allowing source code to be used, modified, and shared

Open-source licenses are software licenses that allow content to be used, modified, and shared. They facilitate free and open-source software (FOSS) development. Intellectual property (IP) laws restrict the modification and sharing of creative works. Free and open-source licenses use these existing legal structures for an inverse purpose. They grant the recipient the rights to use the software, examine the source code, modify it, and distribute the modifications. These criteria are outlined in the Open Source Definition.

Jamie Werner Zawinski, commonly known as jwz, is an American computer programmer, blogger, and impresario. He is best known for his role in the creation of Netscape Navigator, Netscape Mail, Lucid Emacs, Mozilla.org, and XScreenSaver. He is also the proprietor of DNA Lounge, a nightclub and live music venue in San Francisco.

Gecko is a browser engine developed by Mozilla. It is used in the Firefox browser, the Thunderbird email client, and many other projects.

"Homesteading the Noosphere" is an essay written by Eric S. Raymond about the social workings of open-source software development. It follows his previous piece "The Cathedral and the Bazaar" (1997).

In software development, Linus's law is the assertion that "given enough eyeballs, all bugs are shallow". The law was formulated by Eric S. Raymond in his essay and book The Cathedral and the Bazaar (1999), and was named in honor of Linus Torvalds.

<i>Revolution OS</i> 2001 documentary film

Revolution OS is a 2001 documentary film that traces the twenty-year history of GNU, Linux, open source, and the free software movement.

<span class="mw-page-title-main">Open-source software</span> Software licensed to ensure source code usage rights

Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative, public manner. Open-source software is a prominent example of open collaboration, meaning any capable user is able to participate online in development, making the number of possible contributors indefinite. The ability to examine the code facilitates public trust in the software.

<span class="mw-page-title-main">Mozilla Application Suite</span> Discontinued Internet suite

The Mozilla Application Suite is a discontinued cross-platform integrated Internet suite. Its development was initiated by Netscape Communications Corporation, before their acquisition by AOL. It was based on the source code of Netscape Communicator. The development was spearheaded by the Mozilla Organization from 1998 to 2003, and by the Mozilla Foundation from 2003 to 2006.

Multi-licensing is the practice of distributing software under two or more different sets of terms and conditions. This may mean multiple different software licenses or sets of licenses. Prefixes may be used to indicate the number of licenses used, e.g. dual-licensed for software licensed under two different licenses.

Open-source software development (OSSD) is the process by which open-source software, or similar software whose source code is publicly available, is developed by an open-source software project. These are software products available with its source code under an open-source license to study, change, and improve its design. Examples of some popular open-source software products are Mozilla Firefox, Google Chromium, Android, LibreOffice and the VLC media player.

Alternative terms for free software, such as open source, FOSS, and FLOSS, have been a controversial issue among free and open-source software users from the late 1990s onwards. These terms share almost identical licence criteria and development practices.

<span class="mw-page-title-main">History of free and open-source software</span>

The history of free and open-source software begins at the advent of computer software in the early half of the 20th century. In the 1950s and 1960s, computer operating software and compilers were delivered as a part of hardware purchases without separate fees. At the time, source code—the human-readable form of software—was generally distributed with the software, providing the ability to fix bugs or add new functions. Universities were early adopters of computing technology. Many of the modifications developed by universities were openly shared, in keeping with the academic principles of sharing knowledge, and organizations sprung up to facilitate sharing.

Nikolai Bezroukov is a Senior Internet Security Analyst at BASF Corporation and was member of Computer Science at Fairleigh Dickinson University. Also Webmaster of Open Source Software University, a volunteer technical site for the United Nations Sustainable Development Networking Programme (SDNP) that helps with Internet connectivity and distributes Linux to developing countries.

License compatibility is a legal framework that allows for pieces of software with different software licenses to be distributed together. The need for such a framework arises because the different licenses can contain contradictory requirements, rendering it impossible to legally combine source code from separately-licensed software in order to create and publish a new program. Proprietary licenses are generally program-specific and incompatible; authors must negotiate to combine code. Copyleft licenses are commonly deliberately incompatible with proprietary licenses, in order to prevent copyleft software from being re-licensed under a proprietary license, turning it into proprietary software. Many copyleft licenses explicitly allow relicensing under some other copyleft licenses. Permissive licenses are compatible with everything, including proprietary licenses; there is thus no guarantee that all derived works will remain under a permissive license.

Linux began in 1991 as a personal project by Finnish student Linus Torvalds to create a new free operating system kernel. The resulting Linux kernel has been marked by constant growth throughout its history. Since the initial release of its source code in 1991, it has grown from a small number of C files under a license prohibiting commercial distribution to the 4.15 version in 2018 with more than 23.3 million lines of source code, not counting comments, under the GNU General Public License v2 with a syscall exception meaning anything that uses the kernel via system calls are not subject to the GNU GPL.

"The Magic Cauldron" is an essay by Eric S. Raymond on the open-source economic model. It can be read freely online and was published in his 1999 book, The Cathedral and the Bazaar.

Release early, release often is a software development philosophy that emphasizes the importance of early and frequent releases in creating a tight feedback loop between developers and testers or users, contrary to a feature-based release strategy. Advocates argue that this allows the software development to progress faster, enables the user to help define what the software will become, better conforms to the users' requirements for the software, and ultimately results in higher quality software. The development philosophy attempts to eliminate the risk of creating software that no one will use.

Software relicensing is applied in open-source software development when software licenses of software modules are incompatible and are required to be compatible for a greater combined work. Licenses applied to software as copyrightable works, in source code as binary form, can contain contradictory clauses. These requirements can make it impossible to combine source code or content of several software works to create a new combined one.

References