Web APIs and software freedom

The topic of software freedom in the context of web apps came up again today, and I posted the following personal opinion that does not reflect the views of any employers past or present:

Using web APIs is giving up your software freedom, because you are getting someone else to do your computation; you have no way of studying, understanding, or modifying the computation done behind the API.

It is naieve to think that a choice of providers will have identical functionality. They might be similar overall, and have some basic functions that are exactly the same… But the primary reason to pick one API over another is the functions they offer that are unique.

A common API will be a base that each gatekeeper will add bespoke features too. I’ll be surprised if similar services offered with a “common open API” from Google and Yahoo and Microsoft do not have any specialist features to differentiate them.

You can happily run your own things and then be your own lord, but not if the gatekeepers continue to offer software to the public without making the source code to that software public.

If the user chooses an “open source” API, but doesn’t download the software and run it on their computer, they are giving up their software freedom. A choice of providers isn’t freedom; freedom is being your own provider. The problem with saying “Oh, I could download the source code that runs this API interface, but actually I’m not going to bother and just use the service provided.” is that there is no guarantee that what you can download is what is running on their server.

I’m lumping Google, Yahoo and Microsoft together as all equivalently bad - along with all smaller “Web 2.0” API providers who provide computation services through web APIs, making a subtle distinction between those services and those that are data request protocols more sophsticated than HTTP.

BBC Backstage’s motto is “Use our stuff to make your stuff,” and to me personally this refers to providing BBC data for the British public to do computation with. Where Backstage publishes APIs that take input data, transform that data, and return the result, the source code for the transformations ought to be published as free software - preferably under the GNU Affero GPLv3 or some other network-aware copyleft license.

If Google is searching their data - their copy of the web, say - and returning the results to you, that’s good. Its their copy, after all. But if you upload your data - say, your spreadsheet numbers and equations - and get them to do your computation for you, instead of using Gnumeric or OpenOffice, that’s not good.

Typically HTTP is a “query languages” for requesting data to be sent to you, for you to do your own computation on. Consider RSS. “Should I care how the RSS feed is created?” Brian Butterworth asked. I say, does the RSS feed contain the BBCs news? Or does it contain your data that has been transformed in some way?

Creative Commons License
The Web APIs and software freedom by David Crossland, except the quotations and unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

Comments

Leave a Reply