Or any library, honestly. But I am writing this article because it personal relates to my recent game programming. I needed something to help with event-driven programming in my game. This led to me creating Luvent. But you will see on the project page that I list a number of similar alternatives.
Why did I more-or-less reinvent the wheel instead of using one of those existing libraries?
They Had No License
Almost none of the alternatives listed on the Luvent page have an explicit license. This poses a problem.
Important Note: This is where I need to point out that I am not a lawyer. Furthermore, when I talk about copyright I am speaking only about United States copyright law.
Copyright is not something that you need to apply for. You can file a copyright in the United States; it can be a huge asset in any copyright-related case. But it is not mandatory. Copyright is inherent and automatic with few exceptions, most notably ‘work for hire’. That means if you create a cool library and publish it on GitHub with no license or anything of the sort then you automatically have the copyright for that work. You do not have to explicitly claim it.
This creates a problematic situation for me. I want to use your cool library but it dangerous because you alone have the copyright. So if I use your library now I am putting myself in the cross-hairs of a copyright infringement lawsuit. And as a fledgling indie-game developer that is not a risk I can afford.
Using a license (or releasing your work under multiple licenses if you so choose) is a tremendous help because it provides a lot of legal clarification about what I can and cannot do with your work. Again, there is nothing better than consulting an attorney, but if you want to see a comparison of popular licenses then I recommend TLDRLegal. That site can help you choose the right license based on what you want others to be able to do and not do with your work, while still maintaining your copyright (unless you release it into public domain).
As a brief aside, let me say that I personally believe no one should ever use the JSON license. Because it contains this line:
The Software shall be used for Good, not Evil.
Do you want to end up in a court case trying to defend that your software is not used for ‘Evil’, for which there is no clear legal definition of in the first place? Yeah—I don’t want to be in that situation either. As a developer that line makes me chuckle. But from a legal point-of-view it looks so vague that it makes the license a non-option.
Go out there and create awesome software. And if you want to release it for others then choose a license that fits your personal beliefs about what freedoms others should have with using your software. Make it explicit so that developers like me do not have to unfortunately pass over your work (when I would love to use it) simply because of potential copyright infringement in the future.