I don’t mind if the FSF sets very strict goals, as long as they are strategically effective. I think that the FSF’s hard line on 100% free software worked, because we had two groups in the FSF and OSI that could appeal to different constituencies. The OSI could talk to Netscape, IBM, SUN, etc. and make the business case for open source, but the OSI never convinced me as a user, whereas FSF was very convincing to me as a user.
When I look at the reasons why free software was promoted by the governments of Brazil, Peru, Venezuela, Bolivia and Ecuador, the FSF made a more convincing argument for these governments than the OSI. In Bolivia (where I currently live), the FSF’s talk about user rights meshed well with Bolivia’s discourse about decolonization and Richard Stallman was invited 3 times to come to Bolivia, whereas the OSI has had little impact. When I go to Linux conferences in Bolivia and Peru, I hear the term “software libre” probably 3 times as much as I hear the term “código abierto”, even from my friends who run companies.
However, when we talk about convincing component manufacturers to release free drivers and free firmware, we simply have to speak a language that translates into business. The FSF has to convince users to value devices that can run free software of course, but it also needs to be able to make a convincing argument to businesses, and the RYF criteria isn’t doing much to move the needle, because it is a standard that almost no device maker can meet, so we need some intermediate strategy as well, such is what I was trying to suggest with the “Freedom Score”.
On the question of licenses, I agree that the AGPL is a cumbersome license, simply because it places too much of a burden on the people using it. Every time that you change even a single line of code, you are obligated to publish your changes under the AGPL, which is too much of a hassle for many people. In the real world, however, it is often very hard to know if a company has changed the source code when they are running it on their own servers and not distributing it, so most compliance is effectively voluntary anyway.
I used to work a company that produced AGPL software. I always told people using our software to not worry about publishing their changes to our code if they were only making minor tweaks and to publish their changes when it was convenient for them. The reality was that we didn’t get strict compliance, but its sole purpose was really to prevent competitors from extending our code without sharing their changes, but aside from a few community forks, no commercial competitors ever touched our code, so it never became an issue.
Whether you like the GPL or hate it, depends on your point of view. Because using a small piece of GPL code can “infect” the rest of the code, it isn’t a good license for widgets and libraries, which is part of the reason why MIT/BSD style licenses have taken over the web. However, I have used the GPL on code that I wrote, precisely because I wanted to guarantee that it stayed free.
Where I think that the GPL has been a very effective is in forced rival companies to work together. One of the reasons why so many rival companies contribute to the Linux kernel is because they know that no other company can take their work and privatize it. When Intel contributes USB 3 drivers to the Linux kernel, it knows that its competitors AMD and Qualcomm can’t ever privatize its work, so Linux becomes a common platform that everyone can contribute to without fear.
I believe that one of the reasons why BSD never had the commercial success of Linux, was precisely because the license encouraged each group to privatize the work of others, so there was less trust. The major flavors of BSD all develop their own kernels and don’t collaborate that much, partly because their license doesn’t encourage them to work together.
Of course, there are counterexamples, so the license isn’t the only factor. For example, competing companies collaborate to produce PostgreSQL under a BSD-style license, whereas MySQL and MariaDB don’t collaborate under the GPL, because each of the companies are claiming that their way of extending the database is better, and frankly Oracle doesn’t have a culture of FOSS in its DNA to facilitate collaboration. It also has an antagonistic relationship with Red Hat, and its management of OpenOffice.org and Virtualbox OSE were poor.
I guess that I see the ethics differently from you. I don’t want to force others to change a large code base to GPL, if all they want to do is incorporate a small piece of GPL code. On the other hand, the idea that someone can take a huge piece of FOSS code (like BSD or PostgreSQL) and privatize it really bothers me.
On one level, I basically agree with the tenet that the developer should decide on the license she wants for her work. However, when I think about my long-term future, I want to live in a world where everything I use is FOSS, and the GPL makes a lot of sense for promoting that strategic goal.
When I analyze why a company like Google hates the GPL, I find its reasons really problematic. I sort of agree with Google when it is afraid that a small piece of GPL code can “infect” it. However, Google also abuses the FOSS community when it takes huge amounts of work from the community, and makes its changes, and does not share back. For example, when Google took MySQL and turned it into BigTable or when Google took Debian and heavily modified it, Google’s refusal to share its changes weren’t ethical in my opinion, and that was exactly the reason why the AGPL was created.
Google takes advantage of large amounts of GPL software and then violates the spirit of the GPL by exploiting a loophole by claiming that it has no obligation to share its changes to code that serves up information to 3 billion people on the planet. I guess what really angers me is that Google then turns around and tells everyone not to use any of the FSF licenses, and actively tries to confuse users with the word “free”, by refusing to show people what is the license of the apps they are downloading in the Play Store.