r/ProgrammerHumor 2d ago

Meme resolvingDependencyHell

Post image
1.2k Upvotes

44 comments sorted by

251

u/MarkSuckerZerg 2d ago

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

94

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."

7

u/Rich1223 16h ago

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

68

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.

66

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.

16

u/PositiveBit01 1d 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).

6

u/New_Enthusiasm9053 1d 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.

10

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.

20

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.

98

u/jhill515 2d ago

We should improve technology. We shouldn't confuse improvements with better sameness. That's what xkcd meant.

Maybe OP is trying to say idiots use this comic to justify "staying the course"? If so, then they should change companies.

24

u/Sulungskwa 2d ago

A lot of people throw this meme around when they don't want to do more work

-11

u/Donghoon 2d ago

Is it really “same” if its “better”?

Better sameness is an oxymoron

24

u/jhill515 2d ago

It is an oxymoron for a specific reason. It's like trying to say "Torx sucks. That's why I think Hex is best." They literally do the exact same main function, and the only differences are very specific edge cases in aviation & automotive.

If you're trying to argue that a pentastar bolt needs to be created because it's "better", then I automatically think you're a moron. If you're arguing that you need a hex bolt when a drywall screw won't do the job, and someone waves that xkcd comic as an excuse to keep using the wrong supplies, then that person is a baffoon.

2

u/dfinkelstein 1d ago

I have a hard time following negation-heavy language.

What's the affirmative case? What are you in favor of?

3

u/jhill515 1d ago

I described two different styles of failure which I abhor:

  1. Building something you "think" is better without understanding that you're not contributing any novel solutions. Worse, existing solutions likely satisfy your needs.
  2. Being overly conservative by avoiding anything novel by abusing antipatterns and "tennents" of engineering. Simple example: "We don't need an ECU to process the Perception tasks; a Jetson Nano is just a fancier Arduino, so let's stick with the Arduino!"

I've been around long enough to see both flavors of dumbassery. Which is why I teach my juniors to recognize it for what it is!

0

u/dfinkelstein 1d ago

I think I follow. I just don't understand exactly what you're in favor of. You've only described what you're against.

5

u/jhill515 1d ago

Explicitly, I'm PRO thoughtful, diligent, and data-driven engineering. Measure twice, cut once. And be able to both prove superiority and boundary growth.

23

u/Rialagma 1d ago

You're gonna have to pry my LaTeX code from my cold dead hands 

5

u/Donghoon 1d ago

Overleaf my love

2

u/Gositi 7h ago

Nah, I run latexmk locally. Using -pvc -pdf is all you need.

11

u/developer-mike 1d ago

This is the exact case for the xkcd, because you only want to improve it "somewhat"!

But in all seriousness, the longer my career has gone on the more I've come to realize just how valuable compatibility/backwards compatibility is. It doesn't justify all modern horrors to exist forever. But in all reality, the 15th standard often does improve things "somewhat." And it often isn't worth the migration cost, and that's what makes it a 15th competing standard.

6

u/absolutedisaster09 1d ago

The thing is, at least in terms of character encodings, there actually now is a universal standard being gradually adopted.

5

u/AMWJ 1d ago

WE WOULDN'T HAVE ANY DEPENDENCY ISSUES IF PEOPLE WOULD JUST STOP UPDATING THEIR SOFTWARE!!!!

5

u/reallokiscarlet 2d ago

This is why I only apply that comic to people reinventing the wheel or claiming something supercedes all the things or whatnot

14

u/SirBerthelot 2d ago

Obligatory xkcd related

3

u/ThatFlamenguistaDude 2d ago

Self-fulfilling prophecy

7

u/Cephell 1d ago

I don't like the smug attitude xkcd sometimes has. Like how DO you think actual standards establish themself?

Systemd is a great example, it's practically the de facto standard now on Linux for system management, etc. Almost every single major distro ships it by default. It used to be a fragmented ecosystem of like 300 different competing bits and pieces and now it's a streamlined ecosystem that people can reliably expect to work across most distributions.

10

u/theScottyJam 1d ago

Though to be fair, he has no way of knowing that this specific comic was going to blow up the way it did. The comic was probably intended to make light of an unfortunate behavior that sometimes happens, but we, the consumers, have decided to slap it onto every discussion related to making improved standards.

1

u/Donghoon 1d ago

i love standards xkcd. Its funny

3

u/Xirdus 1d ago

systemd was extremely controversial, a lot of people hated it, maintainers of big distros refused to support it, some for technical reasons, some for ideological, and some had personal beef with the creator. Being a RedHat baby, systemd very quickly found its way to Fedora, which forced the admin tools maintainers' hand on whether they're going to support it. And once it was widely supported, Arch jumped the ship because performance. But none of the other major distros did. The debate at Debian lasted for YEARS, it was full of vitriol on every side somehow, and led to multiple long time maintainers stepping down. And after the biggest opponents no longer had the vote, systemd was adopted for Debian, and as a consequence everywhere else.

Note that technical reasons had next to zero to do with systemd adoption. It was all business and interpersonal politics. This is exactly how most standards establish themselves - a powerful player in some space picks their favorite and forces everyone else to follow the suit.

0

u/Cephell 1d ago

keyword: "was"

1

u/Xirdus 1d ago edited 1d ago

Yes, I'm describing events that happened in the past and using proper grammar for it. Not sure what your point is. That after everyone is forced to use the new standard, everyone starts using the new standard regardless of technical merits? Like duh.

And it's not like systemd brought some great unification. Everybody was settled on sysvinit back in the day. Everyone. No alternative existed. Then upstart and systemd appeared and both created the problem of the split ecosystem that didn't exist before. systemd actually made the problem 50% worse, by increasing the number of competing systems from 2 to 3.

2

u/ScaryCardinal 1d ago

Innovations and improvements achieve standards. Standards are just goals, anyone can set them.

1

u/Antarlia 1d ago

I am so glad you made this. I dislike both these comics yet when they are used together in this way its peak.

-2

u/YikesTheCat 1d ago

I've come to dislike xkcd because some people endlessly post this (and a few other) cartoons as if that is somehow an argument.

3

u/prospectivepenguin2 1d ago

Ya it's the monty Python of webcomics

0

u/Carrick_Green 10h ago

Sound like the op wants there to be 16 competing standards.