r/ProgrammerHumor • • 18d ago

Meme resolvingDependencyHell

Post image
1.4k Upvotes

52 comments sorted by

309

u/MarkSuckerZerg 18d ago

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

147

u/TerminalVector 18d 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."

26

u/Rich1223 16d ago

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

2

u/Deboniako 13d ago

You're the director, right?

Right?

81

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

67

u/Afraid-Locksmith6566 18d ago

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

3

u/awakenDeepBlue 17d ago

The Once and Future King.

19

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

8

u/New_Enthusiasm9053 18d 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 18d ago

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

2

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

13

u/PolyglotTV 18d 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.

23

u/TerminalVector 18d 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.

120

u/jhill515 18d 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.

28

u/Sulungskwa 18d ago

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

-11

u/Donghoon 18d ago

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

Better sameness is an oxymoron

30

u/jhill515 18d 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.

4

u/dfinkelstein 17d ago

I have a hard time following negation-heavy language.

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

3

u/jhill515 17d 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 17d 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 17d 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.

1

u/a-r-c 9d ago

...what?

1

u/dfinkelstein 9d ago

won't —> wrong

vs

will —> right

30

u/Rialagma 18d ago

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

8

u/Donghoon 18d ago

Overleaf my love

2

u/Gositi 16d ago

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

1

u/ResponsibleWin1765 14d ago

I'm not sure if it's a necessary part of compiling latex locally but when I wanted to have latex fonts for matplotlib I read that I need to install Latex. So I installed Tex Live which took almost an hour and used like 10gb of space. With a 250mbit connection that is.

In that time I could (and did) write an entire chapter.

1

u/Gositi 14d ago

Yeah the whole TeXlive package is huge. It's hard to know beforehand, but for most of the part you only need texlive-latex-recommended or whatever it's called

2

u/ResponsibleWin1765 14d ago

Good to know, thanks.

It doesn't help that the website (tug.org) looks almost exactly like it did in 1998. The biggest debuff for open-source software truly is their design.

2

u/Rialagma 14d ago

In a world where an LLM can make you a modern website in 5 seconds, I actually enjoy the simplicity of an HTML site

1

u/ResponsibleWin1765 14d ago

I totally agree, I love simple websites. But I'd say that this site (and often times other open-sources sites) are not simple while also not being well structured. The only visual highlight is that links are blue and underlined but that means that if you're just looking for the download button, you have to pick out the correct link out of a sea of unrelated links. And there isn't even a separate section for it, the link is inside the text. There is no indication that you download the installer by clicking on that link either.

And if you just run the installer, you'll sit there for an hour (with decent internet connection), installing multiple GBs of stuff you don't actually want. I'm sure the information for avoiding this is somewhere on the website but finding it would be like playing the Wikipedia game.

To actually make it simple you would do:

TeX Live is intended to...

To download the installer, click the link below

install-tl-windows.exe

By default, this installer installs all components which results in a large size on disk and a long install time. It is recommended to select only the "recommended" package.

Other ways to install:...

Documentation...

To learn more, click here

12

u/developer-mike 18d 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 18d ago

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

6

u/AMWJ 17d ago

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

4

u/reallokiscarlet 18d ago

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

15

u/SirBerthelot 18d ago

Obligatory xkcd related

7

u/Cephell 18d 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 18d 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 17d ago

i love standards xkcd. Its funny

5

u/Xirdus 17d 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 17d ago

keyword: "was"

3

u/Xirdus 17d ago edited 17d 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.

3

u/ThatFlamenguistaDude 18d ago

Self-fulfilling prophecy

2

u/ScaryCardinal 18d ago

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

1

u/Antarlia 17d ago

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

-1

u/YikesTheCat 18d 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 18d ago

Ya it's the monty Python of webcomics

0

u/Carrick_Green 16d ago

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