Web Apps, Revisited
Over the past few years, Web 2.0 has become all the rage. Closed web apps and social networking services, however have a serious problem – the user’s lack of control over their data, and their inability to interact well with other services. However, it is good to see that the “free software community” (for want of a better term), are increasingly starting to compete offering open Web Apps. Laconica/identi.ca, for micro blogging, libre.fm for music “scrobbling”, and most recently daisychain, which should soon be a facebook competitor.
However, the one thing I have not yet managed to find a good replacement for, is Google Mail (Gmail). To this end I have resurrected my long dormant libreapps project. I’ve got the site back up and running, and my two “Apps” functional – mail and rss. Anyone interested in testing/evaluating these as they are should ask me for an alpha account (this is only to make sure no-one expects stuff to Just Work, and so I can keep track of resources), or if you’re adventurous, check out the source code (bit of a mess atm). The site is still in a very alpha, or even pre-alpha type state, but any feedback would be appreciated.
The RSS code on libreapps is TT-RSS (GPLv2) but the Mail code I have written myself, and had previously released as AGPLMail. Now, however, I have released it under the MIT license (the most permissive commonly used license there is). Why? Well, firstly, I’m no longer happy with using the governmental force of copyright to affect what people do with my code (see this blog post). Yes, I disagree with people not sharing the source to code they write, but I am not willing to threaten/hurt them to make them change their mind. This is a very contentious and political issue, but, there are other reasons why I think the AGPL is not as great as some claim.
Firstly, compatibility – this is the killer with any copyleft license. Because I am using TT-RSS, my core libreapps code needs to be at least as permissive as GPLv2. Since I plan to add other apps, most likely under other licenses, my core code needs to be permissive so it is compatible with all.
Next, how much “protection” of a Web App does the AGPL actually provide? It is supposed to force the release of the code of a hosted modified version. But, what defines modification? Or, rather, where. Obviously, changing one of the files of the application is modifying, but the (A)GPL is supposed to also cover linked works. But, with webapps, it is possible to make a site that behaves differently with out technically linking (eg. php include). One example I can see is an ajax script added to the main app (and source released) could pull data from closed app, and the user experience would be the same. Also closed software could read/write to the db of the AGPLed software without technically being linked.
So, whatever the license of a web app, there are ways to change it and not return source. And, it is hard to prove anything, all that is returned to the user is html and js files – they can not be sure how they are generated. Returning source for AGPL apps relies partly on good will, something that also benefits an MIT app.
However, there is a more important point here. I would argue that it is not really the software that is the biggest issue in webapps – it is the data. Writing a twitter, facebook or other webapp clone is perfectly possible, and compared to some tasks, not that difficult. However, what really sets open web apps apart is primarily the availability of source, its the fact you can run your own copy and, crucially, communicate with the original site. The AGPL can do nothing to stop someone creating a large laconica instance with the federation turned off. A federatable twitter is many times better than one with source code released. (Interestingly, facebook actually releases some of their source code, but, for the reasons above, it is useless).
Finally, one of my other personal reasons for choosing MIT it means I get more users of my software I write (people can reuse snippets/functions in whatever they are writing, for example). True, someone could create a non-free fork, but, they would be silly to do so. For those who “hate freedom” there is Goole Mail/Apps. The main thing that makes libreapps mail valuable, is not the code itself, but the fact it is open/free.
So, that’s why I use MIT, even for Web Apps. However, it does really mostly boil down to my dislike for the governmental copyright system – the above are just reasons why I don’t feel like I’m missing much. I know many people don’t come from that angle, so AGPL makes sense to them. That’s fine. I’m happy to support any web app that federates and gives me access to source. I’m an identi.ca user, and am looking forward to trying daisychain. Hopefully though, people will now understand why I personally use MIT, and respect that.