LLMs in nixpkgs

And indeed it is.

I really wish we could all try to learn from each other a bit more rather than driving this community to further polarization. I was thankful to learn about the cognitive decline studies posted earlier in this thread, for instance, and the discussion of differing environmental impacts of self-hosted vs frontier-lab models was also thought-provoking to me. It makes me very sad how many messages in this thread are not willing to engage in good faith.

This all feels far too familiar as someone who was raised as a conservative Christian and had to learn that in fact the people I was told to hate as a kid are not actually evil.

On a more constructive note, I’d really recommend the book High Conflict by Amanda Ripley. It’s helped me reframe how I think about these sorts of “hill to die on” situations.

4 Likes

This thread isn’t about the ethical dilemmas of LLMs. If you want a reasoned critique on those, they are all bad, as they rely on abusive labour practices. This is about whether to use LLMs in nixpkgs and I can verifiably say they are woefully inadequate from observing them at work and the slop on github. That’s not outdated since I am observing it every day…

Let’s keep religion out of this (as multiple people insist on bringing up for some reason) and keep in the regular plane of conversation.

EDIT: not engaging with pointless ad hominems. Stick to facts, or get blocked.

6 Likes

(I’ve deleted my message here since I don’t think it actually helped the discussion.)

2 Likes

… yet without the massive boost of cars and motor transport brought to the economy I doubt we would have even an internet to enable us to have this debate :wink:

Btw. It would be fascinating to be able to simulate alternative realities since I get a feeling people love to eat the cake and have it.

2 Likes

I think this is a misunderstanding of the opposing argument. No one wants to keep Nix restricted to FP enthusiasts, and it’s really not that hard to learn. I’m not a programmer by trade, and the most CS education I have is a CS minor for my bachelor’s degree, which involved zero functional programming (as in the term was never even used), but I’ve learned a pretty fair amount of Nix stuff in the last few months, to the point where I’m comfortable with it now. I’m not saying Nix is easy, and it is fundamentally different from the way many people (including myself) learned to program, but it’s certainly something anyone can learn. I don’t mean to sound harsh here, but if a person doesn’t feel at least a little comfortable with Nix as a language or with the common nixpkgs-isms, they probably shouldn’t be making any contributions, assisted or otherwise. Of course, we must always be willing to help newcomers (I was one myself not long ago), but in order for that conversation to be productive, there must be some willingness to learn on their part.

10 Likes

I agree! Ironically I think the FP nerds get annoyed with nix because it’s restrictive in some ways compared to say haskell. But nix has different goals (since nix is a sort of build system) compared to haskell, and there’s 20 years of historical cruft that comes from turning a thesis project into a productive language. I would love it if it nix is as easy to learn as possible, which is why I’ve participated here and elsewhere for 3-4 years. The whole purpose of this forum is to make it easier, right?

9 Likes

I think the main reason this sounds harsh is because it sounds so specific, this is not a nix-specifc point:
“If a person doesn’t feel a little comfortable with the project, they probably shouldn’t be making any contributions, assisted or otherwise”
And maybe we can sand off the edges a bit:
“To contribute effectively to project, you need to know at least a little about it. And to this end, if you have any questions, we are here to help!”

And in particular, when contributing when using an LLM, knowledge of the project is more important than knowing how to prompt well.
Therefore, you should not assume you are helping by prompting (even very skillfully) the AI to solve a problem, when a maintainer could already prompt it (even if much less well) to do the same thing
(I think a lot of AI enthusiasts do not think about it this way, hence the deluge of sloppy PRs)

15 Likes

It might be helpful to know what your direct, personal experiences are and from when you’ve drawn it, because you’ve made several claims that do not seem to be well-informed with regards to the state of modern models.

For reference on my side, I’ve been using these things since the llama leak, various finetunes of it since then, ChatGPT for I believe several years now, Claude for about as long, Grok for about a year, and various other models (nemotron, gemma, gemini, mistral, deepseek, qwen, and a bunch of silly variants)–so when I claim that a model can or can’t (yet) do something, you can reasonably assume I’ve attempted it in recent history with modern models. I have yet to try Kimi 3, GLM 5.2, or some of the other large ones, in full disclosure.

3 Likes

That wasn’t really what @samestep point was about. The reason he is so baffled and the reason @Jarppiko feels offended, is that you among others keep dismissing LLMs as if they had no merit at all in any context, without anything else but personal anecdotes.

If LLMs output was always bad and they were never useful we wouldn’t be having this discussion. There has not been a single one of those detestable people claiming that ‘coding is solved’, every software engineer is going to be out of a job in the imminent future or ‘better learn how to prompt or you are going to be in the permanent underclass’ in this threat (luckily), if anyone of those people is reading this I hope you find this offensive, because you are a blight to society.

Most people advocating for or tolerating off their use do acknowledge that they are flawed, that there are serious issues, with they way they are run, developed and the often abysmal quality of their output. Yes these tools often produce slop, they use up compute and ram like nothing else etc.

I personally am fine if we as a community say, these tools have too many negative things associated with them, that we ban their use. Honestly if enough people repeat your first statement, that it should be banned so we have a project that is free from LLM use because it is so invasive in our society already, I would be fine with that as well.

What I am not fine with, is dismissing them as completely useless, because that simple isn’t true from what I have seen, read and from the experience of others. If they can create derivations for wine/proton usage, if they can find security bugs in security sensitive tools like curl[1], the claim that all their output is useless, without evidence, comes across as condescending.

I do take the points raised in opposition seriously and expect the same courtesy made in return.

“If a person doesn’t feel a little comfortable with the project, they probably shouldn’t be making any contributions, assisted or otherwise”

And in particular, when contributing when using an LLM, knowledge of the project is more important than knowing how to prompt well.
Therefore, you should not assume you are helping by prompting (even very skillfully) the AI to solve a problem, when a maintainer could already prompt it (even if much less well) to do the same thing

This one for example I wholeheartedly agree with. (Even though I have raised very bad issues on nix related repos in the past)


  1. High-Quality Chaos | daniel.haxx.se ↩︎

9 Likes

The problem is not that they are never right, but that they are randomly right. Even a broken clock is right twice a day. Checking each LLM contribution costs more effort than it’s worth.

Even if they were 100% correct, they outsource critical thinking and eliminate communication.

Anything they create is worthless to me. In fact, it does more harm than good.The process of creating something is always worth more than the end product, since it forces you to challenge your mental model of the world. By allowing the use of LLMs we rob people of the chance to grow, which cripples the community in the long run.

11 Likes

Well, the response to that is of course to not check whether they are right or even better, let another LLM check whether they are right or let an LLM write tests to check whether they are right and let other LLMs check those tests for whether they are right.

It’s all quite simple and straight forward. No idea why some people aren’t super enthused by that approach.

1 Like

I know you are being sarcastic based on your earlier comments but enough people here 1) don’t necessarily speak English natively and 2) may not have time/bandwidth to scroll back and figure that out, such that between these factors I think your comment is more likely to cause confusion than lead to productive conversation.

4 Likes

they outsource critical thinking and eliminate communication

The process of creating something is always worth more than the end product, since it forces you to challenge your mental model of the world

By allowing the use of LLMs we rob people of the chance to grow

I think all three of these assertions depend on a very narrow and unrealistic expectation of how someone uses LLMs. If I ask a model to help me diagnose a build failure in a package and then discuss back and forth with the model to find an optimal solution, I’m not outsourcing or robbing myself of anything except perhaps the chance to spend more time and keystrokes needed to accomplish my task.

The idea that someone is not critically thinking about their work or developing their skills while using models is crazy to me. Unless you’re just 100% YOLO-ing it and letting the model write whatever it wants with absolutely no review or further input, then you are exercising some degree of control and development.

6 Likes

The comparison with a broken clock is very reductive. I for one haven’t heard a broken clock being responsible for a security incident. While that doesn’t sound good in general, it is a very convincing argument for their capabilities.

I’d agree that the other points you mentioned are worth considering and I am not trying to convince you that LLMs should be used in nix projects. I only want my rational argument based on a real numbers from a project that has long invested in security and still draws value from LLMs to be taken seriously.

Telling me to ignore the evidence of my eyes and ears, is not something I am willing to accept and I am tired of getting yelled at from both sides of the horseshoe about how wrong I am not completely denying or embracing [insert thing here].

Edit: The arguments about randomness and correctness also aren’t that strong considering that both randomized algorithms and greedy algorithms are a thing and both of them are useful in the right circumstances.

5 Likes

I’m not outsourcing or robbing myself of anything except perhaps the chance to spend more time and keystrokes needed to accomplish my task.

Youre loosing out on the friendships you could have gained by diagnosing with someone. As ive stated before, the reason why a nix community exists at all is because we collaborate, pair program/debug, ask each other for feedback. If you replace that with an LLM for efficiency reasons, we loose out what makes humans humans.

The idea that someone is not critically thinking about their work or developing their skills while using models is crazy to me.

You are loosing out on some critical thinking even if you don’t YOLO it. Before LLMs, you’d spend time reading code, learning to skim code and find the bits that matter. How to find the right place using grep and clues from the programs output. Or maybe learn to read the shitty stack traces Nix outputs. Now instead you might ask an LLM because its more “efficient”, but all the work you had to do before was valuable. The fact that you can get better at it, makes it inherently valuable.

Maybe critical thinking is the wrong term here. Perhaps it more like we’re loosing parts of the process, which we may now consider redundant. But I fear that we are loosing something we’ve yet to grasp.

7 Likes

I’m not a native speaker myself, but I see your point.

On the other hand, this is both what proponents actually advocate for and what opponents take issue with, right?

In fact you’ve managed to do disservice to the arguments of both sides.

4 Likes

If we’re planning on talking about the information theoretic aspects of language design and weird machines, it’s probably a good idea to have better material for arguing:

You don’t even have to watch this tremendously informative talk, even though you should :wink:


Edit: Here is some example food for thought, that assumes pessimistically that an LLM’s output is the same threat model as untrusted user input:

  • How resistant is the Nix language to a dedicated adversary?
  • What about the runtime?
  • How resistant are pieces of nixpkgs itself to one? by-name? nixos/?
  • How can we improve things?

In addition to raging against the machine (literally), which everyone has their right to do and is a great band, is there anything productive we can do? (in before, “yes, get rid of them” - see previous threat model).

6 Likes