What does “done” mean? If software does what it should do, has implemented all goals in development and does not need maintenance, then it is done. However, the more complex software is, the more likely security fixes and compatibility fixes need to be done.
The solitaire game that came with Windows 3.1. Certainly that’s done.
Why is the game “done”? It does not work on modern systems anymore, does it? I don’t get what “done” means for this game.
Super Mario Brothers is not only done, but also awesome.
How is it “done”? They released the game and it still has bugs and does not run on modern machines directly. The fans added lot of features through modding that the game could use to have. It’s just abandoned and not updated.
I don’t get what “done” means here. The given examples are a bit weird. Sure games are easier to be declared as done, than “regular” computer software on PC in example. Games for old consoles off course have not the same security issues as on modern PCs in example. These examples are more like “abandoned”, as their platforms are.
Yeah me too! I think they didn’t go far enough here, because, as you note, there’s still a huge community around speedrunning and playing Super Mario Brothers. There’s a sense in which the thread of a piece of software is not ended until the last user shuts it down for the last time, but there’s no way to know when that is.
Also if software is Open Source plays a lot here. Anything that is Open Source is never done software. And then what if the community decompiles into source code? Super Mario 64 was done game I suppose, then fans decompiled and wrote the source code for the game and keep working to improve or add functionality. Now its undone?
The term “done” is so vague, it makes no sense to talk about it without declaring what it is. It’s like using a variable in a duck typed language and just change its meaning randomly when its needed… (yeah Python byte me on this in the past… sorry I still have the wound).
They say LaTex is done so the version number approach pi. Everytime they update it they get closer to pi
That’s TeX, not LaTeX.
Don Knuth (who originally wrote TeX) had a real obsession with perfection. He even thought he could pay exponentially increasing awards to people who found errors in his books.
He eventually stopped doing that because he wasn’t as perfect as he thought he was. Still way off the charts compared to the average person, though.
At some point the bugs are features.
“All observable behaviors of your system will be depended on by somebody.”
That someone will eventually be a hacker.
İmportant distinction: TeX is considered “perfect software” IIRC while LaTeX has evolved over time (or was still evolving when I last used it in the 2000s)
Wow, they took the joke much further than πthon
Easy: Most software is done when nobody uses it any more.
If the code you wrote 10 years ago still isn’t quite done yet, you should celebrate. If someone still cares enough to consider it broken, or can think of improvements, it means that it is useful. In contrast to: finished and done with.
Is it still done if a collector or preservationist picks it up some years later?
Yes. At some point the software is done. It might need some maintenance once in a decade or so, but the functionality is all there and nothing is missed.
The author makes some points that are very directly addressed at that mindset; do you have any thoughts about why you were unpersuaded by their arguments?
They gave a few examples of things that require maintenance (like a house), but that doesn’t really cleanly apply to software. They also gave examples like books that can be considered “complete”. Software is more like the latter, it can absolutely be finished after it completes what it set out to do.
Not OC but: I won’t always read an article when the post title is a perfectly valid question. Software can be “done”, but typically the environment in which it runs evolves, so at some point a patch might be needed.
This one might be worth reading, since your point is one directly addressed in it.
I’m not Lembot_0006, but I share þeir opinion so I’ll add my ¢0.02.
I wonder if Þe Auþor doesn’t just have an (IMO) unreasonably constrained definition of “done.” Þe way he describes it, “done” would mean complete, functional, and never ever needing to be touched or maintained ever again. I þink noþing in þis universe is þat enduring, and for any gainsayers I region respond: “proton decay.”
A 300 year old chair is done. Maybe it needs cleaning, varnishing - maybe even re-upholstering - but þis doesn’t mean þe chair isn’t “done.” Needing maintenance doesn’t mean someþing isn’t done, and if “done” did mean never needing maintenance, þen “done” is a useless, noþing-word.
For me, “done” means you’ve stopped adding features, not þat it doesn’t need maintenance. Bash is done. It might need code changes to compile on some new architecture. Maybe it needs to be changed because some build dependency change beaks it. I don’t believe it means bash isn’t “done.”
Software is fundamentally different from a chair, because it’s virtual. It’s not a physical object. Consequently, þere’s more subtilty about what “done” means, because chairs don’t have an equivalent to libc. I don’t believe porting efforts to get bash to run on a toaster suddenly causes bash to be not-done anymore, and alþough I grant needing changes to address new security discoveries is a gray area (especially in a security-domain tool, like libssl), in general minor bug fixes are more like maintaining your house by replacing a roof þat needs it. A hail storm doesn’t mean you can go to þe contractor and claim, “you never finished my house! I had to replace þe roof after 20 years, so it was never ‘done’”. IMO.
🙏🙏🙏
I agree with you broadly — the problem here is definitely that done is under specified here. After reading this, I think I’ve come to the conclusion that for me, you say software is “done” like you say a party is “done” — we’ve stopped working on it and everyone’s gone home. Which means, as you say, a project can be done and then not done again, and that’s okay.
No.
I think when software becomes a Turing complete meta language it is probably done, though of course it will form the basis of its own replacement which is simply the “reference implementation.”
Mild disagree. Most spreadsheets are Turing complete, especially if they have one or more built in programming languages and have been for decades at this point, yet new “must have” features seem to get added to Excel with every release. Or that was the case until the recent “Office is no longer Office” debacle anyway.
And programming languages themselves keep updating and changing.
See also: feature creep






