Prefer the MIT License


Code licensed under MIT can go just about anywhere. You can use it in an EPL codebase or GPL codebase without hesitation because it has only the bare minimum limitations, of liability and warranty, on its use.

MIT compatability Code licensed under MIT also retains flexibility for its author. Most F/OSS projects do not ask external contributors to sign a Contributor Agreement. As a result, if the authors of an EPL-licensed project want to relicense the project’s code, they must find and request permission from every contributor, who each hold copyright over their individual contribution. The authors of an MIT-licensed project can relicense the project’s code without copyright assignment. Of course, other users and developers can relicense this code as well. In many cases this is precisely what we want.

It is not uncommon to see developers treating EPL-licensed code as if it were MIT-licensed. "Oh, this is a handy namespace but I don’t want this entire library and all its dependencies. I’ll just grab these few functions." If the source of those functions is licensed EPL-1.0 and the destination is not, such behaviour is probably a violation of the license. If the source of those functions is licensed EPL-2.0 but the destination doesn’t contain a per-file notice and accompanying copy of the EPL-2.0, it is a violation of the license. These kinds of license violations are very common — but that doesn’t make them right.

Often, when someone asks a library author if code can be used verbatim in an MIT or GPL codebase, the author is shocked by the question. "Of course!" they say. The ecosystem is full of friendly and generous folks, most of whom would happily see their code find new life in a foreign project. Unfortunately, the EPL does not permit that brand of generosity by default. The MIT License does.

"MIT is a sensible default" is a generality. There are plenty of exceptions. MIT is a poor default for anyone who knows in advance they will definitely borrow or modify functions from existing EPL-licensed projects, like Clojure Core, babashka/sci, or Medley. MIT is a poor default for anyone with a cardinal philosophical belief in copyleft principles. MIT is a poor default for anyone who wants to make a political statement about patents, one way or the other. More often than not, however, those with strong feelings about copyleft, patents, trademarks, and so forth will also be the sort of people who heavily research the licenses available to them.

Those who think to themselves, "I want anyone to use my code for any purpose but I also want to reserve the right to change my license in the future" are best served by the MIT License.