WordPress was my first exposure to open source software. At the time, the idea of giving your work away for free was so foreign to me that I rejected it almost outright.
Open source would work for WordPress – a project backed my a multi million dollar company – but wasn’t a fit for the real world.
As I grew in my software experience, I came across more and more open source software. jQuery, at the time, was dual-licensed under the GPL (WordPress’ open source license of choice) and MIT licenses. I took this as an indicator that open source was the way to go, so I started distributing my own work under similar licenses.
GPL
I’ve already written about why the GPL can be a dangerous license option, but I wanted to cover a few of the reasons I avoid it whenever necessary again.
Viral Licensing
Firstly, the GPL is a “viral” license. This means that any derivative works (programs based on your code) must also be licensed under the GPL. Also, any works bundling your project (i.e. shipping together as one product) must be licensed under the GPL.
I use open source licensing because it promotes freedom – forcing someone to a particular license choice for a composite application because of the license choice for a library is the antithesis of “freedom.”
Distribution
Anyone to whom you distribute your application is entitled to an unobfuscated copy of the application’s original source code. If you’re hosting a website, you aren’t distributing the CMS on which you built it, so WordPress’ GPL license isn’t an issue. Well, until you need to hire someone to help with the project.
The subcontractor to whom you sent a copy of your in-house WordPress theme? They can repurpose, redistribute, and resell that theme to others.
Businesses Built on GPL Software
I’ve never felt that companies “selling” GPL-licensed software will go very far.[ref]Hosting is a very different animal. WordPress.com/Automattic has been very successful since, by hosting their GPL as a SaaS product, they never actually distribute the product to a customer and thus aren’t required to share proprietary source.[/ref] There are a few large WordPress companies that sell themes and plugins, quite successfully I might add.
But the nature of the GPL is such that any customer purchasing a copy of a GPL product also receives the right to distribute that copy – for free or for a fee. Regardless, I’ve seen the big players threaten legal action against individuals attempting to do this – a development that makes me even less apt to select the GPL (or any GPL-based software/product/business) in the future.[ref]Threatening to sue someone redistributing your GPL-licensed open source code just makes you out to be an ass.[/ref]
MIT
I use the MIT license because, as open source licenses go, it’s incredibly open.
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.[ref]The MIT License[/ref]
That’s it. The whole license. Unlike the GPL, the only requirement an MIT license places on its recipients is that they keep my copyright notice intact when they repurpose, redistribute, or otherwise reuse my code.
Unlike the GPL, this license is not viral. You can take my library (JavaScript snippet, PHP class, compiled binary distributable, etc) and use it in your project while still licensing the project itself in a way that protects your business. You can add to or otherwise modify my library – and distribute your modified copy – while sublicensing your modifications differently than I licensed the original.
You can build a business that sells larger, proprietary applications built out of smaller, open source components without the fear of imitators purchasing and re-selling your product.[ref]These imitators you could actually sue if they’re redistributing parts of your product not distributed under an open source license.[/ref]
Moving Forward
I want to clear up two things that this article might have you confused about:
Firstly, I am still a proponent of open source. I will still continue to write and release open source software. When and wherever possible, however, I will always use the MIT license for my code and will only use a GPL license if given no other option.[ref]I maintain a few projects I’ve inherited by other developers. Their initial code was GPL, so even though I am now the sole developer, I can’t just switch things over to a new license.[/ref]
Secondly, any code you see on this site, my GitHub account, or receive from me in any way is, unless otherwise explicitly stated, distributed under the terms of the MIT license above.