As a software developer I have often encountered individuals who did not understand the importance of Open Source Software, this is unfortunate and I’ll try to explain why. I think the best way to describe it is to think of it as pragmatic software development. After all, programmers are basically lazy. http://threevirtues.com/
It’s important not to get open source software confused with “Free Software” (think Richard Stallman of GNU fame). The “Free Software Foundation” advocates that you not charge for software. This is not the same as open source software! Open source software can make use of a wide variety of licenses around reuse and monetization.
A brief description of “open source” software in relation to “closed source” proprietary software states: “Open Source” or “Closed Source” refers to the amount of access to the programming source code of the project that is granted to the public for viewing/editing/redistributing.
An organization behind a traditional “closed source” project will go to great lengths to obfuscate programming code before handing it over to consumers of the application. They also apply licenses to the software which you implicitly or explicitly agree to when you use that application. These licenses forbid any reverse engineering or attempt to access the source code. The application is meant to serve its purpose in a “black box” sense. You don’t need to or get to know the magic occurring on the inside.
An organization or individual behind an “open source” project is quite the opposite. With “open source” there is no attempt to obfuscate the programming code of the application. Where the shades of gray appear for open source projects is that there may be licenses applied to the application (though not necessarily). There are many types of open source licenses with varying degrees of freedom applied to the consumer. In some cases the software is legal to redistribute, with modifications to the code or untouched, and you may even charge to do so. In other cases the software licenses allow you to redistribute, but you are required to maintain the original license and keep a reference to the original author. The number of permutations in which open source software may be restricted via license is more than can be listed here (interested parties can view popular licenses at http://opensource.org/licenses).
More and more, companies such as IBM, Google, Facebook, and GE are using, and in some cases sponsoring, open source software solutions. Even large, traditionally closed source software companies like Microsoft are beginning to see the importance of open source software.
Following is a list of some of the reasons companies are recognizing and embracing open source software:
- You may have heard this one before, Open Source Software “Scratches the developers itch”.
The best software is created in response to an individual’s wants/needs. You write open source software for yourself and it just so happens that in most situations it is likely to resonate with many others in similar situations. This brings with it an innate emotional attachment to the software. Who wants to work on something that holds no interest or meaning for them? No one I know. Like it or not, passion, or lack thereof, is readily apparent in software.
- Reduce, reuse, recycle.
This doesn’t just apply to garbage. Knowing when to reuse code and when to write new is a difficult skill which separates good programmers from great programmers. Open source software projects lend themselves to reuse and extension. Found a project that does 80% of what you want, but you really need/want that other 20%? Don’t start from scratch, contribute to the project and fill in that missing 20%. In the words of Isaac Newton, “If I have seen further it is by standing on the shoulders of giants”.
- No one is perfect.
Don’t expect to get something right the first time you try it, in fact you should go so far as to expect to not get it right. Your first attempt at anything is also when you know the least about it. Closed source projects are often started with tight budgets and strict deadlines, and most of the time there is no provision for throwing away the first attempt even though it is inevitably the worst. Open source projects provide the flexibility and freedom of scrapping first attempts and parlaying the lessons learned into new iterations.
- Tinkerers, Problem Solvers, and Enthusiasts.
These days the users of your software are, more often than not, competent enough to provide valuable information and debugging feedback. By opening the software source you’re tapping into the latent energy of your user base and are giving them the opportunity to help you (and in turn themselves) by spotting issues and bugs which may otherwise cost you countless hours and dollars to find yourself. To quote Eric S. Raymond, “given enough eyeballs, all bugs are shallow”. These are just a few of the more outstanding reasons why open source software is making a place for itself in the modern software-driven world. My hope is that this has provided some insight into the power of open source software.