Live data from Hacker News

Software design gets worse before it gets better

tidyfirst.substack.com

71–80 of 145 posts

Re: Software design gets worse before it gets better

#71
post #47
post #34

Why does that make me think about x11->wayland core?

Because Wayland is worse than X11. Unfortunately, it is true that sometimes after your software design gets worse it gets better, but other times after it gets worse it gets worse. It's not correct to assume that something will get better just because it is currently worse.

It seems the other way around: x11 got worse and worse, then wayland happened (wayland core).

Re: Software design gets worse before it gets better

#72
post #50

Earlier quoted context omitted.

> Monotonic-only improvement is the path to getting trapped. Take chances, make mistakes, and get messy. The evolution disagrees.

Evolution regularly ends up in local optima that it struggles to get out from. Species go extinct all the time when there's no evolutionary path that solves its problems.

And on the flip side, a sufficient abundance of resources and/or lack of predators mean non-optimal species can procreate, and thus find other local optima.

Re: Software design gets worse before it gets better

#73
post #68

Earlier quoted context omitted.

Evolution regularly ends up in local optima that it struggles to get out from. Species go extinct all the time when there's no evolutionary path that solves its problems.

I didn't mean to say that evolution avoids local optima, but I wantend to say that it doesn't have to get "trapped", in the sense that it was able to produce such complex organisms as humans..

Because of the incremental nature (it can't think moves ahead) only a tiny percentage of all viable life forms can be produced by evolutionary processes. Species forged by their ruthless struggle for survival. Maybe humanity will be the first species to escape evolutionary constraints, but maybe humanity is like the many other species that burn brightly but briefly. The universe seems to be cold and empty and devoid of life. Perhaps evolution is very good at producing cockroaches and not that good at creating intelligent life.

Re: Software design gets worse before it gets better

#74
post #61

What so often happens is you make a plan like this, then business priorities change/things took longer than expected/people leave or join and then you wish you never started...

The absolute highlight of my work is when I get a new projected 'scaffolded' (bad choice of words, but I was using it before it became a buzzword)

You know when you get to the point your data structures just make working on the code a breeze, when your library functions provide all the right low pieces to whip up new features quickly and easily with names and functionality that actually fit the domain... Basically, when all the pieces 'gel' :-D

That for me is programming nirvana :-D

Re: Software design gets worse before it gets better

#75

I don't understand that this article at all or what it means by worse. It clearly defines what better means: that the architecture is such that implementing a feature is no harder than it absolutely has to be. So if it has to get worse first that means initially we're making it harder to implement the desired features? Why are we doing that? Are we counting a half-done, under-construction state? It's harder to implem…

I don't think it holds up to much scrutiny. I think it's mixing up "less improvement than expected for the effort" with "actually measurably worse".

Re: Software design gets worse before it gets better

#76
post #70
post #51

Earlier quoted context omitted.

Evolution is a satisficer not optimizer. All major trophic level breakthroughs are powered by evolving a reserve of efficiency in which mult-step searching can occur. multicellular life, collaboration between species, mutualism, social behavior, communication, society, civilization, language and cognition are all breakthroughs that permitted new feature spaces of exploration that required non-locally-optimal transiti…

I didn't say that evolution finds the optimal state, just wanted to highlight how far it was able to go, much farther it seems.. (like evolution of the eye) But your comment was refreshing, could you briefly expand on the "multicellular" life part? Did you mean that it enabled more non-locally-optimal transitions, or that it required them to appear?

You quoted this part,

> Take chances, make mistakes, and get messy.

But then seemed to indicate evolution disagrees.

I might be misunderstanding your point, but it sure seems like, evolution tries a bunch of stuff, and whatever reproduces kinda wins.

That seems like, take chances, make mistakes, get messy. That seems like the core of evolution.

Could you clarify or refine what you’re saying? The two seem at odds.

Re: Software design gets worse before it gets better

#77
post #70
post #51

Earlier quoted context omitted.

Evolution is a satisficer not optimizer. All major trophic level breakthroughs are powered by evolving a reserve of efficiency in which mult-step searching can occur. multicellular life, collaboration between species, mutualism, social behavior, communication, society, civilization, language and cognition are all breakthroughs that permitted new feature spaces of exploration that required non-locally-optimal transiti…

I didn't say that evolution finds the optimal state, just wanted to highlight how far it was able to go, much farther it seems.. (like evolution of the eye) But your comment was refreshing, could you briefly expand on the "multicellular" life part? Did you mean that it enabled more non-locally-optimal transitions, or that it required them to appear?

I think cooperation is never a locally optimal strategy. Somebody allways gets to pick second at the prisoner's dilemma table, and locally optimal behavior is to eat the trusting idiot.

Takes a lot of luck to evolve cooperation multiple times at once, much more likely to happen in a situation where the selection pressure is lower, not higher.

Re: Software design gets worse before it gets better

#78
post #49

To boil it down simple: People are vaguely good and competent, they leave systems in a locally-optimal state. In general only changes that are "one step" are considered, and they allways leave things worse when you are currently in a locally optimal state. A multi-step solution will require a stop in a lower-energy state on the way to a better one. Monotonic-only improvement is the path to getting trapped. Take chanc…

TL;DR you can't make an omelette without breaking eggs?

Re: Software design gets worse before it gets better

#79
That’s the lesson we learned: implement the most simplistic thing first with just a bit of basic principles like separation of concerns. Humans are terrible at predicting where a system will expand in the future. Therefore just stay out of your own way by not over building!

Re: Software design gets worse before it gets better

#80
post #76
post #70

Earlier quoted context omitted.

I didn't say that evolution finds the optimal state, just wanted to highlight how far it was able to go, much farther it seems.. (like evolution of the eye) But your comment was refreshing, could you briefly expand on the "multicellular" life part? Did you mean that it enabled more non-locally-optimal transitions, or that it required them to appear?

You quoted this part, > Take chances, make mistakes, and get messy. But then seemed to indicate evolution disagrees. I might be misunderstanding your point, but it sure seems like, evolution tries a bunch of stuff, and whatever reproduces kinda wins. That seems like, take chances, make mistakes, get messy. That seems like the core of evolution. Could you clarify or refine what you’re saying? The two seem at odds.

[deleted]
Post reply on HN