Hacker Newsnew | past | comments | ask | show | jobs | submit | kaikki's commentslogin

What is a good source to get an understanding of all the Licenses and their relation?


Here's a brief summary of major licenses:

MIT, X11, BSD (2- or 3-clause), and more similar ones I can't name off the top of my head: these are the basic do-what-you-want license, the only requirements are things that every (good) license already has, such as standard limitation-of-warranty clauses and retention of copyright notice requirements.

Apache (v2): This is the next stage up, which means that the text is lengthier and somewhat denser legalese, but also covers more topics such as trademarks and especially patents. The patent clause here includes a provision that any patent licenses are revoked if you sue the authors for patent infringement.

MPL (v2): This is a weak copyleft requirement, which means that you must provide any changes to the source code when you distribute the binary and additionally the resultant code must be licensed under the same terms, although it only applies on a per-file basis. EPL, CDDL are broadly similar to the MPL, with a few differences in the legal minutiae.

LGPL: Weak copyleft again, except now it's on a per-library basis. [Although, to be honest, the definition of per-library basis isn't entirely clear for non-C/C++ code.]

GPL: Strong copyleft, which means that you pretty much have to use GPL if you reuse the code.

AGPL: Even stronger than GPL, you have to distribute sources to anyone who uses your code over the network.

With the GPL family, there's a distinction between version 2.1 and version 3 that retains relevance, because some people objected to the changes in GPLv3 (notably the anti-Tivoization clause and patent clause changes) and refused to move to GPLv3, with the Linux kernel being the most notable project to refuse to do so.

As for relation, well, any license more complicated than Apache includes lots of legal minutiae that makes it somewhat hard to render judgement if two licenses are compatible or not. In general, though, you can usually use an earlier license in this list in a project that uses a later license, but usually only if both licenses are the latest version (as the most recent updates added some compatibility escape hatches).


One thing worth noting about AGPL, is that it also changes the definition of "derived work" to also include "accessing code over the network", so that if you operate a SaaS that includes an AGPL service in your network diagram, your entire SaaS has to be opened.

IMO, the gist of the GPL boils down to:

> If you "distribute" a "derived work" of this code, you have to release your code as well (under the same terms.)

AGPL not only interprets "distribute" to mean "offer up as a service over the network", but it also interprets "derived work" the same way. This is why anyone who uses (say) MongoDB in a company basically has to pony up for the commercial license, lest they be required to open source huge parts of their company.


> The patent clause here includes a provision that any patent licenses are revoked if you sue the authors for patent infringement.

I don't understand this part. Why is this useful?


Facebook uses your code. Facebook wants to sue you for patent infringement. Doing that makes them no longer have the right to use your code, so they're deterred from suing you.


Nice writeup, and for all intents and purposes seems accurate for anyone wondering.


It isn’t easy, but these can help:

- https://en.wikipedia.org/wiki/Comparison_of_free_and_open-so... has a feature matrix for about 40 licenses

- https://joinup.ec.europa.eu/collection/eupl/solution/joinup-... has a comprehensive set of features you might want a license to have, and shows matching licenses.

You still would have to read up on what terms such as “trademark”, “copyright” or “copyleft” mean.


I've used this in the past. https://choosealicense.com/



What are some? I wrote a small ascii snake game with it and found it generally OK.


It’s been somewhat overhyped by the author.


Can you give us examples where Alex "overhyped" the language? So far most of the promises he made have been fulfilled / currently work-in-progress.


I wrote a benchmark for V too and it’s fast but there are other issues internally and externally.

Have anyone know who is Alex?

He going to build compiler in AST, but as long as it’s useful for your works. It’s too early to tell whether it’s reliable for businesses, I’m more likely to trust Go as we know it’s battle tested.

It will definitely take more years to stabilise and promoting, other languages would have been mature and established.


I love every single tool this guy builds


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: