

It is the best solution I know of. There is a reason that functional (that is, “preferring a side-effect-free programming style”, yet Turing-complete) programming languages are used in both Nix and Guix: Package definitions need to be side-effect-free, otherwise you quickly have a mess similar to what most build systems are. Further, package definitions should be lazy (that is, evaluated when used, not when defined), and it helps when type definitions can be inferred. The latter excludes alternatives like Scala, Haskell, and OCaml, so what you end up with will anyway be very similar to a Lisp.













These are starting to exist: China has “dark factories” where the lights are usually turned off because they function fully automated. Ongoing automation is a thing, truly useful humanoid robots are not. That’s by the way also true for military technology which is often a glimpse into the technical future.