The Software Licensing Guide

Do you ever wonder why some people say Open Source and other people say Free Software? Ever wonder why you have to download that Linux driver from the company website rather than getting it from your Linux distro? Ever wonder why ESR and RMS hate each other? No? Well too bad.

Here are all of the types of software that I know about, from most restrictive to least restrictive.

Proprietary Software

  • Proprietary Commercial Software
  • Canonical Example:Microsoft Windows
    The Good: Produced by paid teams of professional software developers, including professional programmers and professional artists, commercial software really does, with a few notable exceptions, tend to be of higher quality and polish than most other software. For example, compare any commercial PC game to any open source or free game. With the notable exception of nethack, non-commercial games don't hold a candle to their commercial counterparts. Much commercial software is simply better and easier to use.
    The Bad: In order to get it, you either have to fork over hard earned cash or steal it. Also, since you have no access to the source code, there is no way make any changes or fixes yourself. This might not seem like a big deal if you aren't a programmer, but it also means that no one, not even bearded, suspender-wearing, Unix guys who wrote a POSIX-compliant kernel for the entertainment value and maintain their own branch of the Linux kernel, can change it either. This means that those annoying bugs and gaping security holes just don't get fixed very often.
    The Ugly: When it comes right down to it, the only way to make money writing software is to keep the source code secret and sell the binaries. If you don't believe that, then I have some shares of Red Hat to trade for your Microsoft. No? How about VA Linux Software, or MandrakeSoft, or Turbolinux, or Corel? As much as everyone likes free or open software, you just can't make any money at it.
  • Freeware
  • Canonical Example:Most device drivers, a lot of crappy shareware.
    The Good:Sometimes called free as in beer, and everyone loves free beer. The main advantage here is that it doesn't cost any money, and sometimes you absolutely have to have it, like the device driver to your brand new GeForce 5 Pt 55000 (or whatever element they're using by then).
    The Bad:Usually written by a couple of people in their spare time, then inexplicably given a restrictive license, most freeware has all of the disadvantages of open software and none of the advantages. With device drivers, there tend to be conflicts that forbid distributing the driver with the Linux distribution, making it just that much harder to get everything working right.
    The Ugly:id Software proved that you can indeed base a business model around exceptionally excellent freeware, you just have to start charging at some point. Some freeware (http://www.download.com), however, just sucks. For God's sake, if you aren't making money anyway, open your damn code! That way I can go back through and fix your mistakes, and then we'll both be happier.

    Open Software

    This is where it gets tricky. Free software is open, but open software is not necessarily free, and either of them can cost money.

  • Open, but not Free
  • Canonical Example:SSH, QT (formerly)
    The Good:A truly rare breed, this type of software allows you to view the code, but not make changes or redistribute it. Aside from PINE and povRay, nothing comes to mind.
    The Bad: In theory, this sort of licensing could be used to actually make money, if it wasn't for the fact that unlike houses and cars, once I have the blueprints for a program, I can build as many as I want for free in my spare time. If you make the source code freely available, then you're not going to convince anyone to pay for it, and you're just going to make people mad when they can't freely alter and distribute it.
    The Ugly: Read The Cathedral and the Bazaar, then check out ESR's website. This "open" vs. "free" issue is the major bone of contention between the Free Software Foundation, led by Richard M. Stallman, and the Open Source Initiative, led by Eric S. Raymond. Believe me, this argument can get really ugly, especially when RMS gets pedantic and ESR breaks out the firearms (http://tuxedo.org/~esr/guns/).
  • Open and Free
  • Canonical Example: GNU anything, Linux
    The Good:Free as in speech, this software was developed by hundreds talented programmers for the sheer entertainment value (or to impress the ladies) and released to everyone for free to do with as they wish, provided that everyone else will be able to do the same, in perpetuity. This allows immense projects to be undertaken by hundreds of people all around the world while hundreds of thousands test, review source, and fix bugs. This process can produce exceptionally stable, secure, high quality software in a small amount of time at virtually zero cost. Nethack, GNU/Linux, and GCC are excellent example of the power of this method.
    The Bad: It is worth mentioning again the you can't make money doing this. This might not seem important, but what it really means is that it will always remain a free time project and will rarely if ever have the same level of polish and overall quality as a commercial program, to which much more time, effort, and resources are dedicated. Also, the GNU GPL forbids using free software in non-free projects, essentially forbidding anyone from ever making money off the code.
    The Ugly:The surprisingly restrictive terms of the GPL can lead to some interesting licensing issues, such as making it illegal to distribute KDE binaries until Trolltech relicensed the QT toolkit under the GPL. What I really want to know is how much free software is being used (illegally) in proprietary programs.
  • Open and Free, but relicensable
  • Canonical Example: {Free | Open | Net}BSD, Apache
    The Good:The least restrictive licensing, these programs are freely modifiable and distributable, like the GPL, but if you want to include them in a proprietary program, just send the authors a postcard and give credit where credit is due. The BSD-style license is probably free software's best hope for eventual commercialization.
    The Bad:Commercialization, especially at the cost of freedom, is not necessarily a good thing, as RMS will certainly tell you, at great length. Also, the main authors of the software might not receive compensation, which seems a little unfair.
    The Ugly:Aside from the occasionally license bigotry, most BSD-style licenses are accepted at free and open. How about that?

    As always, this is a living document, so please /msg me with comments, suggestions, and corrections (especially corrections). Or, just down-vote me and add another write-up to the mix :)

    For reference see:
    http://www.gnu.org
    http://catb.org/~esr
    http://slashdot.org
    - as if you don't go there already
    http://kernel.org
    http://www.bsd.org