Live data from Hacker News

Simple Software Manifesto

arewesimpleyet.org

1–10 of 90 posts

Re: Simple Software Manifesto

#3
> There is only one correct way to do something .... so take great care in doing it right the first time.

I hear this a lot, in various contexts, and I even used say it a lot. But this has actually stopped making sense for me. I don’t think I’ve ever genuinely seen a case where there is only one obvious way to do something, or that there’s a way that is obviously the “right” way. Everything non-trivial is chock full of trade offs and hidden corners that could make it obviously wrong in hindsight.

Does someone disagree? Can you share your perspective.

Re: Simple Software Manifesto

#4
This also reminds me of OpenBSD, in particular Ted Unangst. He's famous for deleting features that add complexity without any significant benefit or are only useful in a small number of edge cases. For instance, the replacement of sudo (with its massively complicated configuration syntax) with doas.

Re: Simple Software Manifesto

#5

> There is only one correct way to do something .... so take great care in doing it right the first time. I hear this a lot, in various contexts, and I even used say it a lot. But this has actually stopped making sense for me. I don’t think I’ve ever genuinely seen a case where there is only one obvious way to do something, or that there’s a way that is obviously the “right” way. Everything non-trivial is chock full…

This certainly seems a bit too idealistic. Not only is a problem with a single correct solution a rare thing indeed, but in my experience complexity often springs from shifting priorities and requirements for the software coming from sources outside of our control (ie, management or the client), and digging in to determine the most elegant solution is often not within the time budget for completing the project.

While I agree that simplicity is always better than complexity, in practice it is an abstract target rather than a hard requirement.

Re: Simple Software Manifesto

#6

> There is only one correct way to do something .... so take great care in doing it right the first time. I hear this a lot, in various contexts, and I even used say it a lot. But this has actually stopped making sense for me. I don’t think I’ve ever genuinely seen a case where there is only one obvious way to do something, or that there’s a way that is obviously the “right” way. Everything non-trivial is chock full…

I agree with you. If there is one correct way, then software writers are fungible, and software can be built with commodity parts. I don't think this is true. If it is, then we have an awful hard time finding correct ways; just look at how many sorting algorithms there are.

Re: Simple Software Manifesto

#7

> There is only one correct way to do something .... so take great care in doing it right the first time. I hear this a lot, in various contexts, and I even used say it a lot. But this has actually stopped making sense for me. I don’t think I’ve ever genuinely seen a case where there is only one obvious way to do something, or that there’s a way that is obviously the “right” way. Everything non-trivial is chock full…

Completely agree. I'd change this whole line to something like:

"There is never only one way to do something. You can't know which is correct, so go for the simplest option that is easy to change later"

Re: Simple Software Manifesto

#9
Every new generation of programmers starts a crusade to simplify without first trying to understand why we're not "simple" despite the previous generation having done the same. Of course, one possible explanation could be that without a constant crusade for simplicity we'd be in a far worse place; the "permanent revolution" explanation. But is this the right explanation? Turing Award winning computer scientist Fred Brooks had this to say:

> The complexity of software is an essential property, not an accidental one. Hence, descriptions of a software entity that abstract away its complexity often abstracts away its essence. (No Silver Bullet, 1986)

> Complexity is the business we are in, and complexity is what limits us. (No Silver Bullet Refired, 1995)

The reason "complexity is the business we are in" is that software doesn't live in a vacuum. Like the economy and like bureaucracy, it is built to serve a certain social purpose. Of course, there needs to be a constant struggle not to over-complicate, but it should be done with the understanding that over-simplification is just as problematic.

Re: Simple Software Manifesto

#10
Don't #2 and #3 contradict?

> Constraining the user to simple tools encourages creativity and allows the system to be more quickly understood

> There is only one correct way to do something, because two ways would be more complex

When you encourage creativity with combinations of simple tools, creative people will come up with multiple ways of doing things.

Post reply on HN