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.

closed as not constructive by user40980, Walter, Martijn Pieters, gnat, World Engineer Feb 24 '13 at 21:17

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    Perhaps answers could limit themselves to one particular licence? – Frank Shearar Jan 7 '11 at 22:01
  • 2
    What tools and components do you currently use? Java? Oracle? MySQL? Eclipse? List some components you use. Then, list the licenses that apply to those components. That's a starting place for the discussion. – S.Lott Jan 7 '11 at 22:18
  • Perhaps someone could edit the title/question a bit, when I read it at first, I though it referred to licensing of programmers, not of programs... "Which common software licenses <blah>" – sdg Jan 8 '11 at 1:25
  • 2

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 '11 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. – Frank Shearar Jan 7 '11 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 '11 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 '11 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". – Frank Shearar Jan 8 '11 at 10:00
  • P.SE has this link elsewhere, but for ease of reference, here's the CC FAQ entry: wiki.creativecommons.org/… – Frank Shearar Jan 8 '11 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 '11 at 22:07
  • I was being sloppy there. Edited. – Nick Moore Jan 7 '11 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 '11 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. – Tom Anderson Jan 7 '11 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.