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