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
    While Jagger's WU is indeed most excellent, I would like to add my own thoughts on the matter. Specifically, I propose to analyse the effects of choosing a particular license for a piece of software, and the kinds of 'ware for which that might be appropriate.

    Why people contribute to free software

    Basically two reasons: 1) They want that feature so they can use it 2) They want to sell you something. I infer this from the fact that there are plenty of great system tools for linux, a few tools which have a plugin-based architecture, and you need to buy the plugins to have something, and no good, large games (Other than as ported by Loki).


    The GPL

    This licence prevents commercial exploitation of software, as people can use it completely freely, but can't distribute under a different license. This means that is works great for projects that programmers like to use: Xemacs, webservers, linux.

    Business models used in relation to this include making software where all the functionality is in modules, and selling support for existing software (like Red Hat). No-one has started a project with the intention of selling support, as the risk of someone else coming along and selling better support is too high. The modules approach may or may not be appropriate, but it is a poor thing to have a license dictate the software's design.


    LGPL

    This allows commercial software to be linked against the so licensed software. This still has implications for the design of software that links against such code, but it is still much less strong, and frankly, breaking other people's code out into libraries is probably a good thing.

    The implications of this are that commercial programs may be based upon free libraries; commercial developers have an incentive to contribute to the libraries, at least in terms of bug fixes. This is good for everyone. Because these things have to be shared, but the originators may still reap the benefits, there is an incentive for companies to develop and LGPL code that they want to be kept bug-free, and have many new features added cheaply. Typically, one might do this is developing the library on one's own would just take too much time, and/or not actually be large enough to be worth marketing as a product in it's own right.


    BSD License

    This is the LGPL on crack. It allows all of the freedoms of the LGPL, but it also allows you to close the source of shared code. Why would anyone contribute rather than steal? The answer is that if one were to create a bug-fixed, closed source version, a) The open-sourcers would know what to fix, and fix it, b) Maintaining a separate, clean development tree would drive you insane. Instead, people fix the bugs, giving them access to code to base their commercial work off, or just to use. Again, people add features which they want maintained cheaply, but which, in themselves, don't constitute killer features.

    Log in or registerto write something here or to contact authors.