In response to: Amazon proves that REST doesn’t matter for Cloud APIs

A monkey from Spatially AdjustedI posted this in response to: Amazon proves that REST doesn’t matter for Cloud APIs. Some people really frustrate me. I know I’m a RESTafarian (so coined for people who have an unhealthy enjoyment of REST), but really, Amazon haven’t proven anything, other than being arrogant and disrespecting developers.

Anyway…

—-

It seems strange that someone with such a clear idea of what a RESTful web service is for and why it’s there makes such a ridiculous statement as ‘… REST doesn’t matter for Cloud APIs’.

At it’s simplest, REST is a way for communicating; a ruleset or a bunch of guidelines which, when adhered to, make being a consumer of these APIs much easier. I’ll address some points in the post:

Has this lack of REStfulness stopped anyone from using it? Has it limited the scale of systems deployed on AWS? Does it limit the flexibility of the Cloud offering and somehow force people to consume more resources than they need? Has it made the Amazon Cloud less secure? Has it restricted the scope of platforms and languages from which the API can be invoked? Does it require more experienced engineers than competing solutions?

1) Your set of questions, all of which answer ‘No’, is missing one and a pretty fundamental one at that. Does the fact that AWS use their own implementation of an API instead of a standard like, oh, I don’t know, REST, frustrate developers who really don’t want to have to learn another method of communicating with AWS? Yes.

Here’s a rule of thumb. If most invocations of your API come via libraries for object-oriented languages that more or less map each HTTP request to a method call, it probably doesn’t matter very much how RESTful your API is.

2) The rule of thumb: Who writes these libraries for the Object Oriented Languages you speak of? Oh, yes – developers. See Point 1.

The Rackspace people are technically right when they point out the benefits of their API compared to Amazon’s. But it’s a rounding error compared to the innovation, pragmatism and frequency of iteration that distinguishes the services provided by Amazon. It’s the content that matters.

3) If Rackspace are ‘technically’ right, then they’re right. There’s no grey area. Morally, they’re also right and mentally, physically and spiritually, they’re right.

If you think it’s rich, for someone who wrote a series of post examining “REST in practice for IT and Cloud management” (part 1part 2 and part 3), to now declare that REST doesn’t matter

4) Yes, it is rich.

As commenter John Leach says, it’s disrespectful to developers to implement and entirely different method of communicating with your API just because you’re amazon and you can do what you like.

Put it this way. If, every time you hired a car, the cockpit setup was the same; the pedals were in the same place, the wheel turned left and right and the speedo was in front of you, you’re comfortable and happy. Then, one day, you hire a car from Amazon Car Hire. The pedals are now handles and they’re all identical, the wheel is a yoke and the speedo is above your head. You’d be pretty pissed off. Especially if Amazon Car Hire were the only people you could hire a car from.

Not a perfect analogy, but the bottom line is, just because you’re amazon, doesn’t give you the right to buck the standard, regardless of how loose or ill-defined that standard might be.

What happens when Microsoft do it? Everyone hates IE8 and there furore.

About these ads

4 comments

  1. “Who writes these libraries for the Object Oriented Languages you speak of? Oh, yes – developers. See Point 1.”

    Yes, libraries are written by developers. But the developers that wrote the various SDKs for AWS, Rackspace, Azure and whatnot, are either employees of the respective company or commissioned in some way by it. So if they got paid, they didn’t get frustrated, and you can’t point to point 1.

    It is anecdotal for you, but in my personal experience with REST APIs I have never done any “raw” REST calls. Always used an SDK/library. It will be interesting to see if the cloud companies have any statistics on it.

    1. Hey Ivan, thanks for your comment. In my experience, writing libraries for APIs that my company has published that weren’t RESTful, that were, in fact, some proprietary crapstack was some of the worst experiences in my development life. Yes, I got paid to do it, but it was still an awful, soul destroying task that I hated every moment of. I got frustrated. In fact, it’s MORE frustrating when someone says ‘We’ll pay you to work with this shit, but you can’t make it better.’. I can still get frustrated and get paid!

      I know many developers who have never touched a REST api, only the libraries. But this is no excuse to not do it right. Where I currently work, if we need to work with a 3rd party client or service, we often have to re-write libraries to fit with our coding standards or architecture. This is always easier, less time consuming and has less WTF’s per minute if it adheres to some standard.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s