HACKER Q&A
📣 smarri

How to ensure a software project lasts for generations?


I've been thinking about how someone would create a software project and ensure it lasts indefinitely. How would you tackle this? Distributed technology? Secure physical location like a bunker or in orbit? I find the indefinite challenge an intriguing one.


  👤 h2odragon Accepted Answer ✓
Things that are needed should be re-written frequently, to keep them up to date with the hardware and keep the human side of the institutional knowledge they encode alive and fresh. see all the "no one can touch the codebase that no one understands and the business depends on it" stories.

General advice can be derived from looking at things that have lived a long time: make your own interpreter/VM, build the application in that language, build the VM for every platform you want to support. Use an extensible "plugin" friendly architecture as far as possible. etc. Others have done real research on it.

It sounds like you dont have a specific purpose in mind, which means we get to speculate on all sorts of wild ideas for the fun of it. Best kind of project :)

Keeping hardware running in orbit is probably not as easy as you might assume. I dont know anything about it but theres a hell of a lot of ways things have gone wrong on satellites and I'm betting we haven't found them all yet.

also makes me think of "digital prayer wheel" email signatures... just how complex a piece of code do you want to run? Protective invocations against the darker corners of the mandelbrot set are often only a few instructions long.


👤 WheelsAtLarge
There are some software that will always be needed. So you need to focus on one of those and you need to create a guiding organization that will define and rewrite the software as it moves through time. Also, you need to make sure that the guiding organization is properly created so that as it moves through time the software moves too.

I would be willing to bet that Linux is a software package that will be around as long as computers need an OS.

One software that people might not think about is the language COBOL. It's out of date but there are millions of lines of code that companies don't want to rewrite. So a company that could create a compiler that works on the latest hardware would survive many generations.