my code ( http://code.google.com/p/lindenb/ ) is released under GNU General Public License v2 but frankly, the characteristics of all the available licenses are just vague for me. I just want a license that would say:
use my code as much as you want but
tell me if you're doing something
interesting with it, cite my work if an article is published, and remember me if
you're getting millionaire.
Without getting into a licensing discussion: I prefer to use the most permissive licenses like MIT/BSD instead of GPL. The bottom line is being I never want the license to be a reason for people not to use my code--though I can see the reasons why some libraries choose different licenses.
One important consideration is that of the support that made the software possible. When someone's work is supported by public grants (aka taxpayers) both ethical considerations and probably the law requires that the software be made available with few strings attached.
The fundamental differences between the Open Source licenses can be found in the conditions specifying the licensing of derived work based on the software. Some licenses do not impose any conditions: MIT, BSD; others strictly mandate that any type of derived work must be licensed the same conditions as the original work GPL.
I have been on various sides of software licensing, but now I think that each situation is unique thus no general rule or recommendation applies to all situations.
I prefer BSD-style license over GPL because I am a bit aware of the problems of using GPLed code in corporate setting. For example a software project might catch wind because it is inside some corporate codebase (i.e. has users) even if they do not technically have to release the modified sources.
I use GPL for applications, and LGPL for libraries, other licenses available on negotiation (but nobody ever asked, and I'm not holding my breath).
The rationale is that, yes, you can benefit from my work for free, but only if you let others in turn benefit from yours. In practice, LGPL is probably more limited than I would like - I don't mind commercial/proprietary use as long as modifications to the library itself are contributed back - but at least it clearly allows distribution with other open source code, which I think is more important.
An interesting situtation is that you may have no rights to release any of your work as open-source software as goverened by your contract with your instiutution. The fact this happens anyway is because a lot of this flies under the radar in terms of IP. Every time I've spoken to our local business team they always ask if any piece of work we take on will result in IP worth commercialising.
The best course of action is: don't ask don't tell policy ... ;-)
There's a nice, readable review of open source software licences at Smashing Magazine: http://www.smashingmagazine.com/2010/03/24/a-short-guide-to-open-source-and-similar-licenses/
I haven't released software publicly myself, but IMO for libraries and toolkits Apache/MIT/BSD-style licensing is the appropriate way to go. For full featured software stack you have a choice. Personally I prefer more permissive licenses, but can understand the need to GPL the code.
LGPL seems favoured by our more developmentally oriented bioinformaticians I've noted.
Very broad question... you see people only answer part of it, making it impossible to indicate a single 'correct' answer... the current one by Pierre does not answer all... perhaps split up?