I've been thinking about eternal computing not so much in the context
of software, but more from a cultural level.

Software ultimately runs on some underlying physical computing
machine, and physical machines are always changing. If you want a
program to run for a long time, the software needs to be flexible
enough to move from host to host without losing its state. That's more
of a requirements statement than an insight, and it's not a
particularly steep hurdle (given some expectation of "down time"), so
I'll leave it at that for now.

I recently stumbled across the work of Quinlan Terry, whom I had never
heard of until I did a search for an inscription in a print that
caught my eye. I found this essay helps capture what makes him
different from most people designing buildings today:

http://www.qftarchitects.com/essays/sevenmisunderstandings.php

I don't make any claims that these observations have anything do with
software, except in a more general sense of the cultural values that
influence design. I suppose the pitfalls of trivializing something
because it seems familiar applies to software as well as any other
design discipline.

We have an engineering culture that pursues change at an ever
increasing rate. The loss of eternal values in physical architecture
is sad indeed, especially in the context of urban sprawl and the now
rampant deterioration of buildings that were built a generation ago,
to last only a single generation. The ongoing global financial mess is
arguably a result of short-term thinking.

Economics matters. One of the intriguing facets of computing is the
incredible amount of money the industry generates and consumes. And
nowhere is short-term thinking more generously rewarded than in the
continual churn of new computing devices and software. Personally I
find it overwhelming and I have been trying to keep up for 30 years.
Clearly it's not slowing down.

I think there's a good reason for the ever-increasing rate of change
in computer technology, and that it is the nature of computation
itself.

Seth Lloyd has a very interesting perspective on revolutions in
information processing:

http://www.edge.org/3rd_culture/lloyd06/lloyd06_index.html

If you consider that life itself is computational in nature (not a big
leap given what we know about DNA), it's instructive to think about
the amount of energy most organisms expend on the activities
surrounding sexual reproduction. As our abilities to perform
artificial computations increase, it seems that more and more of our
economic life will be driven by computing activities. Computation is
an essential part of what we are.

In this context, I wonder what to make of the 10,000 year clock:

http://www.10000yearclock.net/learnmore.html

First, I'm skeptical that something made of metal will last 10,000
years. But suppose it would be possible to build a clock that lasts
that long. If in a fraction of a second I have a device that can
execute billions of instructions, what advantage does stone-age (or
iron-age) technology offer beyond longevity?

I think the key advantage is that no computation takes place in
isolation. Every time you calculate a result, the contextual
assumptions that held at the start of that calculation have changed.
Other computations by other devices may have obviated your result or
provided you with new inputs that can allow you to continue
processing. Which means running for a long time is no longer a simple
matter of saving your state and jumping to a new host, since all the
other hosts that you are interacting with have made assumptions about
you too. It starts to look like a model of life, where the best way to
free up resources is to allow obsolete hosts to die, so that new
generations can continue once they've learned everything their parents
can teach them.

So instead of a model of computation based around industrial metaphors
from the 19th century (with "registers" and "stores") we need to
recognize that computer science is more than an engineering
discipline. That should be apparent by now, given the extent to which
almost all human endeavors now depend on computers, but there's
something more important.

We often see people lamenting the fact that software development isn't
more like engineering, where there are blueprints and top-down design
processes that can produce predictable results with realistic cost
estimates. Instead, we should understand that software is different
because it is fundamental. Software serves industry, but at the same
time, it has a profound impact on the way our social organizations are
constructed. Over time, the computational abilities of organizations
will move to where we can lead them with software. The challenge is to
build upon new metaphors that are not unduly constrained by the
assumptions of the past.

Cheers,
Steve

_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to