Python was designed (was Re: Multi-threading in Python vs Java)

Steven D'Aprano steve+comp.lang.python at pearwood.info
Thu Oct 17 23:56:58 EDT 2013


On Thu, 17 Oct 2013 19:08:30 -0700, Mark Janssen wrote:

>>> It's like this.  No matter how you cut it, you're going to get back to
>>> the computers where you load instructions with switches.  At that
>>> point, I'll be very much looking in anticipation to your binary-digit
>>> lexer.
>>
>> Why stop there? If you go back far enough, you've got Babbage with his
>> Analytical Engine and his laboriously hand-cast analog gears.
> 
> And there you bring up the heart of it:  the confusion in computer
> science.  thank you.  Babbage's differential engine is not doing
> *computation* , it is doing *physics*.

That's certainly a good example of confusion, but it's not computer 
science's, it's yours.

[Aside: I specifically didn't mention the difference engine because it 
wasn't a full-blown computer, merely a calculating device like an abacus, 
only more complicated. Babbage's Analytical Engine, on the other hand, 
would have been a real, Turing Complete, fully general purpose 
programmable computer, had he ever finished it.]

The point is, *everything* we do is "merely physics", since to do 
something means to have matter and energy interacting, and that is 
physics. Yes, Babbage's Analytical Engine was merely "doing physics" in 
the same way that an iPhone or IBM mainframe is "doing physics" -- or 
your brain, for that matter. All four examples are reductionism gone mad. 
The fact that the Analytical Engine used mechanical gears, while iPhones 
and mainframes use electrons drifting across doped silicon, and the brain 
uses tiny electric currents in a gelatinous chunk of meat of Byzantine 
complexity made from tens of thousands of chemicals, is the *least* 
interesting part of the exercise, from the perspective of computer 
science.

(Other perspectives are of value. For instance, how does a simple 
molecule like CH₃CH₂OH affect the computations in the brain in such a way 
that leads to punch-ups out the front of King Street nightclubs at 3 on a 
Saturday morning? Inquiring minds want to know!)

One of the insights of computer science, and obviously one that you have 
misunderstood, is that the *medium doesn't matter*. Computation is an 
interesting and important phenomenon in its own right, and it doesn't 
matter[1] whether you implement it using electric current flowing through 
wires and values, in silicon chips, using mechanical gears, water flowing 
through pipes, in the differential growth of DNA-based bacteria -- yes, 
seriously, look up "DNA computers" -- or in messy slabs of complicated 
meat. Or even using a mathematical abstraction like Conway's Game of Life.


> We must draw a line somewhere,
> because the digital realm in the machine is so entirely separate from
> the physics (and even the physical hardware), that I could make a whole
> other universe that does not conform to it.  It is a whole other
> ModelOfComputation.

But it is precisely because computation is independent of the physical 
media that it is performed on that we *should not* reject Babbage's 
Analytic Engine. It simply doesn't matter that it uses mechanical gears 
instead of doped silicon. That just means it's slower and noisier, not 
that is is any less performing computation.



[1] Except for such boring matters as efficiency and speed.

-- 
Steven
 



More information about the Python-list mailing list