Why Open APIs Fall Far Short of Open Source
itwbennett writes "451 Group analyst Jay Lyman opined in a LinuxInsider column that because of open APIs, 'non-open source software is often open enough.' Not so, says ITworld blogger Brian Proffitt. Sure, open APIs are an easy way for a small developer to 'plug into a big software ecosystem,' but it's a trap. 'If open APIs are the only connector to a software project, the destiny of that code lies solely in the hands of the owners,' says Proffitt. 'Which means that anyone connecting into the application will have to deal with the changes imposed from the top down.'"
Google is an expert at this. Convincing people that their open apis are the same as open source. They have and will never opensource their revenue generating products. They themselves don't believe in the open source economic model.
I have nothing against open source, but if an open source product changes its API for some reason, we still have changes imposed from the top down. The only option we have is to then maintain our own version of the opensource project or provide some sort of adapter component. What a headache! I use open APIs all the time. Skype, VST, google, Gracenote being just some of them. Very occaisionally they change - usually for the better due to de-cluttering the API while adding new features. I change my projects and it is rarely a problem. The overhead for doing so is tiny compared to the potential hassle of having to maintain builds and adpaters to potentially dozens of projects just because I want the API to stay exactly the same forever.
Open-API is better than nothing. At least you can plug into the proprietary software using a relatively stable interface.
Which means that anyone connecting into the application will have to deal with the changes imposed from the top down.
That holds true only for "cloud" computing, where you have absolutely no control over exactly what happens to the servers, to the applications, or even to your data.
For typical day-to-day applications, including enterprise-level server apps, you absolutely can control what happens, by simply not upgrading to the latest and greatest every three months like the vendor wants you to - And as a rule, you'll find most companies don't do so, staying as far behind the bleeding edge (often two "major" versions) as their service agreement allows.
In larger shops, this happens precisely because upgrading would break any custom in-house apps developed to interface with UberSystem9000. In smaller ones, simply because they don't have the resources to have two people dedicated to nothing but installing service packs 40+ hours a week.
Case in point, you can still find fortune-500s running on an NT4 infrastructure on the server side, and I would dare say the majority of business desktops still run XP.
In my experience, it's just as bad, if not worse, developing add-ons for open source projects as it is for open APIs. As much as I hate Windows, it's a good example of a stable API. It doesn't change much, you can keep running old applications, shell extensions, COM modules and whatever else. Open source systems often seem to make incompatible changes at a ridiculous pace that people with plugins are forced to keep up with. Being open source isn't a magical solution to problems. A stable API/ABI is what you want, and it can be delivered, or fail to be delivered,
by open or closed source software alike.
Ah yes, the claim that the word "open" is owned by a small subset of people who think it can only and ever mean "open source software".
An Open API is just that - an API that is accessible and documented so that if your software wants to work with another piece of software you don't have to reinvent the wheel every time you want to do that.
Much like an electrical plug and socket being standard - the socket is the API to the power in your house. You are not obligated to use it (feel free to install your own connectors or simply splice into the wiring by hand if you must), but sometimes you just want to make a device that plugs into the wall, y'know?
"Openwashing" is such a laughably arrogant term. I'm fully behind open source - I think it is one of the best things to happen in the computer revolution, but running around trying to claim ownership of a term because you act like spoiled children because people you don't like use the term perfectly legitimately to describe an interface/protocol/standard etc just makes you look like your mom forgot to make your eggo this morning and left you in a grump.
Some major APIs have slowly become less open. Google once offered a SOAP search API. Then they backed down to their "AJAX API", which could only be used with Google display widgets. Even that's now being shut down. All that's left is "Google Custom Search", which does not allow a general web search.
Twitter once encouraged third party Twitter clients. They no longer do, and they have an authentication system that validates both app and user, so they can yank the credentials of any app they don't like.
The Yahoo search API used to be free, then went to a pay system.
The lesson from this is, don't use an external service API for anything important unless you have a contractual agreement that guarantees that it will stay around.
don't worry. its just the photoshop fucktards trying to justify paying for software that isn't as good as something available for free
IMAP is an open API - truly open, because it's a standard and multiple people support it. RSS is an open API - because I can use an RSS reader with anyone I like.
If an API is only supported by one site then it's still lock-in, and if they change it (or close down, or raise their rates) then you're still fucked.
My Journal