←back to thread

194 points todsacerdoti | 1 comments | | HN request time: 0s | source
Show context
peterldowns ◴[] No.44608614[source]
Very interesting writeup, as a long-time Nix user I've always been interested in trying guix but never gotten around to it. Great post overall.

> The thing is, I'm not actually sure if Guix's better documentation helps smooth the onboarding in any way because you have to already know Scheme, which is a more complex language than Nix.

LMAO absolutely not. Nix-the-language is the worst programming language I've ever had the misfortune to interact with. I picked up Scheme in about 1 day during a class in college. It's night-and-day different.

replies(3): >>44608725 #>>44608962 #>>44609906 #
positron26 ◴[] No.44608962[source]
> Nix-the-language is the worst programming language I've ever had the misfortune to interact with.

I feel the same.

The multi-line strings and string interpolation are both really nice. Unfortunately a lot of the text being munged is bash and usually already ugly, so the result is double-ugly.

The functional aspects are okay. However, as an expression language and being primarily used in a declarative way, it is frequent to have almost no idea what's going on in Nix. Reading the code and understanding the evaluation are extremely far apart.

callPackage... It's something I thought would be cool in a language until I actually experienced the depth of disorientation it can cause.

The remaining syntax has a lot of "but why?" where it just seems to do its own thing relative to other languages, which makes it harder to get into a rhythm.

Some of the subject matter is the real culprit. The cross compiling sliding window thing... I've studied it several times. If I had to actually do something with it, straight to the LLM. Compilers have targets.

replies(3): >>44609151 #>>44610822 #>>44612552 #
1. 0x457 ◴[] No.44612552[source]
So I found some LLMs are wonderful at Nix. A few times I just prompted "port this <github link>" and got a pull request with nix package exactly how I would have written it. One time even manager to implement multiple missing dependencies as well.