Nottingham, UK

Robots and sandwiches

Why don’t we have robots yet? Well…

It’s not that we can’t build the robots; it’s that we can’t program them to make sandwiches. It’s because making sandwiches is hard to describe (but easy to do for smart creatures like us humans), and computers are good only for things are that (relatively) easy to describe (but hard to do for slow creatures like humans).

And that is why I had such a hard time writing that first program. Computers are way dumber than I was prepared for.

When you teach someone how to make a sandwich, your job is made much easier because they already know what a sandwich is. It is this common, informal understanding of “sandwichness” that allows them to fill in the gaps in your explanation. Step 3 says to spread the peanut butter on one slice of bread. It doesn’t say to spread it only on one side of the bread or to use the knife to do the spreading (as opposed to, say, your forehead). You assume they just know these things.

Learn to Program, Chris Pine.