Live data from Hacker News

Software design gets worse before it gets better

tidyfirst.substack.com

91–100 of 145 posts

Re: Software design gets worse before it gets better

#91
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.

So that was a bad quote, I only wanted to address the part that mentioned monotonic-only improvement, since to me, evolution has achieved more than I'd imagine, evolving organs like the eye incrementally.

I got inspired by this article: https://writings.stephenwolfram.com/2024/05/why-does-biologi...

Re: Software design gets worse before it gets better

#92
post #63

Earlier quoted context omitted.

Wow, very well put. Any suggestions for academic papers, books, or even online resources on these topics would be greatly appreciated.

This is related, and it is the paper that lives constantly rent free in my head. I think it will retroactively be viewed as revolutionary: https://www.alexwg.org/publications/PhysRevLett_110-168702.p... Basically, intelligent behavior is optimizing for "future asymptotic entropy" vs maximizing any immediate value. How intelligent a system is then become a measure of how far in the future it can model and optimize ent…

Great paper! There are some similar ideas to this in game theory and reinforcement learning (RL):

[1]: Thermodynamic Game Theory: https://adamilab.msu.edu/wp-content/uploads/AdamiHintze2018....

[2]: piKL - KL-regularized RL: https://arxiv.org/abs/2112.07544

[3]: Soft-Actor Critic - Entropy-regularized RL: https://arxiv.org/abs/1801.01290

[4]: "Soft" (Boltzmann) Q-learning = Entropy-regularized policy gradients: https://arxiv.org/abs/1704.06440

Re: Software design gets worse before it gets better

#93
My experience is the exact opposite. To implement a new feature, I usually first refactor, make space for the new feature, improve existing design. (uphill). Then I implement the new feature as pristine and clear as possible (top). Then I face the reality, integration tests fail, I add edge cases I forgot, (downhill). And I end up at the bottom, ready to push that abomination to git and forget about it.

Re: Software design gets worse before it gets better

#94
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.

Wayland went for minmalism because one can always add things later. Unfortunately, making additions in a multi-desktop environment turned out to be kinda difficult.

In a way, the quality of the design (and implementation) is fine, but the quantity of features is insufficient and limited by social issues.

It's basically the opposite problem of systemd.

Re: Software design gets worse before it gets better

#95

Earlier quoted context omitted.

I've gotten two raises in my entire tech career for actually staying at a company, and at one of them I was laid off six months later anyway. At this point any company that doesn't want me to eventually job hop will need to have an advancement structure laid out from day 1.

A good dev I worked with was promoted to senior, due to a vacancy. They were an improvement on the decent abilities of the person who left. The CTO confided in me one day, around six months to a year after the promotion, that the dev deserved a fat salary raise because they were doing well with their new responsibilities -- but the CTO was worried that promoted dev would expect that kind of pay raise again in the fut…

The market rate is set by the competition, who may or may not choose to follow a historic trend.

Re: Software design gets worse before it gets better

#97
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…

I think "better" is ambiguous.

Better for developers? Better for users?

Better for speed? Better for maintenance? Better license? Better software stack? Better telemetry? Better revenues through subscriptions?

Re: Software design gets worse before it gets better

#98
post #97
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…

I think "better" is ambiguous. Better for developers? Better for users? Better for speed? Better for maintenance? Better license? Better software stack? Better telemetry? Better revenues through subscriptions?

At a business, all of these - a good engineer/architect has to find the right balance.

Re: Software design gets worse before it gets better

#99

Earlier quoted context omitted.

I've gotten two raises in my entire tech career for actually staying at a company, and at one of them I was laid off six months later anyway. At this point any company that doesn't want me to eventually job hop will need to have an advancement structure laid out from day 1.

A good dev I worked with was promoted to senior, due to a vacancy. They were an improvement on the decent abilities of the person who left. The CTO confided in me one day, around six months to a year after the promotion, that the dev deserved a fat salary raise because they were doing well with their new responsibilities -- but the CTO was worried that promoted dev would expect that kind of pay raise again in the fut…

The CTO was more likely being dishonest rather than stupid.

Most justifications for not giving a pay raise are carefully crafted bullshit designed to sound reasonable.

After all, if the reason is "I want more money available for me and the shareholders" you can't just say it.

Post reply on HN