Hacker News new | ask | show | jobs
by BraveNewCurency 1400 days ago
> If it worked from the start, it wouldn't need to be fixed later.

True. But you ignore the fact that NO SOFTWARE IS EVER DONE. Software always has bugs, and even if it didn't, it will bitrot as the business needs change.

In theory, it's better to have 100% working software. In practice, that never happens (or only happens for a few weeks at best). Eventually the software needs to be changed. In that case, software that is "written for humans" will always be easier to change than "software that used to work, but now we need to change it, but nobody understands it".

4 comments

SOFTWARE CAN AND SHOULD BE DONE. Complicated and bloated systems are never done, but not every system (program/tool/etc) needs to be big, bloated, ugly and complex. It does not matter if the software is 'written for humans', if it's too complicated it won't be changed and/or fixed ever (basically)

On that note, Zawinski's Law:

“Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.”

This is mostly true, but it does not have to be. :(

  "Software is never rewritten. Projects last longer than expected; programmers get bored or burned out; management moves on the newer challenges. The attitude of ‘good enough’ reflects reality.

  Instead of being rewritten, software has features added. And becomes more complex. So complex that no one dares change it, or improve it, for fear of unintended consequences. But adding to it seems relatively safe. We need dedicated programmers who commit their careers to single applications. Rewriting them over and over until they’re perfect. Such people will never exist. The world is too full of more interesting things to do.

  The only hope is to abandon complex software. Embrace simple. Forget backward compatibility." - Chuck Moore
> We need dedicated programmers who commit their careers to single applications. Rewriting them over and over until they’re perfect.

I love this.

Pseudocode is the easiest to change, but also literally does nothing.

Software in practice needs to run to classify. Without that it's just a .txt file that won't compile.

Otherwise you're talking about a standard, a protocol, a document with no program. Instructions for humans how to program computers.

> True. But you ignore the fact that NO SOFTWARE IS EVER DONE.

that is just false. I've seen plenty of one-use software - made specifically for trade shows, exhibitions, etc. which were never reused again because the entire software was the logic specific to that particuliar exhibition.

there is also a few thousand gigabytes of old game ROMs and abandonware on the internet which are all perfectly done software.