A Nix development environment is a derivation which builds a shell system environment. This environment is hermetically sealed off from the host, which means that no other dev environment can make changes or override tooling in it.
This enables you to contain all development tooling (the environment closure) for a particular project in a dev shell, which is separated from even the dev shells for projects of a similar nature (same programming language, same set of dependencies, etc).