I don't get the upset over forking. If the fork stops releasing and dies out, no problem. If it grows and advances the flag, then that's good, right? All of the reputational risk is being taken by the forkers. Who else is being hurt, here?
This post has "everything" in the same way as the buffet of the Beau Rivage at midnight: the goods are warmed over, but the overs are good warm.
the odd sobriquet of Auxolotl
Has the pendulum swung back already? I make it to parenthood just in time for puns to fall out of favor?
Now that Dr Dolstra has gone
Dr Dolstra
This particular curmudgeon, though, feels that this particular Nix fork missed a big opportunity: to automatically generate and manage more human-readable filesystems.
The cardinal sin of Nix is apparently naming things. Since Aux exists for any other reason than fixing this, it has not atoned and can never atone.
Nix works wonders by automatically storing code in a software-generated and software-managed directory hierarchy. This has a profoundly off-putting side-effect: it eliminates a human-readable filesystem.
A specter is haunting Linux - the specter of /nix/store.
This particular jaded old hack much prefers the approach of GoboLinux.
And what is the solution? FreeBSD PortsGoboLinux!
What Gobo offers is akin to semantic versioning, but applied to the filesystem: a semantic filesystem layout, where folder names encapsulate versioning info and are more meaningful than the old 1970s reduce-typing-effort-at-all-costs approach.
Nix fans love it with a passion I have only seen previously for horribly obsolete text editors, but the odd thing is that they mostly keep quiet about it, which TBH I find a very endearing characteristic.
While the author is being a bit of a tool, they're right about one thing: everybody who jumped the gun prior to the board announcement is now left with an ostrich-sized amount of egg on their face and no obvious path towards reconciliation other than eating a very large omelette. In particular, Jake and the Aux team don't have an obvious technical roadmap, which is a serious problem for a nixpkgs fork; also, I feel bad for Xe, who has left the community entirely and condemned themselves to pre-Nix distros. Pride leads to hubris leads to self-flagellating blogposts.
...I say, as I continue quietly working on my own reimplementation of Nix...
that’s my biggest frustration with Aux. they’ve actually dropped the nixpkgs fork after the board announcement, but I haven’t seen many concrete plans after that. there’s so much low hanging fruit for improvement on NixOS’s mechanisms and processes and I’d love for someone to take a swing at fixing all that — but I don’t think Aux is currently anywhere near focused enough to be it
at least we got Lix out of things, which I think is an incredibly important project to have especially after the board announcement. Nix’s new governance structure has a gigantic gap in it in the form of the Nix evaluator, and I feel strongly that’s intentional. having an independent and modernized (but compatible) Nix implementation will be better for the ecosystem as a whole.
I’d love to hear about your Nix implementation when it’s in a shareable state. I’ve got a few Nix-related projects myself that need a good home — some finished ones are waiting for things to fully settle before I decide how they’ll be released, but one project I’d like to start (but don’t know where it should go) is much better directory-local evaluation — that is, lorri/nix-direnv/use nix but with just one vastly-improved implementation in the evaluator.
Yeah, Lix is good. It's not what it claims to be, but just being a CppNix fork is enough.
So, I'm not developing in secret. My code is here, in my rpypkgs flake, and as the .packages.${system}.reguix attribute of that flake. One would probably want this Cachix cache if they're on amd64 and want to avoid building PyPy or CPython. (Upstream discussion about this bootstrap path is here.) I'll send out a more serious round of invites once the lexer, parser, compiler, and evaluator can actually handle a real-world evaluation.
For posterity: Hi! I'm linking this to you because you'd like to contribute to Regiux. Cool! You need to know RPython, a dialect of Python 2.7 used to specify interpreters. In a nutshell, RPython is statically-typed with lots of metaprogramming, somewhere around Java or Haskell. You write a Python 2.7 program, it gets imported into memory, and then the RPython toolchain compiles from memory into C, optionally generating a JIT compiler. For a gentle explanation, check out Brown et al doing Brainfuck (1, 2); if you'd like to see what high-performance RPython looks like, check out my DIVSPL interpreter or my take on Brainfuck.
Check out their recent posts; they've been spending a lot of time trying to reconstruct their NixOS experience and finding it to be more work than they imagined.