What is Open Source and what are its advantages?

In its simplest terms, "open source" describes software where the source code, that is, the human readable source from which the software is built, is freely available.

Why is this important?

If you can see the source code of software, you can study and review not just the outward behavior of the software, but also its internal functioning and logic. You can understand how it works, how it fails, and how it can be improved.

Let's take a step back and think about just what software is. It's not a physical medium like steel or concrete (in his book, The Art of Software Testing, Glenford Myers refers to software being "malleable" in comparison to physical media). Rather, it is a manifestation of human logic, packaged into a form that can be used to accomplish specific tasks. These tasks can take the form of executing business processes, spacecraft navigation, or even just tools to enable us to waste time surfing the web. Software is, effectively, a bunch of ideas.

Now, how can you improve an idea? You subject it to a rigorous review that is also public, so that the idea must stand on its own merits. Where's a better place to have a review like this, in a cathedral, or a bazaar?

Eric Raymond contrasted the differences between closed source and open source software development with the analogy that is the title of his book, The Cathedral and the Bazaar (Raymond, Eric Steven, http://www.catb.org/~esr/writings/homesteading/cathedral-bazaar)

In the bazaar there is a free exchange of ideas. Those ideas, and criticisms of those ideas, can come from many sources and a wide number of people. The bazaar may seem to be chaotic, but it also allows for freedom and innovation and the unfettered filtering out of bad ideas. Think about it, if you are trying to design a complex system, wouldn't it be more successful if the design process includes a review by the widest possible audience?

In contrast, in the cathedral, only the members of a small, closed society are able to participate in the review of an idea and influence its ultimate design. The ideas are held secret from the outside world. The members of this closed society may be skilled, but they will be few in number and their actions are constrained by the rules of cathedral life.

These two worlds parallel these software development models:

  • In the closed source model, the ideas are secrets:
    • Only a small, select number of people can see the inner workings behind these ideas. They review, refine, debug, and correct the software that represent these ideas, and release them to the public in a closed form.
    • Design and security flaws, unless they are caught by the holders of the secrets, are built into the software.
    • Bad decisions can be hidden from the consumers of the software. These consumers see only the external form and output from the software. The consumers can ask for changes to be made to the software, but do not have a way to make the changes themselves. The consumers are often locked into complex, expensive, and restrictive license agreements with the software producers.
  • In the open source model, the ideas are open:
    • Anyone can review them, critique them, attempt to improve them, and even look for ways to exploit them. A large community of people participate in the conversion of these ideas into software. These people bring their own experiences, outlooks and their "many eyes" to the task of building the software.
    • Design and security flaws are often uncovered by people other than the original designers.
    • Bad decisions are often held up to public ridicule by members of the community, until the decisions are corrected.
    • The consumers of the software see both the external form and output from the software as well as its inner workings. These consumers are able to both request changes to the software, and can make those changes themselves, within the framework of flexible license agreements. The consumers can even retain the use of the software after their licenses expire.
    • Closed source leads to more bloat-ware as there is no community to weed this out. In large closed source companies more complexity is viewed as good. In an open source community, this bloat will be exposed to the light of day and removed.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset