It seems that the only reason why people would prefer BSD/MIT over the GPL is to say "I want people to give me their code for free but I may want to sell it in the future."
Seriously? Really? Every programming-centric forum that I've read for the past 20 years, HN included, has recurring flareups about this specific topic. Every single one. The debates don't even change, at least not in their fundamentals. I bet this very thread will turn into 500-600 posts which don't look all that different from innumerable threads on Usenet from 20 years ago.
Point being, half of the posts on every single one of the instances of this seemingly never-ending debate are from people explaining why they prefer BSD/MIT, and none of them are for the reason you gave. Like, none of them. So, there's plenty of counterexamples for you. I don't know how you would have missed them.
> It seems that the only reason why people would prefer BSD/MIT over the GPL is to say "I want people to give me their code for free but I may want to sell it in the future."
Not even close.
For example, client libraries in LedgerSMB are moving towards a BSD-licensed model. The reason is that this way we allow things like proprietary shopping carts to be integrated easily. Before you ask, basically, I re-engineered/fully rewrote the relevant modules for LedgerSMB 1.5 so it wouldn't be a problem. There are some subtle API differences but they mostly clean up problems with the old implementation.
There are lots of reasons to prefer the BSD license. Here's one:
1. I want folks to be able to take my work in different directions and grow the possible market.
2. I want the overall competition to expand the project as many people contribute back to a common base.
These are the things which make PostgreSQL's pace of development so high. Yes there are proprietary spinoffs but the project will certainly outrun them all.
I prefer BSD/MIT/Apache over the GPL because I don't have to worry about legal issues in regards to library integration with binaries that I may build. Why should I have to make sure that I'm using LGPL versus GPL, etc? Its much easier just to use, and license, software that is under BSD/MIT/Apache.
This is just incorrect. By default, you retain the copyright to things that you write. Which means that others can't make copies without getting your approval. And in many jurisdictions, it is not at all clear that you can relinquish your copyright simply by declaring your work to be in the public domain. So by default, there are legal restrictions on what others can do with things you write.
It's called a "license" because it enumerates the things you are explicitly _allowing_ others to do with something you hold the copyright to. Without a license, the default "rules" of copyright apply. Licenses don't impose restrictions, they remove them.
Liberal licenses (BSD, MIT, etc) allow you to do nearly everything you can do with something in the public domain. Copyleft licenses (GPL, etc) allow you to do somewhat less, with the notion being that this restriction of your freedom increases the overall freedom of everyone.