Show HN: Legalfile – A proposal for software legal terms in a structured way
It’s fine to create a table or tool or app to help people find the license they want, but please do not encourage people to put this file you are describing in their repos.<p>There is no form of law that is as complex or specialized as copyright law. The forms of these licenses are complex not because no one was smart enough to realize it would be nice if they were simpler but because that complexity is required to adequately and accurately define the terms of the license being granted.<p>If a developer posts some code on github with an MIT or Apache or GPL vWhatever license, that’s how that code is licensed. The legal terms and issues are clear and well defined and done in a way that is known to stand up in court. If they post their code with that license AND your file containing your description of the license’s meaning and implications AND there is some subtlety of copyright law in some region somewhere around the world that you didn’t appreciate then in the best case that package is now licensed under two licenses, one written by an experienced lawyer and one written by someone with no knowledge of copyright law in that location (which is unlikely to be interpreted the way you want by the courts in that region) because yes your legal file could well be interpreted as a form of license. That’s the best case, the case where you just created a new, non-OSI-approved license that has implications neither you nor anyone else thought about, wanted, or anticipated. In the worst case, which is actually the important case in most legal scenarios, the developer is now guilty of making false representations about how their software is licensed, because that summary they added describing how the software is licensed does not align with how that region’s copyright law history interprets that particular form of license and the court views the legal file as a form of advertising that makes claims of a legal nature. It’s more than possible to have both the best case scenario (which is bad, because that code is now licensed by a license written by someone who didn’t understand copyright law) AND the worst case (the developer is guilty of fraud or misrepresentation or false advertising or some other crime for having attempted to license it under the well-written license while advertising it as being available under what the court views as a different set of license terms).<p>You’re a software developer. Law is like C++. It’s an incredibly powerful language designed by professionals to be used by professionals as a means of discussing edge cases most people never have to think about but that courts do. Think of courts like compilers, except every court compiles the code just a little bit differently in ways that are not entirely deterministic in advance and are determined in part by watching the historical behavior of thousands of other non-deterministic compilers acting on other pieces of code in the past. Sure you can come along and make a “simplified” version of C++17 that’s “much easier for normal people to read” but unless you are a world class language designer with decades of experience in C++ the odds your simplified version of C++ is actually a good idea are very slim. Law is like that. It’s hard, for a reason, and the reason is that it needs to be able to encode hard concepts that are rare in normal contexts but have to be addressed by the law, just like the way C++ needs to encode hard concepts around object lifetime behavior and ownership and etc. that most causal programmers never need to worry about but that sometimes are needed and are why C++ exists and is hard.<p>There is a movement in law directed at making legal documents more human readable. It’s an important effort being undertaken by people with tremendous experience in legal language. That’s very different from a developer saying “I’m not a lawyer but hold my beer because this is easy.”<p>tl;dr this is fine for helping people search a database of existing licenses but don’t encourage people to put this kind of file in their own repos next to their actual license.