I feel Nix is eating their lunch. Even though Nix as a language could be tough, it's a simpler solution than Dagger.
It provides a shell, almost complete reproducibility and isolation can be added through containers.
Working with dependencies to build source code using nix is usually straightforward but having the right binary version that doesn't have the same love as major languages (i.e. terraform, flux, etc) is one thing Nix really needs to implement. Marcelo's package version search[1] is a way to discover the particular hash but then you need to explicitly use that nixpkgs version for that particular binary and do a lot of mental gymnastics in your nix files. Nix could implement a syntax where you define the package versions as attribute set and then internally does a discovery of the nixpkgs hash for that versions and installs it. Flox and DevBox follow this pattern but I don't see why you need and external tool where this can be embedded in Nix (the cli).
[1] http://lazamar.github.io/download-specific-package-version-w...