Wednesday, November 20, 2013

A tale of two plumbers

A plumber has the job of connecting all of the routes water can take through a house so that, when a "user" of the house chooses the "menu option," "flush-the-toilet," the toilet flushes. When the user "clicks" on the hot water faucet, hot water comes out of the tap. When the user "reboots" the system, by shutting off any inflow and opening the lowest tap, the system "erases" all its memory (all existing water drains out) and is ready to be restarted.

I really began to get software engineering when I realized that I was a plumber for a very complex system of electronic pipes. My job was to ensure that, based on what faucet the user turned, the desired output flowed out. My "pipes" were electronic pathways, and my "water" was flows of electricity, and my water flowed a hell of a lot faster than the plumber's did, but we were engaged in very similar enterprises.

Having engineered hundreds of such systems, I am no more inclined to attribute intelligence to the circuits I built than is the average plumber to believe that toilets "know" when they need to dump the users' poop down the drain.

Lest you think I am stretching an analogy too far, do you realize that it is entirely possible to create a digital computer using metal pipes and water? For instance, to create an AND gate, one would join two pipes to a valve that would only let water through if water were flowing down both pipes. An OR gate would be implemented by a vale that let water through if water was coming down either of its connecting pipes. An XOR gate would open if water came down one pipe or the other, but not both. One could connect such logic gates in any complex order one wanted, and then, by pouring water into various "input" pipes as one chose, get this system of pipes to "calculate" whatever output one wishes. A series of output buckets at the terminus of the pipes would wind up either filled or not filled, and each bucket could be read off as a binary digit of the answer to the problem one wished to solve.

Why don't we see such "plumbing" digital computers? Well, because the space they would take up would be enormous, the cost of the piping would vastly exceed the cost of etching circuits in a chip, and water moves much, much slower than electrons, so we would wait a lot longer for our answers.

But it would be entirely practical to set up a "plumbing computer" that could, say, add any combinations of the numbers one through four. Let's say we made our pipes transparent, and you could watch how water flowed through them, and how the valves at various junctures handled their "inputs." If you saw a "user" pour water into various input pipes, and then saw these mechanisms operate to produce their output, and then were asked, "So, does this plumbing system know how to add numbers?" I think you would be inclined to say, "What?! No, the pipes and valves  are just mechanically obeying the laws of physics, and it is only the plumber who set them up who knew how to use them to add numbers."

Our current electronic calculators are in essence no different from the plumbing system I described, except in that their pipes are much smaller and their "fluid" circulates much faster. I believe it is only the invisibility of these small pipes and the tremendous velocity at which their "fluid" passes through them that leads some people, people who don't understand that computers are just sophisticated plumbing systems, to postulate that they, e.g., "know" how to play chess.


  1. Great post. I think this is a much more powerful argument than Searle's Chinese Room, because we can actually picture pipes adding up combinations of the numbers 1 through 4. So we can really "see" the thing mentally, and conclude that there's no thought occurring.

    1. Thanks. To be modest, I should point out that Leibniz got here long before me!

  2. Yes. One could of course also argue that the human mind is of the same construction, just with many more and/or/xor gates. As I'm sure you know, a computer program can be made to behave differently to the same inputs, using pesudo-random numbers (which can be made arbitrarily close to genuinely random). This is not merely a parlor trick; google monte carlo analysis, for example.

    So, I'm grasping a bit to understand what point you're making, or, depending upon what it is, whether it is valid.

    1. "One could of course also argue that the human mind is of the same construction..."

      Of course. And one could argue the moon is made of cheese. But philosophically speaking the former argument has been shown to be fallacious: the mind CANNOT be just a physical computer.

      "As I'm sure you know, a computer program can be made to behave differently to the same inputs, using pesudo-random numbers..."

      Uh, and?

  3. Wow, this is so very strange. As you may know, I'm an electronics and computer technician (well I was, anyway). This is almost exactly how I used to think about electronic and digital devices, and it is almost always how I explained such things to the layman. I would end by saying, "now imagine the same system, only instead of water flowing, it is electrons; and instead of pipes, it is conductors". Obviously, it's far easier to explain this if you begin with component-based analog circuits, then move to ICs, and then onto digital (at least that is always how I went about it), but it really is all the same idea (getting electrons to flow in such a way to produce the desired output).

    I will admit, I never thought to apply this to the case of intelligence, which is surprising because it's such a simple logical step. Great insight here! Even if it wasn't you who originated it.


Distraction Deterrents in Small Contexts

"distracted from distraction by distraction" - T.S. Eliot I've been reading a little on how Facebook and other social netwo...