▪█─────█▪
I hate Node and NPM so much that I have a physical reaction to just seeing the words now.
I already disliked Node & NPM quite a bit, but the hatred and disgust got to the point it is now after having to write a CI/CD pipeline in Groovy/Jenkins for a Node site that that our devs were building. I had to automate the build/deployment of Satan’s favorite framework in Satan’s favorite language. I came pretty close to quitting.
It’s out the door now, but I’m in the middle of reimplementing the pipeline in Github Actions so I don’t drink myself to death when they come knocking to do it again.
Man, this comment made me feel a little embarrassed at myself. I saw the shortcuts and thought about how I have a tradition of going to the top of the file when I’m done editing and about to save/quit. I always hit the shortcut for it and think “gg boys! Good game” and then quit out of vim.
Stop judging me.
Aside from the callback chains and API shit, my issues with Node rest almost entirely on the lack of a standard library, because that led to the state of NPM today, which is just an absolute garbage-fire shitshow as far as I’m concerned.
I have my own separate issues with NPM, namely its dependency resolution (my God, just take dnf'
s dependency resolution algorithm and use it), trivial packages that other packages list as a dependency (is this an int? Is this running on Windows? Better take this one line and make it a package!), and the relative inability to remove a package from a registry (did a secret slip in there while testing? Tough shit!). The worst of that being the trivial packages, I think, because then you can end up with projects that can have a dependency tree 10s of thousands packages long.
And all that bullshit wouldn’t be even 1/16th of the problem it is today if there were a standard library.
You should take what I’m saying with a grain of salt, though, I’m just a DevOps Sysadmin, and aside from running some software that uses Node, most of my experience with it is unfucking it when our devs come to me to fix the tangled monster they’ve created.
At that point you may as well go full Vagrant or start using Docker images.
And no matter how quirky or obtuse venv/conda/pip can be, they will never be as bad as Node. Ever. Node will hold that King Shit crown forever, or at least to God I hope it does.
Something worse than Node coming around and getting popular might just make me quit IT altogether.
“I don’t need to comment this code at all, it’s pretty self-explanatory, I’ll remember this 100% no problem.”
Scene cut:
Me six months later, staring blankly at the code like the monkeys & The Monolith in 2001: A Space Odyssey, desperately trying to unravel the workings of my ADHD brain and just exactly why the seemingly innocent and innocuous-looking function named “dontFuckingTouchThis” is the lynchpin preventing the whole goddamned thing from falling over and going tits-up.
How are they going to determine which apps have free API access without this definition!?
If there’s one thing that I’ve learned from this trainwreck, it’s that they’re not going to define it publicly. If the internal definition is fluid, it can serve as a moving target to be whatever is most beneficial to them at the time.
I’ve been a RiF diehard for about a decade, but I’ll definitely give Sync for Lemmy a try when it’s available.
What I’m really interested in is this. If this gets completed, theoretically any existing third-party reddit app could update the API URL it hits and their app would pretty much “just work” with Lemmy, they’d just need to add an option for the user to input their home instance’s URL and their credentials. It was started by @derivator
This is why I got all of our devs to start building with the target of a Docker container in mind.
And for the ones who still won’t or can’t wrap their brains around Docker, I run their shit through a Github Actions workflow that spits out their ugly baby as a Docker container. In the end, I don’t give a shit what it is, your Rube-Goldberg piece of shit is getting stuffed into a Docker container.
“It works on my machine!” Yeah, well, your machine is now everyone’s machine thanks to the magic of containers. Now fix your broken shit so PagerDuty doesn’t call me at 3am again. Fuck.