A lot of scripts and binaries don't work properly if not installed through Nix. This can really affect your workflow if you depend on random niche software not packaged by Nix.
When I started my first job I couldn't build their TypeScript project because it depended on GRPC on NPM. That NPM package is literally just a binary...
This isn't really the fault of NixOS, but it's wildly impractical as long as the world is stuck where it is. I've recently considered going back into NixOS and spinning up Podman Ubuntu containers for stateful dev environments (with my home-manager programs included, of course). It's sort of the reverse approach, instead of Nix being a second-class citizen on Ubuntu, I want Ubuntu to be a second-class Citizen on Nix.
Yah I suppose I should have said "you just can't make any assumptions about the filesystem layout" instead. You can always assume shells have a symlink in /bin, and there's another for /usr/bin/env, and that's about it. Programs that assume the system follows the FHS tend to break on other distributions too, but certainly will on Nix. That's where we end up using containers and VMs, or whatever smoke and mirrors act NixOS does for Steam.
When I started my first job I couldn't build their TypeScript project because it depended on GRPC on NPM. That NPM package is literally just a binary...
This isn't really the fault of NixOS, but it's wildly impractical as long as the world is stuck where it is. I've recently considered going back into NixOS and spinning up Podman Ubuntu containers for stateful dev environments (with my home-manager programs included, of course). It's sort of the reverse approach, instead of Nix being a second-class citizen on Ubuntu, I want Ubuntu to be a second-class Citizen on Nix.