I was recently talking with some people who develop a BSD licensed product who are a bit worried about competition. I had this to say, and I thought I would share it.
I think the concern is the “Sun Microsystems situation”, where there is a second project (B) based on open source project (A), and code only moves in one direction, towards B, a, commercial project. That can be kind of scary, especially when the commercial project has some sort of advantage. There is a real risk that as users and developers move towards project B, network effects take over, and B comes to dominate.
The GPL is one answer to this problem, that the Apache Software Foundation, and others in the “BSD camp” have chosen to eschew, in favor of another solution: 1) making the development community broad enough and strong enough to make it hard to vacuum up all the talent over to project B, and 2) moving fast enough with the project that development outstrips that of project B.
Of course, that strategy is not always possible, but that’s the direction to take, I think – make it so that it’s a big effort to ‘keep up’ with project A for the commercial guys, to the point where they don’t want to diverge very far from the main development line for fear of not being able to keep up with all the good stuff coming out of it. One of the ways this can happen with a BSD style license is to get lots of companies contributing to the common code base, something that is at times easier if they have no worries about restraints the license may place on their future directions.
Incidentally, I also think people may like the GPL because it makes things “fair”, without worrying so much about putting in the effort to “outrun” the competition in terms of code or community.
These are some of the reasons why I don’t get too worked up about there being a “best” license. It really depends on the situation, and the goals of the people involved, too much to get fixated with one license being “superior”.