this post was submitted on 21 Jul 2023
82 points (93.6% liked)
Programming
17313 readers
398 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I know you won't believe this, but you don't need any of these GTOS (giant towers of shit) to write & ship code. "Replace one GTOS with another" is a horizontal move to still using a GTOS.
You can just install the dev tools you need, write code & libraries yourself, or maybe download one. If you don't go crazy with the libraries, you can even tell a team "here's the 2 or 3 things you need" and everyone does it themselves. I know Make is scary, with the mandatory tabs, but you can also just compile with a shell script.
Deployment is packing it up in a zip and unzipping it on your server.
Try to develop on a system that just has node16 3 different projects at the same time that each require different node versions. Nix rocks.
nvm
And now these need different GCC compilers. And building should be easy and reproducible.
If your app behaves differently based on the GCC version the same node version has been compiled, there's a fuck-up in there.
No, I mean my app has a node and an C part, just AS an example. Could also be Java vor PHP.
ahh, I see. I guess you had to do a bit more work to ensure everything builds with the same versions.
Lot's of (incorrect) assumptions here and generally a very poorly worded post that doesn't make any attempt to engage in good faith. These are the reasons for what I believe is my very first down-vote of a comment on Lemmy.
You're advocating switching to another OS with a complex package manager, to avoid using a package manager that's basically a whole new OS. Giant Tower of Shit may be too generous for that.
But I was of course correct, I said you wouldn't believe it.
nix does not need nixOS to run but is a complex package manager. At least for me, it doesn't seem more complex than docker ecosystem.
I personally use nix to take care of downloading compatible dependencies in isolation for me. And the rest of the code is really, just basic script shell or Makefile too.
I also could add a fancy
mergeShells
function I have written in nix to support a docker-compose-like composition ofnix-shell
files. But you could go a very long way with nix before you even want to do something like this.Tutorial != advocation. As I said, no attempt to engage in good faith.
What?
Sometimes you need complex tools for complex problems. We just have a homegrown GTOS at my work instead, I wish we had something that made as much sense as Nix!