aleph3: (Default)
[personal profile] aleph3
Recently I re-read Dune; I noted that my tastes have shifted since I was eight, and my main complaint is now "too many knife-fights, and not enough lectures on ecology". Also, I'm frustrated that the series holds up a long-term project carried out by a culture - the Fremen's multigenerational attempt to change Arrakis from an arid world to a moist Earthlike one - and then completely drops it, for several more books of frustrating Great Man Theory.

Anyway the point is that really long-term projects are intriguing. What kind of software project, I wonder, would take a thousand years? That's about twenty times as long as we've even had software at all!

I came up with one obvious immediate answer: homeostasis. For a piece of software to simply continue executing with the same logic would still require constant work: either creating wrappers so that newer systems can interact with it, or actually porting it to new platforms; a task requiring a formidable array of tests, or, if I can indulge a fond hope, a rigorous enough set of correctness criteria that the port's faithfulness can be checked by a theorem-prover. Honestly, if you really want it to survive for a thousand years and still map the same inputs to the same outputs, while still moving it from medium to medium and language to language, I don't see that much short of rigorous proof of at least core components can be avoided. But then, full disclosure: formal methods are my background.

The other answer would be something so enormous that it would actually take that long to finish, and there my imagination fails me. Control system for a Dyson sphere? For a functioning Biosphere-Two-type artificial ecosystem that could sustain a substantial human population? But that's just complexity that comes from being coupled to complex physical systems. What sort of software would just be, of its own right, so complex that it would take a thousand years start to finish?


aleph3: (Default)

August 2010

29 3031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags