<M <Y
Y> M>

[Comments] (1) By Pokemon Betrayed: Pat, Beth and I planned to go to the Nintendo store at Rockefeller Center to check out their museum of old hardware. It's a good thing we spent most of the day walking around doing other stuff (weird promotional peanut butter exhibition put on the by the peanut butter sandwich restaurant and brunch with Camille, farmers' market, retro game store), because when we got to the Nintendo store it had been taken over by the launch event for the latest Pokemon game. Huge line/crowd of people, waiting to buy the game and/or get a stamp for their Pokemon passport. Oh well. We'll go some other time. Hopefully not the weekend they launch the 3DS.

We went to the LEGO store instead, which was no more crowded than the rest of Rockefeller Center on a weekend. They have a Lego model of Rockefeller Center in the LEGO store, including a Lego model of the LEGO store itself, and you know that somewhere inside that model is a lego model of the Lego model of the LEGO store. Can't see it, though.

[Comments] (3) : While I was busy doing other stuff, the Roy's Postcards backlog ran out. Argh! At some point I'll slap another hundred postcards up, but right now I have to get ready for a trip so I don't have time to pay attention to your needs. <—situational irony

[Comments] (6) "API": Next Friday is my last day at Canonical. I've taken a 90-day contract at a startup, on which more later, and after that I'm not sure. I may join the startup as an employee, I may take a few months to revise RESTful Web Services, or... something else.

Apropos revising RESTful Web Services, I have a question for you. When I started talking with people as part of my job search, I noticed that nobody uses the term "web services" anymore. Everyone talks about "APIs".

I don't want to overstate the magnitude of the change here; people have been referring to web services as APIs for years. I did this myself until around the time RWS came out, and even today the Launchpad web service is officially called the "API". The change I noticed is just that the terms used to be used interchangeably, and now "web service" has pretty much died out. When I say "web service" people know what I'm talking about, but I feel like I'm speaking out of a phrasebook, or doggedly saying "free software" in an "open source" world.

This is one of those little nagging things that may or may not be important. I have an inkling that it's fairly important: that there's a reason people might have stopped saying "web service" around 2007, but that using "API" as a generic term leads to products that are worse than they could be, and that it's something I'd need to address in any second edition of RWS. But I would like to get a broader spectrum of opinion on this.

Has the term "web service" really died out in the past few years (or, as I suspect, changed its meaning)? When do you think this happened, and why?

Update: This post spawned an InfoQ article, so I should probably stop playing coy and say what I think.

I agree with commentor Foone. I think that WS-* successfully claimed the term "web service" in the mid-2000s, and that when people soured on WS-* they also stopped using the term "web service". While looking for work, the only companies I saw talking about their "web services" were big companies that were using SOAP/WSDL. Everyone who wanted to go above level 0 on the maturity heuristic was talking about "APIs".

The problem is, this terminology is backwards! SOAP/WSDL services are at level 0 just because they're not "web services". They don't use any of the web technologies. Their goal is to abstract away the network boundary in order to appear like a native client library. An API, if you will. As you adopt more of the web technologies, your product becomes less like a native client library ("API") and more like the web ("web service").

Thinking of all web services as APIs buys into the assumption that a web service is like a native client library. You can do a lot with that assumption, you can even get to level 3 of the maturity heuristic, but I don't think you can use that assumption to build complex hypermedia-driven applications of the kind seen in REST in Practice. Saying "API" is saying that SOAP/WSDL had the right idea, but the technologies were too heavyweight.

[Comments] (3) Some Call It The "Weekend": I'm unemployed! Until Monday.

: Roy's Postcards is back! Though possibly only for three weeks.


Unless otherwise noted, all content licensed by Leonard Richardson
under a Creative Commons License.