« Apologies and betasBad beats »

On software licenses

I’m often stymied by software licenses. I like the intent of the GPL but the viral licensing doesn’t do it for me. I don’t like being forced to show everything just to use something. Just how the Hell does their intellectual property suddenly dictate what I have to do with mine? Other than that, I like the GPL. There are other licenses, obviously, but there isn’t nearly the controversy that the GPL has. To some extent, they all have their strengths and their weaknesses. I want a license that just does a few things but I can’t seem to find one. How can we have so many licenses but not one that does what I want? Quickly, here are the requirements I want in my ideal license (at least for some projects):

  1. Copyright retained by original author.
  2. Standard boilerplate about no warranty or liability
  3. Freedom to use the work in anything, commercial and noncommercial
  4. Derivations of the work must be made publicly available.

The first two requirements are hopefully obvious. I want to retain any intellectual property that I create so the copyright makes sense. Also, the boilerplate about not providing a warranty and having no liability is in every other license so I assume it is a sad necessity of software licenses in this day and age. I haven’t heard of anyone getting sued over providing source code but why take a chance? The other two requirements are a bit more interesting.

I really take no stance on whether commercial software or community software is better. I don’t think that there is this fight between capitalism and communism, closed-source and open-source, corporates and creatives. I’ve seen articles that portray the fight of the open-source movement as a stark battle between good and evil and I’ve seen articles from Microsoft (and others, but MS especially) that attack the open-source movement. I don’t think that I’m a centrist in this argument but there has got to be a happy medium. I think open-source and closed-source are differentially enabled to provide certain motivations and support for software. For this reason, I’m completely open to letting code that I’ve open-sourced be used in closed-source projects. I don’t have a problem giving code away for free that someone else may use in an application that they profit from.

Along these lines (and segueing into the fourth requirement) is that the GPL often scares people off. Many programmers don’t use completely viable GPL’d code simply because they don’t want to open their source. That is a shame. People are forced to reinvent the wheel simply because of the license. Sure, any code can be relicensed, but I just don’t want it to be an issue. I want a license that says: “You want to use this code? Go for it.” No re-licensing or hesitation involved.

Then there’s the last requirement. Derivations must be open-source. A bit strong? Well, I think it’s necessary for my ideal license. I’m providing this code for everyone. Why shouldn’t enhancements be made available, too? Give back to the community just as you have taken. Licensees aren’t asked to open all of their code, merely make available the changes they’ve made to the source they are specifically using. I want the code I’m releasing to grow and this clause just about forces it. I don’t have a problem with the new code being released under another license. It is the property of whoever created it, after all, so they should have the say in how it is distributed. All I want is that people give just as they have taken.

There isn’t any attribution or anything like that here. I previously used the Creative Commons Attributive license but that wasn’t my style. I don’t care if I’m mentioned in an about box or thanked for my work. The work itself is reward enough and all that crap. I acknowledge that it is important that someone doesn’t pass someone else’s work off as their own but other than that, anything is fair game. I’m appreciative of every kind word and remark that I get, either via emails or appearing in about boxes or readmes, but that’s icing on the cake, not an expectation.

So, is there a license like that? I’ve done some looking but I haven’t seen one. I quickly drafted a license that I’m considering using for my NSAttributedStrings class. I’m open to any comments on it. Software licensing isn’t my specialty so I appreciate anything from anyone with experience in the matter. I probably also need a name for it if I start using it. I don’t like the “FCS license” or anything like that because it necessarily attributes FCS for it. I’d like something descriptive like “Give and Take License” or something like that. It just needs to be catchier.

Copyright (c) <YEAR>, <Author>

All rights reserved.

This software is provided “as is” without any expressed or implied warranties. Neither the original author nor any contributors are liable for any damage caused by the use of this program.

You are free to use, distribute, and create derivative works for commercial and noncommercial use.

Derivative works of this software must be made publicly available.

Leave a Reply