this post was submitted on 16 May 2024
340 points (95.7% liked)

Programmer Humor

31202 readers
1900 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 4 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 29 points 1 month ago (4 children)

JavaScript is crazy. While you are learning React.js or Vue.js you are learning Webpack, Rollup or Vite.js even without your consent :skull:

[–] [email protected] 22 points 1 month ago (1 children)

C is crazy. While you are learning it you are learning Make and gcc without your consent.

Java is crazy. While you are learning Spring you are learning Maven or Gradle even without your consent.

[–] [email protected] 12 points 1 month ago (3 children)

All of these bring me a sense of dread, each in a unique way.

Java I have a special loathing for, but the ecosystem isn't too wild, just verbose and so XML heavy.

JS is its own hell because of the sheer number of permutations of technologies a given project will use. There's always at least one nonstandard framework or tool lingering around from an old trend.

Python reimplemented the same dep management wheels 5x each, and I have no idea what common stacks look like anymore, but every time I encounter Python projects, something is always broken.

C is nice and easy from what I've used (just GCC & make), but idk what complexity arises in bigger projects.

Just so glad I'm not a webdev anymore and work with mostly just Rust, cargo, and containers.

[–] [email protected] 4 points 1 month ago* (last edited 1 month ago) (1 children)

Honestly I think the main thing that the JS ecosystem does well is dependency / package management (npm). The standard library is very small so everything has to be added as a dependency in package.json, but it mostly works without any of the issues you often see in other languages.

Yeah, it's not perfect, but it's better than anything else I've tried:

  • Python's approach is pretty terrible (pip, easy_install, etc.) and global vs local packages
  • Ruby has its own hell with bundler and where stuff goes
  • PHP has had a few phases like python (composer and whatnot) and left everyone confused
  • Java needs things somewhere in its $PATH but it's never clear where (altough it's better with Gradle and Maven)
  • C needs root access because the only form of dependency management is apt-get

In contrast, NPM is pretty simple: it creates a node_modules and puts everything there. No conflicts because project A uses left-pad 1.5 and project B uses left-pad 2.1. They can both have their own versions, thank you very much.

The only people who managed to mess this up are Linux distributions, who insist on putting things in folders owned by root.

[–] qqq 2 points 1 month ago* (last edited 1 month ago)

You can use ~/.local/lib and LD_LIBRARY_PATH for shared libs.

Or better yet just give in and use the nix package manager, it is basically a virtual environment for your C programs.

[–] [email protected] 1 points 1 month ago

Python reimplemented the same dep management wheels 5x each, and I have no idea what common stacks look like anymore, but every time I encounter Python projects, something is always broken.

We need just one more complete re-engineering of the packaging standard. We promise to get it right, this time. No take-backs.

[–] herrvogel 1 points 1 month ago (1 children)

C dependency management is the worst. I thoroughly dislike how it works over there.

[–] [email protected] 3 points 1 month ago (1 children)

What dependency management lol

[–] herrvogel 1 points 1 month ago

Pretending that the distro package manager is a suitable tool is not enough? Kids these days smh

[–] [email protected] 9 points 1 month ago

PHP is crazy. While you are learning Laravel or Drupal you are learning the deep seated desire to shoot yourself over the lack of consistent use of type hinting, regardless of consent. :skull:

[–] [email protected] 7 points 1 month ago (1 children)

Also missing SASS/SCSS/Tailwind, bootstrap, and Babel

[–] [email protected] 3 points 1 month ago

I like Tailwind. It makes me not write CSS or any preprocessor DSL. It's nice.

[–] [email protected] 2 points 1 month ago (1 children)

Preact is actually usable without build tools. It can be loaded like the good ol' jQuery in modern browsers.

[–] [email protected] 3 points 1 month ago

Good ol' jQuery - never thought I'd hear that