4 ms·
The point is that if there aren't multiple parties involved, it's not called API.
by rumcajz 11y ago
The point is that if there aren't multiple parties involved, it's not called API.
- quonn 11y agoOk, let's say I design and run a simple service that publishes stock market data and I expose the data using a REST API. If someone decides to use the service, you might argue there are multiple parties involved. But really, they are just using my service if they like it, otherwise they don't. There is not politics, power (I don't have any, except over a service I run on my own server) and money (The service is free) involved, if we want the terms to mean anything. 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.
- h_r 11y agoThis is what I was thinking and I must have been thinking about it a lot longer before hitting the reply button because I believe I said almost the same thing. I just wanted to mention that I wouldn't have posted my reply if yours was here when I started composing it.
- rumcajz 11y agoFirst answer this question: Why are you running the service? Respect? Trying to establish a lock in? 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...
- quonn 11y ago> Why are you running the service? Respect? Trying to establish a lock in? Maybe I hacked it together on a rainy weekend.
- rumcajz 11y ago> 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.
- h_r 11y agoI have to say I find this line of thinking somewhat incoherent. I'm thinking of cases where someone creates software and also offers an API to enable tooling, alternative interfaces and that sort of thing. Take Github or Microsoft TFS, for example: they offer an API that exposes functionality that they control but what is political about it? 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.
- beagle3 11y ago> they offer an API that exposes functionality that they control but what is political about it? 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.
- h_r 11y agoI'm curious what you call it when you add an API to some business functions that run on a mainframe in order to make them available to other external software written Java or .NET, for example. This kind of thing is done all the time in enterprise shops. Trying to frame it as a political power struggle between the negotiating parties frankly sounds pretty ridiculous. 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...