Open Source Software Licenses

indexI have to confess something. It might be controversial. Here goes. I don’t want to open source my projects. Before you start thinking I’m a Luddite let me explain where I’m coming from.

I’ve been writing, producing, and selling my music for the past 15 years. I haven’t made a ton of money (to be honest, I’ve barely made any) but I like having complete control over my creative output. 

When I think of open source I think of throwing the code up on the web and losing all control of it. I don’t want to “open the kimono.” I want to hide the magic. I want to keep my software unseen. There are two distinct audiences experiencing my output: users and developers. I want to delight the former and, if there’s time, include the latter.

I am on the cusp pf releasing a new application that I have been coding non-stop for the past 3 months. I’ve had the idea for a year and only just made some serious progress on the program. If I were to release the code that I’ve been working on, I am concerned that someone who has not worked on this code as long and hard as I have will compile it and get it to the marketplace before I do.

I still have a week of debugging before I can submit it to the app store for approval. What if I introduce other contributors to my code and they change it into an application that I do not like? What kind of control do I have over my code once it’s been released on the internet?

If I’m being honest, the only real motivation in posting my code to github is to show that I can indeed code. Don’t misunderstand me, I see the benefits of getting more eyes on my code to extend the features and squash the bugs at a faster pace than I can manage by myself. I suppose I’m hesitant to be judged by other programmers.

The open source initiative lists the following popular licenses:

Why open source your software?

  • More developers review your code
  • Bugs are identified faster
  • Bugs are fixed quicker
  • Opportunities for new features are discovered
  • Feedback from the developer community guides development
  • New features can be added faster
  • You don’t need to hire developers
  • You don’t need to hire beta-testers
  • You don’t need to hire debuggers

Misconceptions of Open Sourcing Software

When I first started thinking about open sourcing my software I was worried about it being trashed. During my review of the libgdx framework I learned that they use the Apache 2.0 license. The license allows them to share their code but it prevents contributors from deviating their code from its intended purpose.

Now that I understand that certain privileges of the original creator can be guarded I am a little more willing to consider releasing my source code to the public. I also understand that no one person can truly accomplish something great.

If you want to accomplish something in the world, idealism is not enough – you need to choose a method that works to achieve the goal.

– Richard Stallman

Why use an Open Source Software License?

  • Protect your intellectual property
  • Solicit programming feedback from the programming community
  • Explicitly state the rules in extending your code

Licensing my projects

I am considering a restrictive license on code that I do not want someone to make a clone of my service. I want to retain some to all of the rights for this piece of code and the services that I will monetize with it. I would use the Apache 2.0 open source software license.

Licenses I’d like to fork

On the other side of the table I have a very different view. If I find a project on github that I am very interested in, I hope to see that it has an MIT License. You can do anything with it. It is the least restrictive.

I would appreciate any feedback that someone wants to give me regarding how to control my code and make sure that someone else doesn’t take from me. I know that once I publish my code to the wider world, all of it will be exposed and I can never take it back.

I want a license that protects my work from being exploited by being repacked, re-branded, or re-purposed.

Author: David Neely

Professional Software Developer. Technology and Web Coordinator at the University of Hawaii's Manoa Career Center.