Future of computing [Was: Re: error discription and solution]
On 3/6/2014 10:25 AM, Chris Uppal wrote:
Eric Sosman wrote:
The interesting question, I think, is What Happens Tomorrow?
Will quantum computers or thought-directed computing or positronic
brains change things as fundamentally as they have changed since
Mel? Will the Best Practices we promote today be dismissed as just
so much primitive bunkum? Naturally, I don't know -- but I wouldn't
bet against it ...
Nor I, but also I think the process has already started, in a small way, and
has largely been missed. No, I'm not talking about multi-core processing (or
variants on that theme). The pendulum has swung back, and efficiency /should/
now be of first-tier interest -- not so much for saving time, but for saving
/energy/. Only desktop machines can ignore their energy use; servers and
"devices" are (in their very different ways) much more sensitive to power
(Topic drift severe enough to be called "topic lurch"):
Hadn't thought of that, specifically, but you may be right
about energy expenditure changing the whole face of computing.
Years ago I read an article (in Scientific American, maybe?)
about thermodynamically efficient computers, in which the authors
maintained that such computers would have to be reversible: Apply
a positive bias voltage to the components and the computation runs
forward, apply a negative bias and it runs backward.
(The article presupposed that information-theoretic "entropy"
a la Shannon was equivalent to the thermodynamic "entropy" of Carnot
et al. I wasn't the least bit sure of the equivalence, but later
read a transcript of an address by Richard Feynman in which he
seemed to take it as axiomatic. Feynman's Nobel Prize collection
is larger than my own, so I'm inclined to take his word for it.)
Anyhow, if efficient computation has to be reversible, what
can we deduce about an efficient programming language? One
immediate consequence: NO ASSIGNMENT OPERATOR, because such an
operation wipes out the former contents of the target and is
thus not reversible. Start thinking about programming entirely
with exchange operators, and today's Best Practices start to
look somewhat beside the point ...