License Codes

Due to the rather extreme propagation of software licenses which are open, closed, community, free, semi-free, etc etc ad nauseum, I hereby put forth a modest proposal aimed at clarifying this situation once and for all.

People who have been on the net for a while have probably run into geek codes, bear codes, or the like, in which people describe various personal attributes using a concise set of letters and punctuation. The purpose is to avoid the awkward need to interact with other human beings in order to communicate various routine personal facts. Since most people enjoy reading legalese even less than engaging in idle chit-chat, it should be obvious that the need for a software license code is considerably more pressing.

Examples

The GNU Public License (GPL) is P+ L- H- A- (LGPL is similar but H+).

The BSD license is P- L- H++ A+ (XFree86 is similar but A-).

On to the codes

A--
Not only do the authors discourage using their name in advertising, they believe that if anyone starts telling the world about the software, the unwashed masses will immediately destroy what had been a delightful small community. For maximum purity, the original authors should also refrain from using the software themselves. You can never be too sure.
A-
Instead of acknowledging authorship, the advertiser is perfectly free to misleadingly imply they produced the software, the documentation, and many types of sliced bread. Why companies want to be associated with the software and its documentation, given its usual unfinished state, is an open question. Sliced bread isn't all it's cracked up to be either, but I digress.
A+
The authors of the software must be acknowledged in advertisements for products incorporating the code. The software distribution itself should, of course, bury the authorship information as cleverly as possible in order to avoid depriving people who write ads from the pleasure of the treasure hunt of finding who is to be credited.
A++
The authors of the software must be acknowledged in advertisements, but only when an omnipotent and omniscient observer would conclude that doing so would cause lots of good publicity for the authors, zero negative publicity, and no technical support calls. If the advertisement can start the ball rolling on eternal salvation for the authors, that is a plus but is not required.
H-
The author is trying their best to make it hard for vendors to do anything as silly as feed their family by charging for a license on their product using the code. The only constraint on how far the license is willing to extent its tendrils is what the lawyers told the author they could get away with.
H+
The code tries to be usable as some kind of component but doesn't let people take the whole package lock, stock and barrel, and then add value (the concept of value add is central to the software industry; see below for further discussion). The goal is for the lawyers to make money arguing over the definition of component (which is, of course, long and in legalese).
H++
No limits on your ability to combine this code with other code which implements incompatible interfaces, improves the quality of the screenshots, introduces bugs, and puts in features which look great in a marketing blurb but don't quite work. In the software industry this is known as "adding value".
P-
Distributing modifications without any ado is allowed, in fact one is encouraged to be rather loose and fast with attributing the authorship, on the theory that this will encourage authors to let go of their control issues.
P+
The license tries to be fair in terms of authorship attribution without imposing any particular burdens concerning how modifications may be distributed. This is, of course, futile. People will still mess up the attributions, and/or flame away about who deserves credit.
P++
One must distribute modifications in a separate patch file. Furthermore, to avoid any confusion about whether the patch file is from the original author, one is encouraged to be very clear about separating the patch and the original. For example, distribute the original distribution to people whose names begin with A through M and the patch to people whose names begin with N through Z.
P+++
Although making modifications is technically allowed, once you do, the owner expects to flame you considering your technical judgment, means of distributing the patch, attempts to help anyone using the software, and your personal hygiene. You can expect to be loudly vilified until you withdraw the patch.
L--
Like L-, but in fact the owner of the software finds money to be a rather distasteful concept. Far from trying to get you to send them some, they might be flame you for your mercenary assumptions if you tried.
L-
The owner of the software is not trying to use the license to put a wedge between you and your hard earned money.
L+
Like L++, but without an attempt to squeeze blood from turnips (for example, no payment for personal use, academic use, noncommercial use, or something of the sort).
L++
Fork it over, Bill Gates is in town.
?
This character should be liberally sprinkled in to denote provisions which are vague, subject to interpretation according to the whim of the author, or just plain ungrammatical. A fair scoring of all the licenses out there would surely assign more "?" than "-" or "+".

Are you serious?

The net being what is it, I'm sure that someone will take this seriously. In a perverse way, I think I kind of hope for it.

Feedback concerning this page

"You are a fundamentally warped and sick individual. You know, I *like* that in a person..." - Eric Raymond, email of 22 Mar 1999.

I must say well done on this. It really is a fine piece of work. We've decided to publish it as a "Special Feature" in a day or two. This means it'll stay up on the Segfault front page for at least the next few months and always be available from the "Special Features" link at the top.

Thanks for a well written story!

- Scott James Remnant of segfault.org, email of 30 Mar 1999.


I disclaim copyright interest in the contents of this web page; it is in the public domain.
This page is part of Jim Kingdon's personal pages.