3 ms·
Related, a purely functional package manager, Nix, and a Linux distribution based around it: http://nixos.org/nix/ http://nixos.org/nix/
by cscheid 13y ago
Related, a purely functional package manager, Nix, and a Linux distribution based around it: http://nixos.org/nix/ http://nixos.org/nix/
- agumonkey 13y agoI see a number of projects sharing similar traits: - DVCS - btrfs,zfs - rethinkdb - persistent datastructures (cons cells, fp trees) - nix package management, virtualenv, containers - react/pedestal (pushing ux delta upgrades)
- cfallin 13y agoMutability/immutability goes pretty deep philosophically... all of those projects are basically built on persistent data structures, but persistent data structures can be seen as just one type of "making time explicit". In other words, with mutability, a variable (or data structure) takes different values at different times, while with immutability, you can still have time but you name each version through time explicitly. (Values vs. variables, etc.) Same concept exists in e.g. single static assignment (SSA) in compiler IR, or register renaming in high-performance processor design... pretty powerful concept.
- imsofuture 13y agoAs an aside: I'm pretty mind blown that I've never once considered immutability as "making time explicit". That's an extremely apt comparison.
- agumonkey 13y agoHow could I forgot SSA. The idea here is what about re-expressing things by pushing immutability at lower level as a common base.