I recently wrote a little CLI Hangman game in Python; it’s not anything huge, but I did write it all myself. I would like to keep the program open and free (GPL ver.3), but it’s so small I don’t know if I need to/can license it.
Is there a certain point where a program becomes “license-able”, or can I license any program I write?
3
You can (i.e. you are legally permitted) to put a GPL license on any piece of software that you wrote, no matter how trivial it is.
A license only has real meaning with respect to your rights if you are willing to try to enforce it. That means that you need to track down people who violate your rights, and try to get them to stop, ultimately by taking them to court. For a sufficiently small program (i.e. trivial), it is simply not worth your effort to do that:
-
The chances that nobody who matters1 will bother to violate your rights in a way that matters in the first place. (Your program is trivial, and could therefore be trivially replaced with a program they wrote themselves … assuming that it was worth using.)
-
If they did violate, and you discovered this, it would cost you money to sue them. (Lawyer’s fees, court costs, discovery costs, etc, etc.)
-
There is a significant chance that your lawsuit would be thrown out on “Summary Judgement” … where the Judge basically decides that you cannot sustain a case on legal grounds. (For example, that your program doesn’t contain the minimal amount of copyrightable content.)
-
If you do get to a trial, here is a significant chance that you will lose anyway, unless you can convince the judge or jury that your trivial program is worthy of protection.
-
Even if you win, it is likely that you will only be awarded trivial damages … leaving your out of pocket for all of the expenses you incurred.
In short, it is not worth suing over a “trivial” program. (Use your own judgement to decide what is trivial … in this context.)
So that means that slapping an open source (or closed source) license on a piece of trivial software makes no material difference in terms of protecting your rights.
On the other hand, if your aspirations for your software are altruistic, putting an explicit (open source) license on a piece of software does make it clear to potential users of your software what their rights are. If you neglect to include a license, some future user may be left in the awkward position of not knowing your intention, and not being able to contact you to ask permission.
I’ve encountered situations where I wanted to include a worthy bit of code into a larger open source project, only to discover that the author hadn’t put an explicit license on it, and either wasn’t contactable, or wasn’t interested in clarifying the situation by stating what the license was. Net result – it was too risky to incorporate the code in the project.
(Legally, the default position is that copyrightable material is copyrighted by the author(s) and permission to copy is NOT granted.)
1 – That is, some person, company, organization who has enough resources to be worth suing. Suing someone with no money means you won’t get a payout, and you are liable to be labelled a bully and a copyright troll.
4
If you do not license your code, no matter how small, it is by default protected by Copyright law. This means that, unless it falls into a very small and specific set of use cases, people won’t be able to reuse or redistribute your code without your express permission.
You’re potentially asking two questions by suggesting a copyleft license such as GPL v3 though, because it implies that you have two intentions:
- To provide your code free for use for any purpose, provided that
- Redistributions are also offered under a similar license
The first can be satisfied by any open source license, and it’s definitely preferable to none, because without any, it is effectively under “all rights reserved”. People who don’t want to be on the wrong side of the law will see “no license” as a huge red flag and they’ll keep clear of your code.
The second has practical problems as Stephen mentioned, since for trivial pieces of code, it is extremely difficult to spot let alone prosecute offenders of your license, i.e. those that redistribute your code without also offering it under a compatible license, so you cannot guarantee that no one will infringe.