As usual, there is the question of what exactly you are trying to do,
and at what level to do the abstraction. The talks at systemd conf
explore that space. What needs to be kept isolated from what, etc.
Different machines? Different OS? Different Kernel? Different library
versions... We have so many options for mixing and matching these days.

I have found that for development, Nix, in Debian or elsewhere, is
almost perfect. You can exactly specify and share your development
environment with others, and you can have a different development
environment for each of your projects, or even more than one in the same
project, all in the comfort of your normal user environment in your OS
of choice.

Think on this-- you can have a particular combination of versions of
python, ghc, racket, llvm, gcc, libs, environment vars, etc., etc., all
your depends, declared explicitly in your git repo, where you, your
tools (also specified to the extend you desire), and your friends can
just jump into a shell with that exact environment. Nix might have a
slight learning curve, but there is no other way to develop these days.

That said, I did once resort to a VM when I reached the end of what was
possible (OpenGL drivers were my doom, and I resorted to a NixOS VM).

-- 
Anthony Carrico

Reply via email to