I haven't had much time for blogging lately, so rather than post my musings, here are some questions. I credit these to a combination of Iain M. Banks, r0ml, and the Long Now foundation Please comment and post a link to your blog if you write about one of these.
What kind of a program would take one hundred years to write? How would one manage such a project? How would you manage planning and estimating at that scale?
What if you had to write a program that would only be run once, but was supposed to run forever - could never, ever crash, notwithstanding hardware failures? That was expected to outlast humankind on earth? What would such a program do? How would you test it?
What if you had to write a program that would be maintained for ten thousand years - how would you factor it so that the lower levels could still be improved without breaking anything? What would the release process for modules look like? Imagine that you had inherited a program that was ten thousand years old but had never been designed to be maintained this way?
Finally - how does thinking about these problems of heretofore impossible scale affect the way you write programs today?
Update: I forgot to mention Alan Perlis's Epigram #28.
4 days ago