Posted on | November 21, 2007 | No Comments
The GNU Affero GPL v3 was recently released, a near carbon copy of the GPL3 with an additional clause specifying some additional rules regarding software that interacts with users over a network. WordPress, for example, is software that interacts with users over a network. So are many of the new ‘web based’ operating systems, where all that you need to access your desktop is a web browser.
I like the AGPL, however, I would not apply it without serious consideration.
Lets take my previous example, WordPress into consideration. I’ve heavily modified my WordPress core code. While, yes, I do hope to clean up my changes and ensure that they don’t create security problems so that I can send in patches, I would very much resent being obligated to make my code available to those who use this blog.
Likewise, if I managed to build a ‘killer’ blog, with tons of features for a very specific business venture, I would not want to hand those changes to the 3 million + web sites that competed with me or I’ve just wasted my time for nothing. I also don’t want to hand my heavily modified source code to hackers so that they can find holes to inject code and grow their bot nets even bigger.
Note, WordPress is currently GPL2, I’m using it only as a hypothetical example.
If I made a really cool OS abstraction layer that enabled most of the functionality of the Gnome / KDE desktop via browser, I would release it under the AGPL to ensure that my creation saw its code presented to the largest developer base that was possible. I would not want “yoyodine, inc” modifying my stuff and monetizing it without sharing their changes.
This is a bit of a moral fluke. You can’t have your cake and eat it too, or can you?
This is where I see the AGPL put to the best possible use:
- Ajax tool kits, in particular those that offer ‘ready to go’ widgets that are easy to modify and implement.
- Any web based OS
- Libraries (in general) that are desirable for use as building blocks in programs that typically run as a service. Rich editors or AJAX spread sheet programs are a prime example.
I would like to see AGPL serve its intended purpose, ensuring that software as a service remains competitive and open to the FLOSS community, without ‘hand cuffing’ companies that hope to monetize their creations.
Companies would not have to release all of their source code, just give back changes that they made to the free building blocks that they used. That seems fair to me. Their creation remains their own. I have been saying, for some time that SAAS threatens the customary ‘tit for tat’ that is a direct result of the GPL guaranteeing our freedoms as users.
I think that writing a forum or blog application and releasing it under the AGPL would only ensure that not many people used your platform, as some people simply are not comfortable revealing their changes (if even just out of security considerations). My suggestion to anyone writing free software who hopes to ensure competitive practice (and tit for tat) in the shadow of wide spread SAAS popularity is to write your stuff with the AGPL in mind.
Since the AGPL and GPL3 are fully compatible, one could write themes, database abstraction and common stuff in GPL3 while using AGPL to cover parts of the core code. The end result should be a good balance, allowing the user the right to not share competitive tweaks and changes, while ensuring that improvements to the core and structure of the program are shared.
The FSF seems more than happy to field questions from anyone who is curious about adopting the new AGPL, or who might be confused regarding mixing AGPL with GPL3.
All in all, I feel that its a good license, I just hope that its used after thoughtful consideration. SAAS providers (currently) can take any GPL2 application, hack it to bits, improve it 100x and sell the use of the program on their servers to the public without ever giving back a single line of code to the projects that built their business. I can clearly see why AGPL was needed and released, its a great tool to help developers ensure that they don’t get screwed.
Just take care to use it as a tool and not a blanket license.