Live data from Hacker News

Ask HN: Is there any software that can be considered finished?

news.ycombinator.com

1–10 of 26 posts

Ask HN: Is there any software that can be considered finished?

#1
Hello all,

We recently had a discussion at work about how software decays. That is, if one does not actively work on a piece of software it will eventually fall into ruin. This can happen e.g. because expertise is slowly rotated out of the business, dependencies break or the software can't be run on newer operating systems.

This begged the question: Is there any software that is essentially done? Where the last commit to the code base was done eons ago and where we expect this software to work for the foreseeable future.

The closest thing I can think of is projects that are feature complete. But they still need active patching.

Cheers

Re: Ask HN: Is there any software that can be considered finished?

#4
post #3

ls, cd and so on. Small tools with limited features. Unix approach.

Something like ls still relies on sys-calls. If they change in the future someone would have to still update it right?

So even if you have a working C-compiler in the far future, so that you can compile ls on new operating systems or whatever, even this simple application requires maintenance?

Re: Ask HN: Is there any software that can be considered finished?

#6
post #3

ls, cd and so on. Small tools with limited features. Unix approach.

Something like ls still relies on sys-calls. If they change in the future someone would have to still update it right? So even if you have a working C-compiler in the far future, so that you can compile ls on new operating systems or whatever, even this simple application requires maintenance?

[deleted]

Re: Ask HN: Is there any software that can be considered finished?

#7
post #6

Earlier quoted context omitted.

Something like ls still relies on sys-calls. If they change in the future someone would have to still update it right? So even if you have a working C-compiler in the far future, so that you can compile ls on new operating systems or whatever, even this simple application requires maintenance?

[deleted]

[deleted]

Re: Ask HN: Is there any software that can be considered finished?

#8
Bryan Cantrill:

http://dtrace.org/blogs/bmc/2004/08/28/the-economics-of-soft...

>> software does not wear out. That isn’t to say that software never breaks (or isn’t broken to begin with), but software that works can work in perpetuity. A favorite example of mine is troff. The source for troff is some of the nastiest stuff ever written — but it works. It hasn’t been touched in years, and probably will never be: it’s written in a portable language (C) and relies only on the most basic OS facilities. troff will work indefinitely — it will never wear out.

>> (The tragic footnote to troff is that its author, Joseph Ossanna, died tragically in 1977; the very fact that his software is humming along perfectly more than a quarter of a [century] after his death is a testament to software’s unique imperviousness to wear.)

Re: Ask HN: Is there any software that can be considered finished?

#9
post #3

ls, cd and so on. Small tools with limited features. Unix approach.

Something like ls still relies on sys-calls. If they change in the future someone would have to still update it right? So even if you have a working C-compiler in the far future, so that you can compile ls on new operating systems or whatever, even this simple application requires maintenance?

Then it depends on what you consider "finished". If your underlying system changes, it's a totally different problem for me.

Re: Ask HN: Is there any software that can be considered finished?

#10
post #3

ls, cd and so on. Small tools with limited features. Unix approach.

Something like ls still relies on sys-calls. If they change in the future someone would have to still update it right? So even if you have a working C-compiler in the far future, so that you can compile ls on new operating systems or whatever, even this simple application requires maintenance?

> relies on sys-calls

No, the rely on POSIX[1][2]. Syscalls are an implementation detail handled by the compiler. Programs (like 'ls' and the rest of coreutils) that conform[3] to the POSIX standard should continue to work in future POSIX compatible operating systems.

If future operating systems deliberately introduce changes that break POSIX, then some work will be required to port the programs to the new environment. However, this type of porting process is really implementing a new feature. The original finished version isn't affected and shouldn't need maintenance.

[1] https://en.wikipedia.org/wiki/POSIX

[2] Other standards are also important, but I am only mentioning POSIX for brevity.

[3] https://github.com/coreutils/coreutils "Like the rest of the GNU system, these programs mostly conform to POSIX, with BSD and other extensions."

Post reply on HN