Translations of the following dialog available in Japanese (by YAMAMOTO Yohei), French (by Karl Dubost), Vietnamese (by jishin), Italian (by Barbz), and Spanish (by Tordek). If you know of additional translations, please leave a comment with the location.
Wife: Who is Roy Fielding
?
Ryan: Some guy. He’s smart.
Wife: Oh? What did he do?
Ryan: He helped write the first web servers and then did a ton of research explaining why the web works the way it does. His name is on the specification for the protocol that is used to get pages from servers to your browser.
Wife: How does it work?
Ryan: The web?
Wife: Yeah.
Ryan: Hmm. Well, it’s all pretty amazing really. And the funny thing is that it’s all very undervalued. The protocol I was talking about, HTTP, it’s capable of all sorts of neat stuff that people ignore for some reason.
Wife: You mean http
like the beginning of what I type into the browser?
Ryan: Yeah. That first part tells the browser what protocol to use. That stuff you type in there is one of the most important breakthroughs in the history of computing.
Wife: Why?
Ryan: Because it is capable of describing the location of something anywhere in the world from anywhere in the world. It’s the foundation of the web. You can think of it like GPS coordinates for knowledge and information.
Wife: For web pages?
Ryan: For anything really. That guy, Roy Fielding, he talks a lot about what those things point to in that research I was talking about. The web is built on an architectural style called REST
. REST provides a definition of a resource
, which is what those things point to.
Wife: A web page is a resource?
Ryan: Kind of. A web page is a representation
of a resource. Resources are just concepts. URLs–those things that you type into the browser…
Wife: I know what a URL is..
Ryan: Oh, right. Those tell the browser that there’s a concept somewhere. A browser can then go ask for a specific representation of the concept. Specifically, the browser asks for the web page representation of the concept.
Wife: What other kinds of representations are there?
Ryan: Actually, representations is one of these things that doesn’t get used a lot. In most cases, a resource has only a single representation. But we’re hoping that representations will be used more in the future because there’s a bunch of new formats popping up all over the place.
Wife: Like what?
Ryan: Hmm. Well, there’s this concept that people are calling Web Services
. It means a lot of different things to a lot of different people but the basic concept is that machines could use the web just like people do.
Wife: Is this another robot thing?
Ryan: No, not really. I don’t mean that machines will be sitting down at the desk and browsing the web. But computers can use those same protocols to send messages back and forth to each other. We’ve been doing that for a long time but none of the techniques we use today work well when you need to be able to talk to all of the machines in the entire world.
Wife: Why not?
Ryan: Because they weren’t designed to be used like that. When Fielding and his buddies started building the web, being able to talk to any machine anywhere in the world was a primary concern. Most of the techniques we use at work to get computers to talk to each other didn’t have those requirements. You just needed to talk to a small group of machines.
Wife: And now you need to talk to all the machines?
Ryan: Yes - and more. We need to be able to talk to all machines about all the stuff that’s on all the other machines. So we need some way of having one machine tell another machine about a resource that might be on yet another machine.
Wife: What?
Ryan: Let’s say you’re talking to your sister and she wants to borrow the sweeper or something. But you don’t have it - your Mom has it. So you tell your sister to get it from your Mom instead. This happens all the time in real life and it happens all the time when machines start talking too.
Wife: So how do the machines tell each other where things are?
Ryan: The URL, of course. If everything that machines need to talk about has a corresponding URL, you’ve created the machine equivalent of a noun. That you and I and the rest of the world have agreed on talking about nouns in a certain way is pretty important, eh?
Wife: Yeah.
Ryan: Machines don’t have a universal noun - that’s why they suck. Every programming language, database, or other kind of system has a different way of talking about nouns. That’s why the URL is so important. It let’s all of these systems tell each other about each other’s nouns.
Wife: But when I’m looking at a web page, I don’t think of it like that.
Ryan: Nobody does. Except Fielding and handful of other people. That’s why machines still suck.
Wife: What about verbs and pronouns and adjectives?
Ryan: Funny you asked because that’s another big aspect of REST. Well, verbs are anyway.
Wife: I was just joking.
Ryan: It was a funny joke but it’s actually not a joke at all. Verbs are important. There’s a powerful concept in programming and CS theory called polymorphism
. That’s a geeky way of saying that different nouns can have the same verb applied to them.
Wife: I don’t get it.
Ryan: Well.. Look at the coffee table. What are the nouns? Cup, tray, newspaper, remote. Now, what are some things you can do to all of these things?
Wife: I don’t get it…
Ryan: You can get them, right? You can pick them up. You can knock them over. You can burn them. You can apply those same exact verbs to any of the objects sitting there.
Wife: Okay… so?
Ryan: Well, that’s important. What if instead of me being able to say to you, “get the cup,” and “get the newspaper,” and “get the remote”; what if instead we needed to come up with different verbs for each of the nouns? I couldn’t use the word “get” universally, but instead had to think up a new word for each verb/noun combination.
Wife: Wow! That’s weird.
Ryan: Yes, it is. Our brains are somehow smart enough to know that the same verbs can be applied to many different nouns. Some verbs are more specific than others and apply only to a small set of nouns. For instance, I can’t drive a cup and I can’t drink a car. But some verbs are almost universal like GET, PUT, and DELETE.
Wife: You can’t DELETE a cup.
Ryan: Well, okay, but you can throw it away. That was another joke, right?
Wife: Yeah.
Ryan: So anyway, HTTP–this protocol Fielding and his friends created–is all about applying verbs to nouns. For instance, when you go to a web page, the browser does an HTTP GET on the URL you type in and back comes a web page.
Web pages usually have images, right? Those are separate resources. The web page just specifies the URLs to the images and the browser goes and does more HTTP GETs on them until all the resources are obtained and the web page is displayed. But the important thing here is that very different kinds of nouns can be treated the same. Whether the noun is an image, text, video, an mp3, a slideshow, whatever. I can GET all of those things the same way given a URL.
Wife: Sounds like GET is a pretty important verb.
Ryan: It is. Especially when you’re using a web browser because browsers pretty much just GET stuff. They don’t do a lot of other types of interaction with resources. This is a problem because it has led many people to assume that HTTP is just for GETing. But HTTP is actually a general purpose protocol for applying verbs to nouns.
Wife: Cool. But I still don’t see how this changes anything. What kinds of nouns and verbs do you want?
Ryan: Well the nouns are there but not in the right format.
Think about when you’re browsing around amazon.com looking for things to buy me for Christmas. Imagine each of the products as being nouns. Now, if they were available in a representation that a machine could understand, you could do a lot of neat things.
Wife: Why can’t a machine understand a normal web page?
Ryan: Because web pages are designed to be understood by people. A machine doesn’t care about layout and styling. Machines basically just need the data. Ideally, every URL would have a human readable and a machine readable representation. When a machine GETs the resource, it will ask for the machine readable one. When a browser GETs a resource for a human, it will ask for the human readable one.
Wife: So people would have to make machine formats for all their pages?
Ryan: If it were valuable.
Look, we’ve been talking about this with a lot of abstraction. How about we take a real example. You’re a teacher - at school I bet you have a big computer system, or three or four computer systems more likely, that let you manage students: what classes they’re in, what grades they’re getting, emergency contacts, information about the books you teach out of, etc. If the systems are web-based, then there’s probably a URL for each of the nouns involved here: student, teacher, class, book, room, etc. Right now, getting the URL through the browser gives you a web page. If there were a machine readable representation for each URL, then it would be trivial to latch new tools onto the system because all of that information would be consumable in a standard way. It would also make it quite a bit easier for each of the systems to talk to each other. Or, you could build a state or country-wide system that was able to talk to each of the individual school systems to collect testing scores. The possibilities are endless.
Each of the systems would get information from each other using a simple HTTP
GET. If one system needs to add something to another system, it would use an
HTTP POST. If a system wants to update something in another system, it uses
an HTTP PUT. The only thing left to figure out is what the data should look
like.
Wife: So this is what you and all the computer people are working on now? Deciding what the data should look like?
Ryan: Sadly, no. Instead, the large majority are busy writing layers of complex specifications for doing this stuff in a different way that isn’t nearly as useful or eloquent. Nouns aren’t universal and verbs aren’t polymorphic. We’re throwing out decades of real field usage and proven technique and starting over with something that looks a lot like other systems that have failed in the past. We’re using HTTP but only because it helps us talk to our network and security people less. We’re trading simplicity for flashy tools and wizards.
Wife: Why?
Ryan: I have no idea.
Wife: Why don’t you say something?
Ryan: Maybe I will.
Discuss
Dude, your wife must really love you to go through all that which was obviously of way more interest to you than to her! I mean, I’m not married (maybe that’s the reason), but any woman I’ve ever been with (that wasn’t already technical) would have rolled her eyes and dismissively declared “Whatever!” and walked off by about the 1/4th of the way through the above dialog. I know, it’s happened more at least once in my past! :-)
— Mike Schinkel on Monday, September 04, 2006 at 02:52 AM #
this such a sexist and stupid post!
— p on Tuesday, September 05, 2006 at 09:57 AM #
That is the Best description of Rest Ive read! Now I get it - I used to think it was just another competing way of getting information like RPC, SOAP, etc. But I understand from your article that it is a universal way of mapping information - I will start developing this way now!
— Jeff S on Tuesday, September 05, 2006 at 01:09 PM #
Ingenious way of describing it. Thanks for helping to clarify it for all of us.
— greg on Tuesday, September 05, 2006 at 04:39 PM #
Great explanation, Ryan… This is one of the simplest explanations of REST that I’ve come across. Thanks for making it available.
— Jay Jones on Wednesday, September 06, 2006 at 04:32 PM #
p: Ugghh. I have to admit, this post does seem kind of sexist now that you mention it. It never occured to me that it might be taken as such. I didn’t mean to imply my wife was a layperson due to her being female. I use “explained to my wife” at work as a simple way of saying that something is being described in a way that you might be able to explain to layperson (like people who make buying decisions :) Of course, everyone at work knows that my wife is non-technical and also that she is one of the only people outside of work I get to have grown-up conversations with.
It’s way more complex than that – you could write a whole post on it.
There’s a bit of context missing from the beginning of the post: I had been busy at work and hadn’t seen her much in the past week or so. When that happens she starts getting jealous of the laptop and wants to hover over my shoulder – that’s a sign, it means: put it down and pay attention to me. If I don’t heel to that hint, she’ll start asking me about whatever’s on the screen. If I’m lucky it’s
vimand a terminal runningscreen, which freaks her out and she leaves. Otherwise, I’m usually in the browser or my newsreader. It just so happened that at this time, I was reading Roy’s Bio so she saw his picture and says, “Who is Roy Fielding??!?,” using the exact the same tone and inflection you might when saying “WTF?”When this happens, I usually just say, “Oh, it’s nothing,” or something like, “it’s just some stuff about a thing.”
Anyway, the funny thing is that I wasn’t really trying to explain anything at first. It started out as a bit of joke – a be careful what you ask for type thing. But then she says, “Oh, I get it.” and I so I kept on going and the next thing I know we’re talking about polymorphism and URL canonicalization and all kinds of crazy shit.
She gets me going on purpose just so she can see my arms waving and the vein pop out of my head while I’m trying to describe this stuff. I don’t think she really pays all that much attention to what I’m actually saying.
— Ryan Tomayko on Wednesday, September 06, 2006 at 06:20 PM #
Awesome. On so many levels. The explanation of REST is excellent, and despite having been delivered to a non-techie, detailed enough for the technical reader who isn’t passionate about the subject.
As for your last comment, the hovering, the vein popping and the grown-up conversations are an uncanny reflection of my life. I also get, “why don’t you just get married to the computer,” when she’s had enough of me geeking out during non-work hours.
— Steve Collins on Wednesday, September 06, 2006 at 08:11 PM #
I think your page is fine. Nice basic description of the architectural style. The more I learn about it, the more difficult it’s becoming not to get dragged into controversy. I don’t think your page models a sexist scenario. Your wife could easily have been a child who just wanted to learn more. Not that I deny the existence of sexism. No way. It exists and it’s damaging. But I think you can relax. Nothing wrong with being a nice guy.
— chris p on Thursday, September 07, 2006 at 02:07 PM #
Thank you very much for your effort to provide all those information, in your blog, and in SOA Yahoo! group specifically. I am one of your writings fans. I am trying to study SOA and really is so interested in your writings. Thank you
— Haitham on Monday, September 11, 2006 at 09:32 AM #
I didn’t think your post was sexist. For Pete’s sake lighten up people! Fact is, it’s a very common scenario as described in this post. If the author would have pretended to be a woman explaining it to her non-tech husband, it would only be patronizing, if anything, and you’d have to be naive to buy it.
As a matter a fact, I think it is sexist to proclaim that this post is sexist, because the sexes of the people is not the topic and shouldn’t matter, either way.
my 2c
PS I can’t end my post without saying something actually related to the topic of the post: excellent description of REST! Well done.
Pierre
— Pierre on Monday, September 11, 2006 at 12:03 PM #
bravo! a great introduction to REST turned insightful (and subtle) polemic. I came here from the wikipedia entry on REST and must say that whoever added the link to this article had the right idea.
— ivar vasara on Saturday, September 16, 2006 at 03:48 AM #
I’d like to echo ivar’s comments. Ryan’s REST analogies worked for me and I too found it via Wikipedia.
— Kevin Howard on Wednesday, September 27, 2006 at 09:00 AM #
Nice. This is something my wife/kid/friend/dad/mom/brother/etc. could understand.
Why is sexism in this post important?
— Dave on Thursday, October 05, 2006 at 05:00 PM #
Really an interesting post, resembling Beateson’s dialogue with his daughter… Finally I started unterstanding REST, thanks to you.
Grazie, as we say in Italy.
— Federico Gobbo on Friday, October 06, 2006 at 05:33 AM #
Great explanation. Thank you very much, REST is not that easy to understand.
— Bruno on Friday, October 13, 2006 at 12:00 PM #
this is great:) reading the questions out loud in a high squicky voice really helps reading the whole thing without quiting:) reminds me of when i explain stuff to my girlfriend:)
I can see how this could come off sexist, but hey, its not like the guy said “women never understand complicated stuff”. there are a lot of people who don’t understand computer stuff that easily. some of them are woman. it doesn’t mean that they are stupid. but even if they were, we still love them and have the patiance to explain stuff, and they have the patiance to listen to our boring explanations about stuff they don’t care about. that’s love. and that’s why i find this post actually romantic. i really do.
— Pizza Dude on Tuesday, October 17, 2006 at 01:05 AM #
that was fantastic. even me being a techie, didn’t have much context of intricacies of REST. Thanks for explaining to all of us. I’m sure this’ll help me in my further reading. And Kudos to your wife.
— SomeInternetDude on Tuesday, October 17, 2006 at 05:33 PM #
creative explanantion….finally some interesting reading.
— henry on Tuesday, October 17, 2006 at 07:57 PM #
i liked your post. i’d like to see you try to explain SOAP to your wife. i have a feeling that conversation would be incredibly painful.
— frankzappa on Tuesday, October 17, 2006 at 08:54 PM #
Thanks for the great intro to REST! I’m a girl, a nurse & just getting into IT, so it was PERFECT…& I didn’t think it was sexist at all. I totally understood the context & have these types of conversations on medical topics w/my husband…way to relate when you are absorbed in your work.
— Kim on Tuesday, October 17, 2006 at 09:12 PM #
I think the Rosettanet framework has such a definition of how machines can talk to each other.
MS Biztalk has the RosettaNet framework implemented (in part) … and allows machines to talk to each other. That was in 2001. And knowing MS, there are probably other more effective ways of doing it already. ;)
— Snappy! on Wednesday, October 18, 2006 at 04:18 AM #
Like the other readers commenting here, I love this and it helped me GET it (pun intended, har har).
But I wish you could expand on the last part, the part that you yourself said you don’t get: “Instead, the large majority are busy writing layers of complex specifications for doing this stuff in a different way that isn’t nearly as useful or eloquent.” … Why? … “I have no idea.”
OK, so you said you have no idea, but it would be great to read more on this if you do get an idea, so we can understand, are these people (I may be one of them) working in a different space where REST doesn’t apply, or are we just truly clueless, or are there other forces in play that tip the scales to non-REST techniques, and are those forces appropriate ones (technical) or inappropriate (desire to perpetuate some walled garden somewhere).. what really is going on?
Now that you’ve provided some baseline clues for some of us, I really look forward to the next step where you expose and slice through the presumably flawed thinking behind non-REST approaches – once you get an idea what that thinking is. This would help me, at least, understand this a lot better by putting it in context. Not sure if that made sense but I hope you understand what I’m wishing for.
— Jed on Wednesday, October 18, 2006 at 04:20 AM #
Hey Ryan,
Great post. I still haven’t read the whole thing (i usually read the comments first ;Þ), but i really like the idea and the thought. Oh and i dont think that it should be considered sexist. It was, like you, or someone else, said, being explained to your wife who happens to be non-technical. And i know how difficult / enriching it can be to finally get the other person to understand what you’re talking about. Have done that a number of times with my friends, non-technical ones who want to learn about something new and the (semi-)technical one’s who need a massive un-learning session.
But most of all, i like the part about someone mentioning that your wife must really love you to go thru all that. And that brought a lil smile to me coz my girlfriend also does kind of the same thing, asking questions along the way and listening to the whole thing with full interest. :))
— Kush J. on Wednesday, October 18, 2006 at 07:01 AM #
Bravo mate :)
— Ivan Minic on Wednesday, October 18, 2006 at 07:21 AM #
“… machines suck.” That’s brilliant.
— Rob Riggins on Wednesday, October 18, 2006 at 08:34 AM #
Sweetheart,
You’re so wonderful. I just don’t understand why some of these people who commented here are so mean to you.
At any rate, I have a special surprise for you tonight. Wink, wink. Nudge, nudge.
You know where to find me …
— Mrs. Tomayko on Wednesday, October 18, 2006 at 10:11 AM #
There’s no way this wife exists. No way, I tell you! J’accuse!
Nice explanation, though. Well done. Cheers.
— Chris on Wednesday, October 18, 2006 at 11:59 AM #
“most important breakthroughs in the history of computing.
Wife: Why?
Ryan: Because it is capable of describing the location of something anywhere in the world from anywhere in the world.”
Nope. IP does it.
— Anonymous Coward on Wednesday, October 18, 2006 at 12:12 PM #
Excellent POST, and I GET it ;)
It’s an interesting way to actually promote the REST architecture, since what is really simple can be explained thoroughly with out context. I would challenge W3C people to explain SOAP this way.
As for the sexist claim, it’s just another sign we’re in a insane time but anyhow here is the solution: rename the article to “How to explain REST to your 11 years-old boy”. This is actually what I will test myself with my son Hillel. He’s already using Ubuntu so he will GET it ;)
— Philippe Joseph on Wednesday, October 18, 2006 at 12:57 PM #
“Nope. IP does it.”
Nope. IP describes which specific machine is the host of the resource that you’re looking for.
Not that IP isn’t important.
If I have to call my wife, I call her cell phone. I’m looking for my wife, not her phone.
— sean on Wednesday, October 18, 2006 at 03:12 PM #
Found your post really interesting, and your wife very brave. Must be hard to keep up with you!Lol
— Isabel on Wednesday, October 18, 2006 at 04:44 PM #
I know that I don’t have any way to prove that I am Ryan’s wife but I just wanted to put it out there that the conversation did actually occur. As a matter of fact, I was ticked off when I read the article because I thought he made me sound like an idiot. I enjoy the fact that my husband and I can talk about a variety of topics and learn from eachother.
I was also a little offended by the post signed Mrs. Tomayko
— Shannon Tomayko on Saturday, October 21, 2006 at 02:16 PM #
Mrs. Tomayko, please ask your husband more about this topic. I hope you can probe what theories he has about why people don’t use REST, and what they just aren’t getting, and he will explain it so well that it will become a followup writeup here and we all can learn more.
In other words, please urge him to do a sequel! This is great stuff, and it would be great to hear more!
— Jed on Tuesday, October 24, 2006 at 03:13 AM #
This is easily the clearest description of REST I’ve read, a good primer for younger developers before they read the more passive-prose-laden descriptions (like the one at Wikipedia). Thanks!
— Bruce Alderson on Thursday, October 26, 2006 at 01:48 AM #
I read this post from start to finish, with an early outage trawling through Roy Fieldings pages. Thanks Ryan, brilliant! And probably technically more correct than more ‘correct’ technical documents - this human interface has not needed to request for a paragraph re-send. Blessings and greetings to your wife also.
A few posters have picked up a bit on the ‘human’ aspect of getting on with real development. “large majority are busy writing layers of complex specifications for doing this stuff in a different way that isn’t nearly as useful or eloquent” ‘tis a bit like going to war to bring about peace.
Sir Winston Churchill once said “Men occasionally stumble over the truth, but most of them pick themselves up and hurry off as if nothing has happened.”
Cheers.
— Max Wohlgehagen on Friday, October 27, 2006 at 10:18 AM #
I really wish I had a girlfriend (i’m too young to get married :D ).. or even a friend who would listen to all my HTML/XML/HTTP and all web-related ‘WHAT-NOT’(that’s what my current friends call it :( ) stuff… till then, to speak my heart.. i have IRC and Yahoo! hehe..
neways.. this was a gr8 article from ur side, and I won’t term it as sexist, coz ya.. as u said, u were like “explaining to a layperson”, as my mom once was telling me how to buy the perfect vegetables.. i wouldn’t term that as sexist. :D
And when you say ‘What the Data will like’, do you intend to hint towards a universal data format that all servers will understand, something that the HTTP protocol does not completely comprehend (we have various headers.. but that hardly gets us anyways). And then your complex layers of specifications one.. well I for one would certainly agree after having read the XHTML 2.0 Working Draft. It’s already 200+ pages by now, and it has completely changed the way we used to write HTML. Generalization has been used to way new concepts in it. That apart.. at the same time with WHATWG and W3 soon to be colliding head to head, it sure is a matter that we are missing a very obvious point: Since there are so many machines out there, and a machine could contact virtually any other machine, it does spell out a need for a common data format.
Those were my thoughts, my opinion, but in the end, it was a great read. Excellent I must say, keep it up :D
Rohan Prabhu, rohan2koolNOSPAM@NOSPAMgmail.com
— Rohan Prabhu on Saturday, October 28, 2006 at 12:32 PM #
How about using the term spouse to avoid outdated inferences of gender?
A more extreme measure would be to use a gender neutral language that does not have words for his or her, like Estonian.
Great reading thank you.
— Erkki on Saturday, October 28, 2006 at 06:49 PM #
Thanks, I found this very helpful.
Still, though, I’m looking for another aspect of REST; I’d like to get some insight into whether object-orientation and OO backlash aren’t a part of the popularity of REST.
An example will, I hope, illustrate.
I worked on a application a year ago for magistrates – people who write arrest warrants. We used J2EE, and thus created magistrate objects, officer objects, offender objects, statute objects, and (of course) many, many other supporting objects. All this, we did, in order to render an arrest warrant that our magistrate wanted to print.
A RESTafarian would, I think, point out that in this application that just knits together a bunch of data for a printout, there’s little call for OO. A RESTful architecture wouldn’t have many objects, not for this app.
It seems to me that part of the attraction of RESTful architectures is that they avoid the compulsion to turn everything into an object. Does that sound right, or am I on the wrong track?
— Steve Metsker on Friday, November 17, 2006 at 07:57 AM #
Thank you so much Ryan, It was very nice explanation about REST that I was looked for.
— Mohammad Norouzi on Saturday, December 02, 2006 at 03:24 AM #
This is the fist blogpost ever I’ve read from start to end. You should create a series out of this. “Ryan explains things to his wife”.
— August on Tuesday, December 05, 2006 at 10:44 PM #
Thank you Ryan for this technically neutral explanation. I was wondering the impact Web 2.0 could have in the near future on the IT domains I’m working on… This is the best source of inspiration I found so far!! I’ll dream some more time about it…
— Chris13Jim on Monday, December 18, 2006 at 03:48 AM #
And, you wrote all this down while you were having this convo?
— EatMyShortz on Tuesday, December 19, 2006 at 09:18 AM #
A suggestion to make things look less sexist: Maybe your wife doesn’t want her name on the blog, but if she’s ok with it, try using her name (or first initial) in the conversation instead of ‘Wife’? I think it would make it clear that she’s a real person you’re having a conversation with, not just the steoreotypical non-technical female.
— Laurel on Tuesday, December 19, 2006 at 03:16 PM #
I can see the resource.
Handle complicate thing need simple way.
Who is “Ryan Tomayko”? hehe
— Paofan on Wednesday, December 20, 2006 at 02:29 AM #
Nice article, but wrong in subtle and important ways:
You can think of [a URL] like GPS coordinates for knowledge and information.
That was true at the beginning of the web, but not since 1998. A URL gets you part of the way there, but not all of the way. Not since the invention of customizations for users, or returning different data based on the context of the request.
I’m afraid REST people think the web is too easy. The web is about more than nouns and verbs. Its about state and logic as well.
A lot of Web 2.0 APIs think that since blogs and wikis have permalinks, then everything can have permalinks… and therefore a REST-ful API can be used for a majority of the web.
I’m just not one of those people.
I need more than 4 verbs in my language.
— bex on Wednesday, December 20, 2006 at 05:04 PM #
Awesome description of REST; It’s something I (partially) implemented in my last web project but I didn’t know that there was a named concept behind it.
@bex I don’t agree. If you need more than those 4 verbs then you need more nouns. As regards to state & context; HTTP is stateless! To treat it otherwise means that you have multiple resources behind a single URL and are therefore not utilizing REST correctly. If each URL represents a unique resource, then any state information required for your application should be in the URL.
— Mike on Friday, December 22, 2006 at 10:25 AM #
@Mike
HTTP the protocol is stateless, but that does not mean the web is stateless.
I love stateless protocols: they are far more robust and scalable (if done right) when compared to stateful protocols… but state still needs to be maintained by the user (JavaScript/AJAX/cookies), and in the back-end server (Java/Python/.NET). Performance, rich GUIs, and complex business logic demand statefulness in one form or another.
Once you want to add state logic, REST falls apart. Either because the client needs more than 4 verbs (or just one verb and an action parameter), or because the back-end logic is such that ‘resources’ no longer make sense. You need ‘services’ to choose your ‘resources’ for you, based on the state.
REST is just the latest attempt to cram the web into the CRUD model so common for database apps. Other attempts included JSR170 and WebDAV. Easy for easy stuff, impossible for hard stuff.
— bex on Friday, December 22, 2006 at 10:59 AM #
@bex
The argument you make “once you want to add state and logic, REST falls apart” seems to be made with the assumption that REST would tie your hands down from doing richer interactions.
On your comment “I need more than 4 verbs in my language”, here’s what I would say. If you meet a new person whose native language is not the same as yours, you may likely be limited in the fact that you can’t get him to laugh at jokes your picked up from your cousin or learn each others driving motivations in life. But if you can get introduced, learn each others’ lines of business, tell him what you want from him and learn if he’s got it (and vice versa), and get directions to someplace from him (or give it to him), then you’ve covered a lot. IMHO, the 4 CRUD-like verbs similarly get you a lot of the way. An assurance that you can accomplish just this much with any random person holds a lot of value. Insisting that you won’t want to hook up with just anyone, unless he can do deep-interaction with you seems to be argument that your making.
As for wanting to do such “richer” interaction, nobody’s stopping you (your software) from meeting other potent people with whom you can have your richer discussions. My point is : you can do REST and you can do other stuff as well. Why must you be worried about giving up your favorite tool when you’re introduced to another?
— Vish on Thursday, December 28, 2006 at 02:12 AM #
First, let me say I appreciate the post and the explanation. I particularly like the elegant explanation of polymorphism. Also, I realize that personal blogs are places to write about stuff that happened that you felt like writing about; there’s no obligation to spin the material in some politically correct way.
That said, I did start to feel squirmy reading the piece, and I realized that gender stereotypes had to do with the discomfort. I don’t know if your wife literally said “Sounds like GET is a pretty important verb,” and I mean no offense to her (I have no idea what your usual conversations are like), but to me it sounds like either a vapid filler line of the sort that two-bit news anchors use (“Sounds like those insurgents are getting serious, Bob!”), or like a person who’s not really interested and just humoring you (“That’s nice, dear”).
In general I’m biased against this type of Socratic writing. I think it’s hard to pull off. I think this format best when the learner asks the teacher insightful questions and demonstrates an understanding that evolves in the course of the conversation. When there are too many “Tell me more” lines from the learner, with no additional content or insight, part of me starts to question why there is a need for the conversational format at all, and why the piece couldn’t just have been an essay.
However, part of me also realizes you’re just blogging, not trying to be Socrates or Hofstadter here, and so I’m perfectly willing to lighten up about it.
— Andy Lee on Saturday, December 30, 2006 at 12:39 PM #
Well, I happen to know women in tech who probably have conversations similar to this one with their non-tech boyfriends. It’s hardly Ryan’s fault that he just happens to be male and married to an inquisitive woman. Also: great post.
— LKM on Saturday, December 30, 2006 at 02:19 PM #
Excellent description. For those of you complaining about sexism - you really, really need to take a step back.
One cannot make the assumption that because the author decided to use his explanation to his wife as a building block he is somehow sexist. One cannot also, take the words too literally, evaluating each comment made by ‘wife’. It’s an example, a description, and a very good one at that.
This world is so backward sometimes, it’s quite shocking.
Next time Ryan, you had better use a fictional cat as your example. But then, you would have a PETA fanatic knocking on your (virtual) door, and cartoonists offended that you think all characters are ‘dumb’.
— RDH on Friday, January 05, 2007 at 11:26 AM #
Best wife, ever.
Until my girlfriend becomes my wife that is.
— Dean on Tuesday, January 09, 2007 at 04:34 PM #
My wife and I use the phrase “put it on bunny and ducky level” – meaning just keep it simple and as close to first grade reader level as can be… It works well for us – she’s a musician and teacher, frequently she has to put what she does on “bunny and ducky level” for me to understand it – and vice versa when I talk about my ‘puter stuff.
— Bob on Monday, January 29, 2007 at 05:20 PM #
What’s wrong with being sexy?
— X on Tuesday, February 06, 2007 at 06:00 PM #
Hi I’m one of those wifes who would think that her husband spends most of his time in front of computer.As a result doesn’t share anything with her.Gradually I happened to understand its not the case.By means of your system and software he has been able to improve himself,moreover,has become a computer wizard.Your REST is one of his concerns nowadays.I’m sure it will help him to improve himself more.
— antalya resimleri turkey on Sunday, February 11, 2007 at 05:51 AM #
came here from wikipedia. this helped me understand REST combined with the actual article with left things slightly fuzzy for a reader on a lazy state as I was. And it is a funny article as well, very good work. Thanks!
— xmariachi on Saturday, March 03, 2007 at 12:25 PM #
The only way you could possibly think it’s sexist is if you started by assuming that “Ryan” was the name of a heterosexual male, you sexist pig…
— ken on Wednesday, March 21, 2007 at 01:48 AM #
You have post and put backwards. Post is to update and put is to add something.
— optimusPaul on Thursday, March 22, 2007 at 09:46 AM #
The article is interesting and well written, but somewhat condescending.
The title is probably the prime offender here. Although, had it been more prosaic I probably wouldn’t have even noticed the link.
— Nimrod7 on Monday, March 26, 2007 at 03:51 PM #
I will try to translate this to Chinese, hehe~~~ Nice post
— Deng Peng on Tuesday, April 03, 2007 at 10:34 AM #
Bravo. Excellent post. Thanks a bunch for the Japanese translation as well.
— Iroke.org on Sunday, April 15, 2007 at 01:13 PM #
Thanks Ryan for the wonderful post! Keep such posts coming.
— Jeetal on Monday, April 16, 2007 at 05:25 AM #
Fantastic post - thank you so much for taking the time committing it to web! Shame about comment #2, could do with a grammar and sense of humour tweak!
— Dan on Monday, April 16, 2007 at 10:19 AM #
Objectively speaking, I would say that the title is a tiny bit sexist in that “to my wife” is used to indicate implicitly someone who is not a software engineer. To be safer I would begin with something like, “The other day I found myself explaining the concept of REST to my wife, who is neither a software engineer nor generally interested in software development.”
— Anonymous Coward on Tuesday, April 17, 2007 at 01:43 AM #
Andy Lee:
Don’t you mean Platonic writing? Writing a Socratic dialogue, perhaps? I’m almost certain you know that Socrates refused to write, but I feel like taking the opportunity to be annoying. ; )
— Anonymous Coward on Tuesday, April 17, 2007 at 01:50 AM #
Hi Ryan,
and A French version of your article ;)
http://www.pompage.net/pompe/comment-j-ai-explique-rest-a-ma-femme/
— karl on Tuesday, April 24, 2007 at 03:11 AM #
Great post! I translated it to italian:
http://blog.barbz.org/archives/26
— barbz on Friday, April 27, 2007 at 11:50 AM #
This is one of the best posts I have read in a really long time. I wish all experts could explain concepts in these simple terms. Thank you.
— Rashmi on Tuesday, May 22, 2007 at 02:15 PM #
Ryan, This was informative and logical. I just watned to gete tips on how to REST and found much more. Thanks so mucy
— Regina Glenn on Monday, May 28, 2007 at 05:16 PM #
Thank you. We’ve translated this great article into Vietnamese:
http://vnruby.org/topic/44/topic.show
— jishin on Tuesday, June 12, 2007 at 10:10 PM #
“this such a sexist and stupid post!”
Since it would have read exactly the same way if the author were a woman explaining it to her non-technical husband, it isn’t sexist at all. What is stupid, incredibly stupid, is your one-liner.
— truth machine on Monday, June 18, 2007 at 05:05 AM #
“Objectively speaking, I would say that the title is a tiny bit sexist in that “to my wife” is used to indicate implicitly someone who is not a software engineer.”
Objectively speaking, you’re being ridiculous, because the title refers to the actual person the author explained it to, his wife, who is not a software engineer. To take the title as “implicitly” indicating a broader category is not objective at all, it’s a subjective projection of your own issues about gender.
— truth machine on Monday, June 18, 2007 at 05:09 AM #
“The article is interesting and well written, but somewhat condescending.”
So much projection; man but you people have emotional problems. There isn’t a hint of patronizing in the article. For condescension, see comment #1.
— truth machine on Monday, June 18, 2007 at 05:16 AM #
“You have post and put backwards. Post is to update and put is to add something.”
Yes. Author, please fix.
— truth machine on Monday, June 18, 2007 at 05:19 AM #
“I don’t know if your wife literally said “Sounds like GET is a pretty important verb,” and I mean no offense to her (I have no idea what your usual conversations are like), but to me it sounds like either a vapid filler line of the sort that two-bit news anchors use (“Sounds like those insurgents are getting serious, Bob!”), or like a person who’s not really interested and just humoring you (“That’s nice, dear”).”
Then you must be really really stupid, and have very negative views of women.
— truth machine on Monday, June 18, 2007 at 05:23 AM #
“Either because the client needs more than 4 verbs”
Good grief; neither REST nor HTTP is limited to 4 verbs.
— truth machine on Monday, June 18, 2007 at 05:26 AM #
“A suggestion to make things look less sexist: Maybe your wife doesn’t want her name on the blog, but if she’s ok with it, try using her name (or first initial) in the conversation instead of ‘Wife’? I think it would make it clear that she’s a real person you’re having a conversation with, not just the steoreotypical non-technical female.”
To him his wife is his wife; to you any wife is a steoreotypical non-technical female. That makes YOU the sexist.
— truth machine on Monday, June 18, 2007 at 05:29 AM #
“How about using the term spouse to avoid outdated inferences of gender?”
“wife” is outdated? Are you saying that, Ryan referred to his spouse, an inference that he was talking about his wife would be outdated?
“A more extreme measure would be to use a gender neutral language that does not have words for his or her, like Estonian.”
More extreme? Gee, ya think?
All you sexist gits are pathetic. There is a tremendous amount of real sexism in the world, sexism that causes a great amount of pain and suffering. I can only imagine that people who think that a man referring to his spouse as his wife is sexist are blind to all that. If you want sexism, consider the appalling recent Supreme Court decision in Ledbetter v. Goodyear Tire & Rubber Co. That’s REAL sexism, and just one little bit of the wave of sexist policy that has issued forth from the Bush administration. Berating Ryan for calling his wife his wife won’t do a thing about that, but it does say a lot about your character.
— truth machine on Monday, June 18, 2007 at 05:57 AM #
“”Ryan: Because it is capable of describing the location of something anywhere in the world from anywhere in the world.”
Nope. IP does it.”
That’s the stupidest comment here, even more stupid than the nonsense about sexism. Aside from the dynamism of IP addresses and the fact that they are coarse-grained (even with IPv6), they don’t /describe/ at all.
— truth machine on Monday, June 18, 2007 at 06:09 AM #
A rumour went round the office that we would be using REST in the next version of product. O panic I don’t know anything about REST. After googling for some time I found lots of information but mostly self contardictory,confusing and arcane. Many thanks for the clearest outline I have come across.
— ks22 on Friday, June 22, 2007 at 06:49 AM #
Thanks Ryan. My Physics professor used to say that you don’t really understand a complex concept until you can explain it to your mother. Same idea.
— Art on Thursday, June 28, 2007 at 06:47 PM #
This sounds like a good angle to attack the fat that for a given domain, or url, different content wants to be served to different sources, browsers, users, geographic locations, ISPs, Carriers, etc.
— MathiasTCK on Wednesday, July 04, 2007 at 01:27 PM #
The point of this article was to explain REST.. which was done in a way that even I, who knows nothing of the subject, could understand. I don’t think whether or not the article is sexist is relevant to the subject or even matters. He did what he set out to do… put the idea into laymen’s terms. Why bring it up? Who cares. Great article! I’m so proud of you… being translated into other languages, getting linked to on Wikipedia, having articles published in magazines, etc., etc., etc.
— Nicole Tharp on Tuesday, July 10, 2007 at 03:27 AM #
Anyone complaining that this is sexist is a JACK-ASS
GREAT EXPLANATION OF REST. Wikipedia, although usually an excellent resource, was not very clear.
Looking for more information though. TELL ME MORE! :)
— tcb on Wednesday, July 25, 2007 at 04:45 PM #
It’s year 2007 already and here you are, still receiving your 86th comment for this article. It shows how good your article is written. =) I wish I had a girlfriend/wife though, who is in to technical stuff too. =)
[ simon.cpu ]
— simoncpu on Friday, July 27, 2007 at 06:00 AM #
thanks, now I can explain this to my HUSBAND. why is the WOMAN always assumed to be the ignorant one ?
— carol on Monday, July 30, 2007 at 11:24 AM #
The title IS sexist!
— Jane on Monday, July 30, 2007 at 12:07 PM #
Hmmm… if I were you, I’d follow the recent trend and disable comments. They add no value except as either streams of “great job!” or a bunch of worthless “that’s sexist!” spew.
Great explanation. Just scrap the comments and keep blogging.
— Michael on Tuesday, July 31, 2007 at 03:54 PM #
Why do you have to portray your wife as dumb? There is really not need for that. Explanation is very good but it looses value, at least to my eyes, for being so sexist. Why could’nt that conversation be between you and your Grandpa? or Between you and your 10 year old? PIG
— Lola Mento on Friday, August 03, 2007 at 01:00 AM #
I agree with Lola Mento. But I like the way you explain a complex subject in a simpler way. -Nish
— Nishanthe on Sunday, August 05, 2007 at 06:41 AM #
This is a very good explaination. I just heard this topic a few days ago from my teacher. English is my second language, but your artical is very easy to understand. I want to translate it to Chinese, if there is no Chinese version of it yet.
— Hong on Sunday, August 05, 2007 at 11:16 AM #
I care , I’m mad as hell and I’m not going to take it anymore
— Anne on Wednesday, August 15, 2007 at 11:10 PM #
Very interesting post…i’m looking at it from the ‘wifes’ point of view and its so like my situation, luckily i have a lovely boyfriend who, when i start leaning over his shoulder with the ‘pay attention to me’ attitude, he will also kindly explain anything i wish to learn about!
— Bronzebrew on Thursday, August 16, 2007 at 03:10 AM #
Excellent way of making things understandable to a layman. I would love to link this post through my blog. Let me know if you have any concerns. Cheers, Vaibhav
— Vaibhav on Thursday, August 16, 2007 at 12:44 PM #
This is one simple and excellent explanation of REST.
— Shankar on Thursday, August 16, 2007 at 04:29 PM #
well done. Communication based on conventional exchange of common concepts is the key issue for people and IT systems.
— Alessandra on Friday, August 17, 2007 at 03:06 AM #
Your explanation on REST has made me restless to know more about the concept.
— S K Ananda Krishnan on Friday, August 17, 2007 at 06:35 AM #
Thanks for the great post! I wish there were more explanations that are simplistic, clear, AND informative.
— aurona on Sunday, August 19, 2007 at 02:56 PM #
Very good explanation. To me the style seemed more like that between Achilles and the Tortoise in “Godel, Escher, Bach:an Eternal Golden Braid”, somewhat Socratic…
— Bill Hughey on Monday, August 20, 2007 at 11:20 AM #
Do you call your wife “Wife” in normal conversation? Does she have a name? Perhaps humanizing her by calling her by her name (as I think actual human beings prefer) would have made this article seem less an exercise by a dweeb trying to sound like Doug Hofstadter on acid and more like an informative attempt to convey what REST is all about.
— Marco Dinari on Tuesday, August 21, 2007 at 02:28 PM #
Wow you read that whole article and thats what your bitching about, thats actually really sad and i feel sorry for you Marco Dinari. I think this man is a geniuse and knows his shit. I am also pretty sure that he calls his wife by her name.
— crscrw on Friday, August 31, 2007 at 06:14 AM #
let see the wife and the sister and the mother all talk about sweepers….While the men try to explain techy stuff to them
— Anonymous Coward on Wednesday, September 05, 2007 at 03:32 PM #
Wow, I just happened upon this post from Wikipedia and while I think you explain REST decently, the blatant sexism here is really a turn-off. I’m male, so I don’t have a direct view of the female perspective of the IT industry, but this is the sort of exclusive attitude that I hear complaints about. I think you could clean this up to be a really useful text if you removed gender.
— Anonymous Coward on Monday, September 10, 2007 at 08:24 PM #
It would have been nice to have read:
How I Explained REST to My Wife, Jayne
Jayne: Some text.
Ryan: Some text.
Jayne: Some text.
Ryan: Some text.
Going forward, this will help put her on equal footing in such a dialogue.
Thank you for sharing!
— osg on Monday, September 10, 2007 at 08:40 PM #
That is awesome. Just awaiting your next article:
“How I Explained SOA to My 8-year old son.”
— verango on Wednesday, September 12, 2007 at 04:23 AM #
I’m surprised with all the comments that no one has realised how valuable this post is to explain to a prospective client about the benefits of a RESTful system.
Your post might just help me get clients to understand how important it is to have a loosely coupled globally accessible system.
In today’s information age (when you think about it in the scheme of things) it is important for anyone to know that their data is open, accessible and available for interoperability. My application respects that notion, and provides the means through RESTful interfaces.
Your post goes a long way in explaining the concept to laypersons. Sexistness be damned. The people who raise the argument are simply trying to create a rucus out of nothing.
Posted using Rakesh’s Nokia N91 8GB
— Rakesh Pai on Sunday, September 16, 2007 at 03:42 PM #
nice Explanation, I would say REST for dummies ;)
— Hendrik on Wednesday, October 10, 2007 at 04:14 PM #
“It would have been nice to have read:
How I Explained REST to My Wife, Jayne”
I agree on this point.
HOWEVER. I am the girlfriend of an aerospace/materials engineer, and you will not believe the insanity I hear all day long, especially when he returns from his experiments or from his graduate classes. Though his work is incredibly complex, I am much like your wife in that, I like to know what he’s doing and what interests him. I can now say that I know enough about shape memory alloys to be able to have a decent situation with another non-engineer (and feel like I know more, lol).
Plus, I believe it’s a fair trade, as he has to listen to me rant about writing and my job! ;)
— Stephanie on Wednesday, October 24, 2007 at 05:07 PM #
I’m not sure why I was linked to this. It seems too simple for the average engineer (not to mention too wordy).
As for the sexism that people can’t see, I must confess this article irked me in that regard so give me a moment to explain.
As several others noted, the use of ‘wife’ rather than <name> makes her sound like an object rather than a person. More-over, since ‘wife’ is a word commonly used to describe ‘married female’, it gives the feel that it represents the every-woman. Take the situation and reverse it:
Besides setting ‘wife’ up as a vacant foil who needs to have things explained to her like a 5-year-old, you’ve given her a tool (vacuum cleaner) to her that denotes housework, implying that she’s the little homemaker (in addition to being a rutabaga)
Combine that with the condescending tone and her not ‘getting’ his oh-so-witty jokes and this story feels like a 50’s flashback.
If you give her a name, it’s not longer ‘all married women’, just one woman that doesn’t seem very sharp. Take away the gender aspect all together and say you’re explaining it to a 10-year-old and it’s fine too. (Although that vacuum part is going to sound weird then) but the way it reads to someone who has faced those sorts of stereotypes, it’s a bit grating as it is. For a sense of scale, I rate it marginally more annoying than an IBM repair certification training video or an ISO-9000 training video. I rate those videos slightly more irritating than fast-food service training videos, which in turn are vastly more annoying than the films they showed in highschool for driving safety, sex-ed, and drugs-are-bad-mmmkay. (If you’ve somehow managed to avoid all of these, let me say it’s about as annoying as getting ‘help’ from ComCast customer service or a Fry’s sales person)
There’s an easy test for sexism/racism/whateverism. Just take the thing that’s been called whichever and swap out the offensive word for the part of your identity that you feel most self-conscious about or have experienced the most prejudice from.
Here’s a good line to try: <noun>: Sounds like GET is a pretty important verb.
And a few nouns you might try: Black, German, Italian, Irishman, Japanese, Asian (or if you really want annoyance here, many of us put ‘wife’ on the same ground as ‘oriental’) Fat guy, bald guy, redneck, conservative, liberal, Christian, Jew, Muslim, Hindu, ComCast employee, Fry’s Employee, etc.
Hope that helps.
— Andrea on Wednesday, October 24, 2007 at 07:46 PM #
Very nice description of REST principles. It is fascinating that some complexed people screw this to rasistic/xenofobic/nazi whatever. A couple of hundred years ago they would burn you to death, today they would like to send you to jail and explain your wife, that she was brutally misused (although she is not aware about it). Andrea, I really can’t figure out the connection between REST and black German liberal ComCast employee. Don’t do drugs, but maybe a couple of Valium pills will help you to get out of your frustration. Try to write on your own a better REST explanation and we will see - this gender stuff is good to nothing.
— Lord Mord on Tuesday, October 30, 2007 at 03:41 PM #
Fantastic REST introduction, Mr. Tomayko! I wish my wife was tech-savvy and explain it to me this way.
(It’s super amazing how many weirdo’s are commenting at the wrong places. Really sad…)
— M. Binev on Tuesday, November 06, 2007 at 03:37 AM #
Mr. Tomatko, Great article. One line confuses me “Nouns aren’t universal and verbs aren’t polymorphic”. I presume you are referring to SOAP based Web services. Could you explain why this is so? I believe the verbs are not polymorphic because instead of HTTP PUT etc.. you now have arbitrarily-named SOAP methods - is that correct? My guess with regard to the nouns would be that the resources are not unique URLs (as in REST) but a SOAP server URL through which all SOAP messages (for Web services hosted by that server) are sent - is that correct?
Does the term “Universal noun” mean “access to all resources everywhere via (logical) URLs”?
Thanks, Sean.
— Sean Kennedy on Friday, November 09, 2007 at 11:33 AM #
When will the next in you series be out? I’m looking forward to Explaining Bayesian Spam Filtering to a Negro, Teaching Queers Entity Relationship Modeling, and How I Explained Political Correctness to White Trash Bloggers.
But seriously, good format and well explained. Evidently these people who are offended have never read heard of a socratic dialog. I see this as a modern update on an ancient didactic form. I have these kinds of conversations all the time with my wife as well. I once used the analogy of a professional kitchen with master chef, sous chef, dishwashers, and all the trappings to explain to her how the web worked.
BTW, seems to me in this day and age your wife could be a man. There is nothing in the article that mentions your wife’s gender, so maybe it is the critics here who are sexist by presuming that only a woman would need such an illustration. That is why political correctness only ends up in more propagation of the kinds of offenses they purport to avoid: you have to spend all your energy judging people and then filtering your responses to see if they are PC, thus your bigotry filter gets finer tuned.
— Gregory on Tuesday, November 13, 2007 at 01:20 PM #
This whole dialog on sexism has marred what was the best explanation of REST that I have read up to date. It has really made me sad and I can only hope that all the responders are coming fresh out of college at UC Berkeley and are not representative of software developers in general.
This incredible over-sensitivity to issues of stereotyping is unbelievable. If you haven’t noticed, there ARE differences between groups. If you have any concept of Diversity, it is embracing differences, not denying them. MOST software developers are men. MOST men have or have had wives or girlfriends. MOST of them are not technical people. That is why MOST of us relate to his posting so well. I just made stereotypes here and guess what? They are all true! This should be obvious to anyone with better than a 6th grade education. But instead of questioning whether statements are true or false we are attacked for even making them.
What exactly do all you Political-Correctness-Police take issue with here? Are you saying that all races, genders, groups, cultures are exactly the same? That would be a VERY boring world. Or do you just have a problem with people talking about it?
And that is exactly the point. You calling Ryan a Sexist is just a tactic meant to shut him up. Politicians have sold us the idea that we should police ourselves when it comes to ANY discussion of Gender, Race, Religion. And Ryan and so many others of you apologized for completely innocent remarks.
What is really pathetic is how many of you have bought into it. My 2 cents… -Steve
— Steve on Monday, November 26, 2007 at 09:39 PM #
R is for reading a good book like the bible or a good wholesome spirtual book , E is for exercise to have the right frame of mind , S is for sleep , always get enough. T is thinking ponder on things to make the right decision , thats REST live your life with REST and your attitude will be so good :) God bless you
— Anonymous Coward on Wednesday, November 28, 2007 at 04:13 PM #
Man, how much I would love to have a wife like yours…. It’s only a dream right… but at least we geeks have all rights to dream!
Cool article i loved reading it…Great Job
— Marlon Grech on Friday, November 30, 2007 at 05:28 PM #
“re Thanks Ryan. My Physics professor used to say that you don’t really understand a complex concept until you can explain it to your mother. Same idea.”
I tried explaining cosmology to my mother, the universe etc. and how I had a hard job imagining it going on forever. “Its amazing isn’t it,” she said, and followed up with “Oh well it probably turns back on itself then”.
My physics teacher at school told us he would sometimes try to explain things to his mother. Like why they were having such a problem launching a high altitude device on a balloon, because the device was getting cold at the high altitude and the weight and performance of the heating circuits was causing difficulties. “Why don’t you put it in a thermos bottle then”, she said. They did.
— Keith Allpress on Sunday, December 02, 2007 at 06:03 PM #
Addendum. You probably should be aware of the efforts of the W3C and various researchers around the world on a concept called the “semantic web”. There are at least three protocols under investigation, XML, RDF, and OWL for machine-processable semantics. Semantics means meaning, but I really think you are bang-on, the problem is really to understand how language works. But that’s not how progress happens, usually we stumble about trying all kinds of things until somebody shouts “Hey, now I see what we were really trying to do all along!”. The academics are arguing about language of course, and that is part of the problem. Because our species has this uniquely remarkable aptitude for language, everyone is an expert. You probably can’t tell a dolphin anything about sonar for that matter, without causing an argument. People can be so passionate about their pet theories, (me included) and ideas become entrenched, but I can see that one day soon the computer people are going to catch up on all this and start blowing some cherished theories out the window with a fresh take on things. The breakthrough will come when the computer people start bootstrapping language learning within systems so that systems learn to understand more by processing what they know.
We also have to learn to separate thinking from language. That’s quite hard to get your head around and really calls into question what we mean by thinking, or as the eponymous Humpty Dumpty would say, what we choose for it to mean. Do we think in words? Yes and no. Do animals think in words? Now that is a question. We have to separate further the ideas of thinking and awareness. There is no doubt that animals think quite complex thoughts, and are able to compose ideas together.
There is a dog and a playful kitten in my household who have an understanding. They have invented a game together, a kind of hide and seek. The rules have evolved to become quite complex, and are respected by both parties, so that neither player will actually hurt the other. But come teatime and immediately the game is adjourned, and the protocols of who gets what food and where are respected. The dog of course owns any food left outside, plus any food inside is fair game if she can get away with it and the cats are off guard.
There is no doubt in my mind that the animals have some kind of internal self-dialog - but it also must be true that it is non-verbal. Or is it? It cannot be non-“thought-al”. It is fast and logical, and abstract. We are animals, we must have that too, but we also have this constant language over-layer chattering in our minds. We only find it hard to recognise our inner thoughts as a language of thought-symbol-feelings because our language translator commands our attention. The language translator is simply a new part of the brain that collects everything from the thought system and immediately maps it into the dominant language system. (It doesn’t have to be like that, the thought system can be channeled into music or bodily action faster than we can make the words.) The logic of the thinking system is “prior” to the logic of the language processor in our heads, and I believe that it takes place in a kind of “theatre”.
Now this theatre is very clever, the basic machinery for composing complex thoughts by nesting them together and chaining them together, that animals and even insects use, can also reflect apon itself. In the animal kingdom this self reflective capability is probably limited, but we on the other hand can pull in words to our minds, and these words bring with them a logical structure called grammar that mirrors the logical machinery of the mind. This allows us to make sentences in our mind using language, that are about the contents of our minds. In other words it gives us a way to listen to ourselves, that was the trick that nature needed in order give us the all important means to influence others. We call it reflection, what we casually call “thinking” is mainly the effort-ful holding of thoughts in “outer-language” words in our heads, and in this we are unique.
So to understand language we need to pull apart sentences and look at the grammar. And from the grammar we we look for a logical system behind it. Here is the great problem - there are two levels of logic. There is firstly the logic of the rules of sentence making, and there is secondly the backgrou