I use the MIT license almost exclusively on all of my open source projects. As far as I’m concerned my best options are either to make my code proprietary or, if it’s open source, then I will always use the MIT license. I refuse to use the GPL because it’s far too liberal even for a liberal guy like me. The MIT license is a great choice because it allows you to share your code under a copyleft license without forcing others to expose their proprietary code, it’s business friendly and open source friendly while still allowing for monetization. Here’s why I use the MIT license and what it’s all about.
The MIT license: Very permissive
The MIT license is one of the most permissive software licenses out there. Like I mentioned before it’s not only friendly to open source developers but also to businesses. Unlike other licenses like the GPL that require you to make a copy of the source code and all dependencies to any user of the software, the MIT allows you to keep your source code private so long as you give credit in the license file along with a copyright notice.
The MIT license allows you to use your code for commercial purposes. It’s your code so you should be able to do this regardless. What’s great about this condition of the MIT license is that other users of your code can use it for commercial purposes. That’s huge!
I don’t know about you, but I’ve definitely written a lot of software for commercial use that uses third party code. Most of those dependencies are MIT licensed and surely all of them allow you to use them in commercial work. Without this provision most of my for-profit work would either never have happened or it would be next to impossible to find third party libraries to work with.
But it’s not only you and I that benefit from the work of others using the MIT license. We can contribute to the success of other developers. My latest project, Coverage is an open source health insurance coverage finder. It’s completely free for anyone to use, modify, and run on their own. At the same time, I plan to monetize it. People can’t seem to imagine how free (as in free beer) and open source (as in, here’s the original source code) software can turn a profit. Well, it’s possible and the reason is much the same as why no one will steal your precious idea. It’s because the value of the code isn’t in the bits and bytes, the keystrokes and characters that make up your project’s files. The value lies in someone’s ability to use your code, willingness to try, and having the problem your code solves.
MIT licensed projects can be freely distributed in a business friendly manner. So you can charge for your code and then that person can then distribute modifications to your code as they see fit. If your project is a web application then this becomes less of an issue because you’ll likely have a subscription based SaaS model. In the case of my latest project, I don’t care if people use my code and then give away the source. I gave away the source so why would I restrict someone else from doing the same? I said it before, if I want my code to be proprietary then I’ll simply license it differently.
Users of MIT licensed code can modify the original source and distribute it as a separate project.
Someone who downloads an MIT licensed price of software can use it privately, make modifications, and use it on their own. Maybe you want to use one of my project on an internal software project. If so, you’re free to do that without being obligated to make your changes public. You don’t need to contribute back to the original. That’s really cool.
Conditions of use
The only real conditions of using MIT licensed software is that the copyright notice must remain intact. That means my name and the dates of original copyright need to be part of the license file and then you add your own name and dates next to or below the original notice.
- The one thing you can’t do with the MIT license is hold the original author liable.
- You also can’t claim its your own original work. Derivatives are okay as long as the original author gets credit and their name stays on the license
Why I even care
There are two major reasons why I care about how my code is licensed.
The first is so that I can claim copyright. I don’t plan to bring about any lawsuits but after recently having my code stolen verbatim and used by someone else to get a job, I pay extra attention to making sure the dates and my name are in the license file. I’m also extra careful when I use someone else’s code now too. I don’t want to accidentally stomp on someone else’s rights as a creator.
The other major reason is that not having a license on your work, even if it’s available for free publicly, means that your code is implicitly proprietary. It’s a hassle to have to answer emails about what a person can use my code for so if they just read the license and look up what it means if they’re unsure then that saves me the trouble of having to explain it.
There are other great licenses out there but for me the MIT license is my go-to. It’s basically a nice legal way of saying “do whatever the hell you want with this code, just don’t blame me if it blows up your computer”.
Addendum: The GPL Hurts Progress
One more thing I’d like to add is even though the GPL’s goal is to give “freedom” to developers it fails at this. If someone develops a shoddy piece of software (like this one) and GPL licenses it, someone may want to improve on it and, in the process, profit off of those changes. Unfortunately the GPL forces that author to expose how they made the original better. Commercial software is not evil. I buy proprietary software and love it all the time. So if someone wants to take an open source project and improve on it while making a buck, the GPL effectively stops that in its tracks because even if the new author successfully monetizes the software the source code is now in the hands of all of its users and those users are free to modify and distribute that software as they please. The incentive to improve on software for commercial purposes is deeply diminished when something is licensed under the GPL (specifically v2).
A better, more coherent, well written explanation can be found here. I encourage you to check out that article and learn more about the GPL. The GPL has it’s place but I have a valuable skill and a need for food, clothing, and shelter so while I’m not releasing free software the fun of it, I’m developing software to sell and I can’t monetize GPL licensed software.