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.
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.
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.
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.
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:
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.
You can use
~/.local/lib
andLD_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.C dependency management is the worst. I thoroughly dislike how it works over there.
What dependency management lol
Pretending that the distro package manager is a suitable tool is not enough? Kids these days smh
We need just one more complete re-engineering of the packaging standard. We promise to get it right, this time. No take-backs.