Open Source Software 2013

Free as in Speech
Open Source Software, or widely known as OSS, is software development movement that is helping the current generation further its technological growth. OSS is set apart from other software since it is free, but this concept of “free” is subjective due to its multiple definitions. This idea lives on in the paradigm of gratis versus libre, or in laymans terms “free beer” and “free speech”, to no cost versus freedom, respectively. Definitely, this concept had confused me when I first encountered it, since I had the freedom to use the software without financial burden.

Free, but where is the funding?
Cost of development is one of the main barriers to OSS. If a developer is not being paid to create software, then the collective software is really just a donation of time. Since donated time is usually limited, additional software features that ensure a level of quality, such as such as unit testing or user guides, generally will be forgone for implementation. For end users, this is the reason why open source software is a hard sell as the software might not be complete or as polished as paid for software. Thankfully, there are other methods for a project to be funded.

Companies such as RedHat or Sonatype deliver support to the enterprise world where paid support and features are part of a business’s lifeline. Many OSS features or bug fixes will filter down from the support delivered by these OSS centered companies.

My OSS Love Affair
My first entrance into the open source scene was back in 2004 when I had released a ship dodge game. In hindsight, I have always learned from OSS, so I feel like I am returning a little favor to the community for teaching me how to program.

Event today, OSS has become a major portion of my development tool belt, especially Apache projects. On a daily basis, Apache Tomcat, Apache Maven, and the Eclipse IDE are only three of the tools that I use to develop software. I have done posts on OSS such as Sonatype Nexus and the YUI Shifter tool on tools that I use to develop. My list of beloved OSS could probably extend for a couple more lines, but let us stop there.

Why do I develop OSS?
As a developer, I feel pressure to develop good code, because my software is open for anyone to view. As OSS is open to anyone, I feel that my code should meet a certain level of quality. This pressure makes me want to develop quality pieces of code.

Who owns it anyways?
Up until now, I never really understood why an OSS needed a license. I felt that if I had put a piece of code online, then anyone could use that code as they please. With the recent advent of intellectual property battles, I find more importance in defining a licenses when I create a project.

I have always been biased to the Apache 2.0 License, because I felt Apache was a big OSS project provider. After reevaluating the Apache 2.0 license, I felt that there was just too much legal jabber and structure that I felt it felt unfit for my needs. In the end, I choose the new BSD license, because of its overall length. In addition, the license allows the software to be used in both commercial and non-commercial products and it allows for only advertising that I consent.