I am by no means an expert on open source licenses. I am not a lawyer. I have, however, been part of the overall open source software community since roughly around 1999 or 2000. During this time, I’ve dealt with open source software almost exclusively. It’s a blur at this point. I began at a time where PHP was king, and Microsoft’s (now Classic) ASP was trying to get in on the party. Long story short, I found out immediately that I loved open source software and I never looked back.
There are many areas of concern when first embarking upon entering the open source community, much less choosing any software or platform to adopt, should you choose to do that. I am going to speak just about licensing for a moment. Open source software of any kind is not without a license, and every license has pros and cons.
Probably the most elegant descriptions of the pros and cons I have heard have come from our own founder, Shaun Walker. He does a fantastic job of telling you how each license differs, in a very easy to understand way. This is much better than a book I have read, Understanding Open Source and Free Software Licensing. I literally had to read that book a few times over before I felt that I understood what the author was trying to say. It truly is a painful, but necessary, read.
DotNetNuke chose to adopt an MIT license. This appears to be one of – if not the most – OPEN licensing models in the open source community. I mean, you can literally take software that is licensed under MIT and do whatever you want with it. If you want to build upon that software, whether it’s recreating your own redistributable product, or creating add-ons for that product, you are unrestricted. Those code additions and updates can even be for commercial gain. The only real restriction with this license is that it requires that the original copyright statements stay within the code.
To quote the book I mentioned:
The MIT license, probably the simplest of those licenses, imposes almost no restrictions on licensees distributing derivative works.
Yes. Some people write code to earn money to feed themselves and their families.
Some other licenses like the GPL License (any version) have considerable restrictions, depending on what you’re trying to do with it. For example, if I release a piece of software under GPL, anyone that took that open source code would have to also release their derivative code under the same license, and it may only be used in software of the same license. Even the license itself cannot be legally altered. You also are not allowed to put forth any additional licensing. The GPL is therefore not compatible with any other kind of open source license.
The limitation that you may not immediately see with the GPL License is that any software created under GPL is and always will be free and open source. For any hobbyist or one-off consultant, this may not mean much. If you run a business, that story is more likely to be different. If you are writing extensions for a GPL-based product, you have no IP rights to your own code if that code compiles with GPL code. It’s open source as well. Any mission-critical business must be acutely aware of this, as your business processes and secrets could be at risk if using a GPL-based software product.
This isn’t to say that everyone out there would be at risk, but if you build any customizations, you are.
Just to be clear, I am not bashing any license whatsoever. Every single one of them have a purpose and work well for those purposes. However, it really is in your best interest for the safety of yourself and your company to look at the license of any software you choose very closely. It may not fit your business model. Heck, you may have been doing things illegally the whole time. Unknowingly, I am sure. ;)
This blog entry is cross-posted from my personal blog site.