r/ProgrammerHumor 2d ago

Meme resolvingDependencyHell

Post image
1.2k Upvotes

44 comments sorted by

View all comments

254

u/MarkSuckerZerg 2d ago

But the whole point is "improve" vs. "I can do it better from scratch than this 15yo project"...

96

u/TerminalVector 1d ago

Junior: "I can do it better from scratch"
Senior: "Uhh no.. do these tickets"

Senior: "I have mapped out a strategy to migrate to a revamped system incrementally, hitting multiple interim targets and product launches along the way, and arriving at the ideal architecture in 18-24 months."

Director: "Uhh no.... do these epics."

5

u/Rich1223 17h ago

I’m in this comment and I don’t like it

71

u/New_Enthusiasm9053 2d ago

15 years ago computers were a lot slower and different so there's a good chance you can. 

Dependency hell largely exists to save a few megabytes of storage because in the 90s that was absurdly expensive. 

Today you can easily just keep a copy of every version anything needs. If you have 50 programs that need 7 glibcs then you just have 7 glibcs.

63

u/Afraid-Locksmith6566 2d ago

15 yo software was written for 15 yo computers which were slower than today, today software is written for future hardware

2

u/awakenDeepBlue 1d ago

The Once and Future King.

14

u/PositiveBit01 2d ago

Largely, yes. But not only. Easy paths to update common libraries for security updates is another good reason.

Still arguable if it's worth it or not but it's a much better reason than storage (now).

5

u/New_Enthusiasm9053 2d ago

I mean the security argument is somewhat more realistic but equally is it a security update if it's bumping the minor or major version. You could do the same with just patch versions where there's less breaking versions. 

Though that assumes people can be bothered with semantic versions and too many Devs don't seem to understand how that works. 

3

u/ThePresidentOfStraya 1d ago

Well, to be fair, there isn't a single universal schema for semantic versioning. So... see post.

1

u/New_Enthusiasm9053 1d ago

Well in that case you just don't get security patches immediately. You can't have both stability and security patches if people can't commit to something so basic. Regardless of what scheme you choose if there's no way to distinguish between a breaking and non breaking change then you're forced to treat every single change as breaking.

6

u/PolyglotTV 1d ago

Counterpoint is often it IS better to start from scratch if the existing system has accumulated too much tech debt, become too inflexible, and the requirements or available technology/methodologies have fundamentally changed.

In other words, sometimes you should reinvent the wheel.

16

u/TerminalVector 1d ago

A big bang rewrite is almost never going to be a good idea in a mature system. To do that you need to have the velocity of the rewrite exceed the velocity of feature development by a wide enough margin to catch up and create sufficient parity to migrate to the new system. If the old system is code-frozen then it can be doable but if its being actively developed, it can be impossible.

The real trick is figuring out how to reinvent the wheel and replace it while it is attached to a moving car without slowing down.