4 ms·
Personally it's harder to reason about systems where you define the desired state and it magically happens, this includes functional languages. I have no idea
by _8j50 3y ago
Personally it's harder to reason about systems where you define the desired state and it magically happens, this includes functional languages.
I have no idea why people think that is better. I always want to command the system and be able to understand the processes it will undergo to implement that change. Even if it is reliable, it's difficult to understand or be confident in a system whose inner workings feel like a black-box.
- eternityforest 3y agoI've always been pretty comfortable with black boxes, as long as they're repeatable and have fewer bugs than I would expect to produce by hand. I wonder if it has to do with mastering a real life skill before learning to code, if you can draw or play an instrument well maybe it sets you up for more of a direct action mindset?
- _8j50 3y agoI think it has more to do with desiring control. Black boxes feel like out of control. I can reason about how transport vehicles work for example but if there was a quantum teleport machine that only wants my destination and I get magically zapped there, it would be amazing but plenty of people including me would have a hard time trusting it fully because we can't have an intuitive understanding of how it works (cars,trains = wheels go round and round lol).
- dqv 3y agoI mean anything new that I'm experiencing for the first time is magic because I don't understand how it works. Perl was magic until I learned what the weird syntax meant. I've learned a little about Java over the years and so it seems less magical, but there still seems to be a lot of magic I can't comprehend. I think the issue is that Nix is "too much new", not too much magic. Because I have familiarity with Nix, I can go to e.g. the PostgreSQL build file [0] and mostly make sense of what's going on, just like any other language I'm familiar with. Now if you give me something like a debian package, I have no idea WTF is going on. If anything goes wrong with a package installation, there isn't much I can do, except try to build outside the package manager. With Nix, I have a few options, from simply overriding the upstream repository to forking the broken module to fix whatever problems I'm having. It's also really nice to be able to be confident that what is in the Nix file is what's in my environment. As the syntax and libraries became more familiar, so did my confidence using Nix. That's pretty much how it works with most things, I think. [0]: https://github.com/NixOS/nixpkgs/blob/203ecda835bcf69633df7183459283543dd4a874/pkgs/servers/sql/postgresql/default.nix https://github.com/NixOS/nixpkgs/blob/203ecda835bcf69633df71...
- _8j50 3y agoYou make a good point! I don't know exactly how the internals of debian's package management work but I do know that it downloads packages from mirrors, probably unpacks the archive, verifies gpg signatures, parses metadata and starts resolving deps, extractice archives, launching scripts/triggers. Maybe if I have a better understanding of Nix internals like you it won't feel like a black box.