An year ago, way before I had joined Microsoft, I had a discussion with some friends regarding the “Software as a service” scenario. Most specifically, the discussion began at LinuxAsia where some of my friends were saying that it’s sad that nobody from Maharashtra competed in the Summer of Code that year. Google, as you might know, is the great supporter and promoter of open source software, uhmmm…, just so long as it competes only with Microsoft.
I have asked this question on numerous mailing lists repeatedly, only to get the standard freedom-fighter response: you’re crap, you don’t know anything, we know everything, you can’t oppose us, anyone who raises doubts against Stallman is stupid, and so on and so forth….. (if you’ve been in the FOSS guys long enough, you might have seen this a lot of times already). The question is quite simple, “I want to study how Google searches the web. Kindly point me to the tarball.”
There was a nice, but highly ignored, article on Slashdot about a hypothetical “Honest Public License”, where software-as-a-service would also need to be open sourced. They had intended to add a clause in GPLv3 that would have made things interesting in the Patents vs. Stallman vs. Proprietary vs. Google vs. Microsoft vs. Torvalds vs. Raymond camp. The clause was justifiably removed due to technical reasons (and I rather agree with them).
So in response, GNU is going for an Affero GPL that addresses the problem of “Software as a service”, or the “ASP Loophole” as the GNU website calls it. The AGPLv2 is quite appropriate to solve the problem in mind. On the “ASP Loophole” thing, I wonder if the GNU is publically declaring that ASP is the dominant and preferred method of developing webapps. If not, why not call it the PHP/JSP/Coldfusion/etc loophole? I’m not an expert, but I’m pretty sure people can prevent their PHP/JSP scripts from being visible on the web. But then again, not being a recincarnated Bilbical Prophet, what would I know?
Everyone in the FOSS world praises google for it’s webservices, and criticizes Microsoft for not following that model fast enough. Let us take this assumption to be true. If webservices are the future and there won’t be a space for Microsoft on the desktop, then the GPL is a “Library GPL” since your libaries will be on the web. In other words, the GPL is the LESSER GPL. If I used only SOAP webservices for my programs, I have effectively reduced the GPL to LGPL status.
What really bothers me is the fact that the GPL is still called the GPL. It begs to question whether the GNU is taking sides, and taking a softer stance towards the likes of Google just because they’re a threat to Microsoft. If so, I wonder if I’d really care to listen to “matters of principle” from such a crowd. And I’d encourage you to do the same.
Am I saying everyone should be forced to open up their webservices code? Heavens no! And I assure you, when I work at Microsoft, I wouldn’t either. But I’d certainly like Stallman screaming that people do so. I’d like Stallman to point out the names of companies and people who don’t do it today. I’d like Stallman to discourage people from using those services which they cannot study, modify or improve; the way he does towards Microsoft products.
Not everyone uses the GPL today, and not everyone will use the AGPL tomorrow. But if Microsoft is evil for not GPL’ing their code, then any webservice provider should be treated the same for not AGPL’ing it. If you spread FUD about how Microsoft might be stealing your data from their SQL Server, or through Office, _because you can’t see the code_, then how’re you so sure a modified GPL’d program isn’t doing the same on any webservice? Now I may not be a reincarnated Biblical Prophet, but I do have some common sense.
The ‘trick’ with using the AGPL is that nobody knows what the hell an Affero GPL is. They’ve never heard of it. This means that a proprietary webservice provider can always be a “GPL Promoter” and people won’t know any better. I suggest that the AGPL be made the GPL, and the current GPL be called the Lesser GPL.
And now most of you are going to respond about how some things are “acceptable” and some are “not acceptable” (where Microsoft falls under unacceptable and everyone else is acceptable). There are two responses I’d like to give here:
1. Effectively, Stallman has become the Torvalds of the ’90s. Torvalds quoted, “He who writes the code, should have the freedom of deciding its license.” The documentation on GPLv3 specifically states, “Those who want to open source their webservices can optionally use the Affero GPL License while others can continue using the current GPLv3.” Isn’t this the same thing with some fancy prophetic terminology as opposed to the simple human-understandable one Torvalds used?
2. Who get’s to draw the “line” between acceptable and unacceptable? Who gets the play God? Who gets the authority to judge what’s right and whats wrong? Who gets to say, “Anything that’s non-GPL’d is pure evil, but anything that’s not AGPL’d but GPL’d is okay.”? What about protecting my freedom to study what services I use and improve them if I want? What about my freedom to copy the code of those services on my own servers and running them on my intranet instead of wasting heavily-paid-for external bandwidth everytime I want to edit docs hosted online?