One thing that might not be obvious to everybody is why I choose the MIT license for the code I put up for download.
To make life easy for everyone, I decided to use a known license, so that it would be easy to use, and require too much effort of users to understand the issues. Licenses like the GPL and MIT license are well documented.
The GPL license basically says ‘You are free to do what you want with this code, as long as you distribute your code with your binaries’. The GPL guarantees freedom of the code, not of the programmer.
The MIT license basically says ‘You are free to do what you want with this code. We believe in open software, but understand that this is not always feasible’. The MIT license guarantees freedom of the programmer, not of the code.
For a professional programmer, it is not always possible to open up the code. It depends on the situation and the customer. I have been in this situation myself, and I was lucky enough to find an algorithm I needed with an MIT license.
That is why I choose freedom of the programmer over freedom of the code.
Writing articles and releasing code to allow others to learn from your experience is one way to give something back to the community as payment for the help you were given when you were still a newbie.
As such, I hope that the people who use my code in one way or another will do something back for the community when they become experienced programmers themselves.
But I am not going to tag all my code with the GPL license and force the issue. The only result of that would be that A) it would not be used by the people who really want to use it, but are not allowed to. B) people would use it, possible breaking the law while doing so, causing all sorts of legal problems.
Live and let live.