top | item 5355945

How I Explained REST to My Wife (2004)

115 points| bugBunny | 13 years ago |tomayko.com | reply

51 comments

order
[+] ebbv|13 years ago|reply
I can't stand the "blog post as conversation" format. It's fine if you're quoting a conversation for one or two paragraphs, but for something this long you should do me (the reader) the courtesy of speaking directly to me.

Also this is giving way too much credit for the creation of the URL. The format of the URL is not some miracle, genius insight. It is a natural result of network computing, and similar descriptors of how to find a file on a remote system had existed previously for ages.

[+] kragen|13 years ago|reply
It seems natural in retrospect, but it actually took a surprisingly long time to invent. The URL didn't exist until 1990; people had been putting files on FTP sites since 1973 or so, 27 years at that point, and there wasn't even a standard piece of software which, given "wuarchive.wustl.edu:/foo/bar/baz.txt", would give you the contents of baz.txt. (ncftp supported that by 1994, IIRC, but no vendor shipped ncftp as standard.)

Obviously it wasn't that people couldn't figure out how to do that. It's that nobody understood that it was an important thing to be able to do. It seems really obvious in retrospect, but it wasn't.

Today, there still are a surprising number of people who create network-accessible persistent objects without making them URL-addressable. Apparently it's still not obvious to everyone that it's an important thing to be able to do.

Rohit Khare's article, "Who Killed Gopher?", helps to make the history a little clearer: http://www.ics.uci.edu/~rohit/IEEE-L7-http-gopher.html

[+] peshkira|13 years ago|reply
It's a great blog post, but it has been posted numerous times on HN. I don't want to rant or anything, but I think we should start searching before posting. Please correct me, if I am wrong.

cheers http://news.ycombinator.com/item?id=763570 http://news.ycombinator.com/item?id=3396910 http://news.ycombinator.com/item?id=5186774

[+] Udo|13 years ago|reply
This is very meta, but what I find infinitely more annoying is this trend of people who love to repost their own comments 10 times in 10 different threads loosely related to the same issue. We should start punishing instead of rewarding that. I'm looking at you, tokenadult.

At least with link repetition I can quickly see whether I already read this and decide to ignore it. But re-posting an old, cancerously-grown comment with a new first paragraph is just mean and lazy.

[+] NathanKP|13 years ago|reply
For what it is worth I've been an HN member nearly four years and I've never seen this before. I enjoyed it and up voted. I don't think reposts are necessarily a bad thing because there is always going to be new members who have not seen the item yet, or old members who were "in the zone" coding instead of wasting time browsing HN on the day the item was last posted.
[+] shintoist|13 years ago|reply
Even if it were reposted within a month, a considerable number of people would have never seen it before. It's just the nature of these boards.

Just rely on the upvoting system. If people think it is relevant, they upvote. This means things will only show up on the front page if enough people are interested (ie it has been long enough since it was last posted).

[+] bugBunny|13 years ago|reply
well, sorry. It was shocking good and never seen b4 for me. But, it's so good that I would like to read it again in a year or so :)
[+] 8ig8|13 years ago|reply
Is the duplicate posting issue relevant if the post is receiving up votes?
[+] tlrobinson|13 years ago|reply
Interesting, all of these have identical links. Usually Hacker News doesn't let you post the same link more than once.
[+] cerales|13 years ago|reply
So Ryan Tomayko's conversions with his wife are akin in tone and style to a language textbook aimed at tweens?
[+] petercooper|13 years ago|reply
Better than the equivalent conversation in our house.

Me: Hey, do you want to learn about a core principle of how the Web works? ;; Her: Huh? ;; Me: You know, the thing Facebook runs on. ;; Her: Oh right. No then.

It's lucky there are more interesting things than technology for us to talk about, thankfully! :-)

[+] michaelgrafl|13 years ago|reply
I had that thought, too.

I don't think that exact conversation actually took place. My girlfriend would give me hell if I talked to her like that, I'm pretty certain.

As for the explanation, I like it. It puts into words what I had been intuitively thinking about the benefits of a RESTful API.

[+] zedr|13 years ago|reply
What do you think about the separation of Web sites and Web services (so-called APIs)? Shouldn't the Web site be the Web service, and offer multiple representations of its endpoints?

As a trivial example, consider that I have a blog located at the URIL http://www.example.org/posts/

If I were to offer an API to other developers, I would have two options: 1) serve posts as `application/json` at the URI http://www.example.org/api/v1/posts ; 2) serve both `text/html` and a `application/json` representations at the same URI http://www.example.org/posts , handling the desired mime-type and API version in the 'Accept' field of the HTTP request.

Which approach is better?

[+] dgreensp|13 years ago|reply
Yes, and we also have XML, the Academically Correct and proven-in-the-field way to represent all entities.

I get the "URLs are nouns" metaphor, but I don't think it needs any additional promotion or particularly favors HTTP over whatever else might emerge.

[+] paulnechifor|13 years ago|reply
Better yet, RDF. It's the final solution for data representation.
[+] hobbyist|13 years ago|reply
Correct me if I am wrong here. So, instead of the eloquent method of using GET, POST and PUT on resources, the current practice is about the programmer writing custom parsers to get the information they want and then use them accordingly.
[+] siamore|13 years ago|reply
Isn't representation of resources what the semantic web is supposed to be about? if I wanted to make someone understand the semantic web I would say something like this,

ontologies are data with corresponding metadata about everything on a domain or site.

These ontologies allow the data to be parsed automatically, i.e sites like amazon could just make their data available as ontologies and third party sites could "read through the sites for us". These third party sites serve as a portal from where we could ask for what we want and they would in turn look through the sites available (eBay, amazon etc) using the ontologies and get the best deal for us.

[+] UNIXgod|13 years ago|reply
Yes it's a classic. Supplemental to RFC 2616.
[+] keefe|13 years ago|reply
most of explaining REST to my wife was linking her fielding's thesis. Pretty happy with my life... :]
[+] rikkus|13 years ago|reply
He uses four metaphors to help explain this:

1. Cleaning 2. A coffee table 3. Shopping 4. A school

So was he explaining this to his wife in the 1970s? Because REST over HTTP didn't even exist until the 90s.

[+] Aardwolf|13 years ago|reply
> Wife: You mean "http" like the beginning of what I type into the browser?

What browser does she use? It wasn't required to type that anymore for ages already :)

[+] 8ig8|13 years ago|reply
For what it's worth, this post is from 2004. Even with that in mind, this is not a verbatim conversation; the style is Socratic inquiry.
[+] 542458|13 years ago|reply
Two points: One, the post is from 2004, so maybe she could remember a time when typing that was required (I wouldn't know - I was too young to be using the internet at that time).

Second, this conversation seems to have been "enhanced" for the sake of the blog post, so it's quite possible that all the details aren't 100% accurate. Some of her questions seem a tad too convenient.

[+] kijin|13 years ago|reply
The article was written in 2004, but even today, a lot of advertisements, name cards, and other types of printed material still contain URLs that begin with http and www. As a result, some people still type in all those characters when they want to look up a web site. In fact, this practice might be more common among non-tech-savvy people (such as the wife in this story) than among HNers (who know which parts of a URL are optional).
[+] icebraining|13 years ago|reply
I don't think it was ever required (even when it was shown), but people still typed it.
[+] shubhamjain|13 years ago|reply
I don't wish to read essays but i guess it is just a way to transmitt information on web, get and post methods, mainly.
[+] icebraining|13 years ago|reply
Nope, REST can apply to any channels, not just the web.
[+] WayneDB|13 years ago|reply
What a bunch of hogwash. Everything does not fit into the request/response model of HTTP and the Internet is certainly the web.
[+] sp332|13 years ago|reply
Email (not webmail, but IMAP and POP etc) uses the internet but is not part of the web. There are other examples but I think that's the easiest to see.
[+] eksith|13 years ago|reply
"...the internet is certainly the web" sounds like religion to me.

A highway is a type of road. As are streets, byways, lanes, courts etc... URLs need not be protocol specific, but having a standard makes inter-protocol communication that much simpler. In fact the post was primarily about how we label things (nouns, verbs etc...). I'd say most things fit the model of giving, taking and changing things, no?