The activities associated with the governance of a country
or other area, especially the debate or conflict among
individuals or parties having or hoping to achieve power.
Politics is not just about nation-states and the type of work usually associated with governments. Politics is what we call the various ways we humans solve our disagreements.And yes, this can be about power and money, though political decisions come in all sizes.
Political: your opinion, which is biased and mindkilled
Sure, I get to make all the decisions, but if we now call every decision anyone ever takes political, the term looses all its meaning. Also note that those decisions are not limited to API at all: The implementation is just as political (e.g. availability, performance, privacy).
So it turns out that APIs and protocols (conflated in the article) and the implementation and - if it's a service - any other rule or practise affecting it can have political aspects, just like any other product or service or thing.
Then aswer the second question: Are you getting it? Do people respect you? Or do they ignore your service? Does the lock in happen?
No?
Then there's something wrong with the service. So let's have look at what our users want. Oh, it seems they have agendas of their own. So maybe if we tweaked the API a bit...
Maybe I hacked it together on a rainy weekend.
But why are you running it? What are your incentives? This is what I was writing about. Programmers, for some unknown reason, try very hard not to express their political interests and try to disguise them using technical lingo.
Or say I offer a REST API at work to some business functionality locked up in a mainframe in order to expose it for reuse by other apps and workflows, and the consumers desperately want me to do it (or anyone who has the time to do so). What is political about that? Talking about the API is going to revolve around requirements that other apps have that could be satisfied by such an API. How is it useful to view that as a type of political border dispute?
API seems to be a fairly narrow concept to me that appears in various contexts, some of them political and others not.
Google's YouTube APIs played (and still does) a significant part in its turf wars against Microsoft. As did Google's MAPI support, and as did Microsoft's MAPI and SourceSafe APIs in the past (no longer in the MS world, so no idea about TFS).
It's political. It's not "country governance" politics. But it is politics, in the give-and-take-between-opposing-forces sense of e.g. "Your WinPhone users don't get YouTube or Google Calenader because you keep harassing my Android partners".
I agree with Sustrik that it's only considered an API (rather than an internal implementation detail) when multiple parties are negotiating.
I have direct experience doing this sort of thing for years. It's really just a strategy for better leveraging your existing business assets. What is the value of saying, "That's no application programming interface, it's just an implementation detail." I think it just confuses the concept for possible surrounding context. If that context is missing (negotiating, somewhat hostile parties), then all you've done is say that you can't call it API. Hmmm ok then...
Suppose it turns out that your MF RPC (or however your API is implemented) works too slowly, and instead of passing whatever through TCP, you are going to generate a file accessible through the shared MF/non-MF file system with the relevant contents.
If all it takes is calling up Frank in the MF programming department to do the MF side (or even better, doing it yourself) -- then, no, it's not an API any more than your private class names and functions are an API - the MF/non-MF dividing line (which will likely also separate operating systems, programming languages, etc) is of no consequence, because there's no negotiation around changing it.
I have witnessed exactly such a power struggle last time I worked in an environment that had mainframes (some 25 years ago) - functionality that was available on the MF was needed on a unix workstation. The amount of dev work on the unix side to do a mainframe RPC or to do it from scratch was comparable. From most perspectives, the unix re-implementation was a pure win. It sounds like a clear-cut decision, but the MF people argued fiercely against it -- to the best of my understanding, because they were constantly losing turf and relevance. Would you not call this political?