So, whenever I want to release something, which isn't often because I never get to the point to where something is useful, I release it under GPL. I do this because I've had code stolen before and claimed as someone elses... doesn't feel very good. Rather, makes you sick to your stomach... anyways, I don't like proprietary code because it doesn't really prevent the reuse of ideas, only implementation. If someone uses my code or even sells my code, I'm fine with it as long as my code is contributed to and/or I'm given credit for my code.
I don't tend to like BSD style licensing because it doesn't require even a mention of my name. However, for a project like Clang, where even if someone did take your code, there would be little to not benefit for the person taking the code and claiming it as your own. Nobody would use it and people would instantly realize that it's stolen. But if I were to release my small projects, people could swipe that with almost no consequence at all and get away with it as calling it their own.
I think MIT licensing is fine as long as it's respected and probably more towards GPL without the need to keep the code open. Even if the code is taken, a license is required to be accompanied with the code module.
Any one else have different preferences?
If no license is specified, it refuses anybody from taking or redistributing the code without (written) permission from the original author. Most of my code uses this now adays until it's viable for actual use.
I found this site pretty helpful http://choosealicense.com/licenses/ .
Though I would like to point out that even with a license anyone can rip off your code and not have to follow the licensing terms and possibly get away with it. It really comes down to can you afford to uphold the license. Which takes time and money to do.