Skip to main content

Nix lang v2

The Nix language unfortunately is full of little and big design accidents. Only so much can be fixed without breaking backwards compatibility.

Our goal is to design an improved Nix language revision, dubbed "Nix 2". Currently, design drafts for that language are being collected and iterated upon in https://md.darmstadt.ccc.de/nix2?view=. (The goal is to integrate these into this page as they are being implemented.)

The rough action plan is:

  1. Fork the grammar and gate its usage behind a feature flag.
  2. Use the new grammar as a playground to experiment end implement fixed and improvements to the language, free of any constraints of backwards compatibility.
  3. Figure out language versioning and prepare interoperability.
  4. Provide a migration path, stabilize the new language, and make it available to users.