Licensing is something that I really haven't paid any attention to; I guess I felt there was no need. However I can't but help thinking that I should.

So which are the most common licenses that I, as a programmer, should be aware of? Also, it would be helpful if you could include a brief description of each provided.


7 Answers 7


The MIT licence

The Aleister Crowley Twitter summary is "Do what Thou wilt (provided ye give me credit)".

You can easily find the exact form of the MIT licence, so I'll talk about what the licence is good for.

It's a permissive licence, which means that other people can easily use your code. In particular, they can use your code to make money. The licence obligation on the part of the user is simply to include your copyright notice in all copies or substantial parts of their software.

It's the licence you'd use to ensure the maximum takeup of your software, when you don't care that someone else could use your software to build something and not share their innovations.

  • 1
    I like Aaron Swartz's License Haiku version: take my code with you / and do whatever you want / but please don’t blame me
    – Sharpie
    Jan 8, 2011 at 18:34

Creative Commons

You'll find quite a bit of free graphical content under one of these licenses.

The best examples I've seen for CC licenses are free fonts, icons, and images which would be used in applications (e.g. iPhone and Droid apps).

  • I don't understand why, but the CC folk think that their licences are a bad choice for software. Jan 7, 2011 at 22:48
  • @Frank, I've not heard that, and have certainly seen a few code snippets online under CC. I'm a bit surprised they don't see applicability in the software world.
    – bedwyr
    Jan 7, 2011 at 22:53
  • @delnan, that's true. Any open source software I produce typically falls into GPL or MIT, based on what I'm working on. I haven't found a use for CC that other licensing can't already provide.
    – bedwyr
    Jan 7, 2011 at 22:56
  • the only extra thing that I can see that CC gives is the ability to say "do whatever non-commercial thing you like". Jan 8, 2011 at 10:00
  • P.SE has this link elsewhere, but for ease of reference, here's the CC FAQ entry: wiki.creativecommons.org/… Jan 8, 2011 at 10:04

I'm a big fan of the Boost Software License. It's very similar to most other non-copyleft OSS licenses, except that it explicitly does not require attribution when the software or a derivative work is distributed in binary form. This is a big deal to me, as I develop code for the D standard library in my spare time, and standard library code needs to "just work" from a licensing perspective, without requiring the user to add a bunch of attributions. Therefore, when I want to release something under a permissive open source license, even if it's not part of a standard library, I tend to use the Boost license in case anyone else wants to borrow my code to use in the context of some standard library.


The big open source ones to look up are the BSD and MIT on one hand (permissive, just require giving credit) and GPL and Apache (share alike, more restrictions).

  • GPL (and Apache) do explicitly not restrict commercial usage. And BSD, MIT are for open source/free ("libre", not "gratis" - i.e. "free as in free speech") software too!
    – user7043
    Jan 7, 2011 at 22:07
  • I was being sloppy there. Edited.
    – Nick Moore
    Jan 7, 2011 at 22:10

I prefer the MPL for open-source work, because it feels like the Platonic ideal to me. It protects your work as open-source by requiring that changes and updates be made available, unlike the MIT and BSD licenses. On the other hand, it's not a viral license that tries to tell you what you can and can't also have in your project, like the GPL, which I see as severely overstepping its bounds. (Put one single GPL library anywhere in the project and the entire thing has to be GPL. IMO that's a bit like the person who made the nails you used claiming he has the right to your entire house.)

  • 1
    I have been reading into licences for several hours and the MPL makes the most sense. It is now my favorite licence :)
    – phunehehe
    Feb 20, 2011 at 7:40

Public domain is great until... companies try to incorporate public domain code into their application and then the lawyers may want to get releases from every single contributor to a public domain project. A good case example is SQLite, which is unsual in that it is in public domain, and not released under a consumer friendly license, like MIT.

Ref. SQLite's licensing page.

  • 2
    There are jurisdictions where it's legally impossible to release something into the public domain - works can only enter the public domain by expiry of copyright, which happens decades after the death of the author. There, PD licenses give you less freedom and certainty than even the worst open source licenses. Jan 7, 2011 at 22:50

Somehow I had not heard of the Affero GPL (AGPL) until relatively recently.

If you enjoy the viral religion of the share-and-share-alike aspect of the GPL, then you might want to use this for code likely to be run server-side. It stipulates that people can't make proprietary derivations of a GPL codebase and then run that on some server that people use without also sharing the code changes with those people.

(GPL-style licenses make sense for projects that are big and part of the GNU ecosystem. But as @MasonWheeler points out, using it too frivolously for little things like JavaScript libraries is too heavyhanded. That really can seem like the nail manufacturer wanting to claim rights on your house.)

Not the answer you're looking for? Browse other questions tagged or ask your own question.