Live data from Hacker News

The Zig project's rationale for their anti-AI contribution policy

simonwillison.net

431–440 of 496 posts

Re: The Zig project's rationale for their anti-AI contribution policy

#431
post #139

Earlier quoted context omitted.

Please elaborate?

https://claude.ai/share/f38ee8a6-56f1-408a-a536-211eb34c7045 I mostly agree with the assessment. IMHO: hard, inflexible rules like these are always deeply rooted in biases and personal convictions, not in facts. The suggested policy amendment by Claude at the end is much more honest, logical, and palatable.

This sounds fun. Here is my response:

https://claude.ai/share/abb3e667-252a-4b34-86f7-a064ba260d2a

This reminds me of something funny I noticed about AI. Let's say you ask it what it thinks of an email you just drafted. It will provide corrections.

Delete that session, and ask it about the corrected email. It will provide more corrections.

Repeat. It always provides more corrections. Sometimes returning the recommended email back to a previous state.

This is basically what's gonna happen when people argue-from-AI. It's the same cycle but because control is distributed the individuals participating can't see how stupidly pointless it is.

Re: The Zig project's rationale for their anti-AI contribution policy

#432
post #422

Earlier quoted context omitted.

It seems pretty solid to me. Where is the nonsense?

Why don't you ask LLM?

Why don't you stop avoiding the actual question? Or perhaps you have nothing of substance to add?

Re: The Zig project's rationale for their anti-AI contribution policy

#433

Earlier quoted context omitted.

Certainly not in the case of asking it to do something you'd be slow at because you are unfamiliar. If you are not familiar enough with the system, how are you confident that what the LLM has produced is valid and complete? IMO the people saying LLMs make then 10x faster were either very bad to start with (like me!) or are not properly looking at the results before throwing them over the wall. And how do you know if…

This is the crux of the problem. LLMs make me significantly faster at writing code I was mediocre or bad at. But when I use it to write code in domains I have more knowledge in I see design and correctness problems all over the place and actively fix them and it slows down my output. Speed is seductive. The bar isn't "this is a known good contributor". Its "this is a known good contributor working in a space they hav…

  > LLMs make me significantly faster at writing code I was mediocre or bad at. But when I use it to write code in domains I have more knowledge in I see design and correctness problems all over the place and actively fix them and it slows down my output.
I think a very similar phenomena is called Gell-Mann amnesia effect: https://en.wikipedia.org/wiki/Michael_Crichton#%22Gell-Mann_...

Re: The Zig project's rationale for their anti-AI contribution policy

#434
post #390

Earlier quoted context omitted.

it's in the definition of the word. you can not determine what the LLM will do. anything done with AI is a problem because it is essentially unpredictable. auto-complete is on the fence because you presumably are still able to pay attention that it completes what you want but it depends on how diligent you are when working and how much i trust your diligence.

You are still dodging the question -- what is the problem with not being able to determine in advance what the LLM will do? Even then, you can clearly see that the LLM will try its best to follow the instructions. The result might not be 100% predictable, but it is somewhat predictable depending on the task. After the LLM does what it has been asked, you can review it, iterate on it, test it, and so on. And if you're…

anything unpredictable is inherently untrustworthy and requires extra effort to review.

Lack of determinism is not a practical concern.

it is to me. it's a knockout criteria. it is the only reason that keeps me from using LLMs for coding. nothing else is as serious an issue to me as this.

here is why: i tell the LLM to build something with requirements A B C D and E. it builds, i review and i find A B and D are good, C and E are broken. i tell it to fix them, it does, so C and E are fixed, but now A is broken. i tell it to fix that, and i have to keep iterating until i find a combination where everything works. in every iteration any part can randomly break, so for every iteration i get changes all over the place. they never are confined to the issue i pointed out. i have to review the whole thing every time. that's what i mean by lack of determinism, and that is a serious practical concern because instead of getting done in two or three iterations it requires dozens of them. see my related replies elsewhere. i just don't want to work that way.

Re: The Zig project's rationale for their anti-AI contribution policy

#435

Earlier quoted context omitted.

It’s the lack of friction that LLMs bring. It’s easy to put in a couple of lines and generate 1000’s of lines of code. Whereas the person would never have done that without LLMs. I think LLM dev needs to take a better spec driven approach. The vibing is getting to be annoying.

I think the only thing that will save us is smarter models. Slop coders are not going to stop making slop. They’ll still use even smarter LLMs badly no doubt, but I’m thinking that maintainers of open source projects will be able to more effectively use LLMs to review potential PRs to weed out the truly bad ones quickly.

I guess they could setup a competent openclaw pr review agent. The problem is again - cost. Who is paying for the token usage by open source projects? How many tokens before they exhaust their quota with junk PRs?

Re: The Zig project's rationale for their anti-AI contribution policy

#436
post #27

One reason I love writing production code in Ur/Web is that LLMs are incapable of synthesising something even remotely resembling it. Keeps me on my toes. I think this is a great policy by the Zig team.

Ur/Web! That's something I haven't heard about in ages. Is it still in active development? In what circumstances are you using it? Fun, your own startup, is some secret big commercial user of it...?

The compiler is being actively worked on by Adam and his team at Nectry, but unfortunately those developments are not currently being backported to the open source repo. I'm fairly confident this will happen eventually.

I maintain my own private fork with some small modifications which I started polishing up this week to release it for a talk that I'm preparing.

The project I'm using this on is an ecommerce site [0] written in 100% Ur/Web with a hand-rolled backend ERP system written in PHP (not by me) which I am slowly replacing bits of with new Ur/Web code. As of today, we have 22223 lines of Ur/Web code, weighing in at 701 KiB.

[0]: https://liepelt.design

Re: The Zig project's rationale for their anti-AI contribution policy

#437
post #434

Earlier quoted context omitted.

You are still dodging the question -- what is the problem with not being able to determine in advance what the LLM will do? Even then, you can clearly see that the LLM will try its best to follow the instructions. The result might not be 100% predictable, but it is somewhat predictable depending on the task. After the LLM does what it has been asked, you can review it, iterate on it, test it, and so on. And if you're…

anything unpredictable is inherently untrustworthy and requires extra effort to review. Lack of determinism is not a practical concern. it is to me. it's a knockout criteria. it is the only reason that keeps me from using LLMs for coding. nothing else is as serious an issue to me as this. here is why: i tell the LLM to build something with requirements A B C D and E. it builds, i review and i find A B and D are good,…

You'd have to review and verify even changes that you've written by hand. You might think that your hand-written code satisfies A+B+C+D+E, but until you've verified it, you cannot prove it.

That's not any different from LLM-assisted writing -- humans are inherently non-deterministic as well :)

The other fallacy is assuming that everyone else's experience with LLM-assisted writing is the same as yours. Personally, I've rarely encountered the issue you've mentioned -- most of my LLM-assisted coding has been a net positive and quite straightforward.

Perhaps it's the nature of the problem I'm working on, perhaps it's the model I chose, perhaps it's my prompting skills. It doesn't matter -- you just cannot assume that because something doesn't work for you it doesn't work for anyone else.

The other fallacy is considering LLM-assisted coding a binary option, like the nonsensical Zig policy does.

I agree with you that "vibe coding" something from scratch will likely result in poor quality and many iterations. But that's not the only way to use LLMs.

You can ask LLMs to review hand-written code. You can ask LLMs to optimize a specific part of code. You can ask LLMs to apply a specific refactor. You can ask LLMs to brainstorm solutions to a problem. You can ask LLMs to autocomplete patterns.

I could go on. This stuff works. It is helpful.

Assuming that everyone who uses LLMs is incompetent and preventing them from contributing because of a hunch or your own negative experiences is just asinine.

Re: The Zig project's rationale for their anti-AI contribution policy

#438
post #304

Earlier quoted context omitted.

Blanket banning all of these seems like a bad idea to me. It actively gates people like myself from contributing in my projects i will reject any contribution that i do not understand. even if the contribution is handwritten by an expert developer. that developer will have to earn my trust like anyone else, like you would have too. LLM contributions are non-deterministic, which means they can never be trusted. theref…

> i will reject any contribution that i do not understand Fair. > that developer will have to earn my trust like anyone else What does it take to "earn your trust"? > LLM contributions are non-deterministic, which means they can never be trusted. Provably incorrect. LLM contributions can be reviewed, tested, and understood like any other contribution. There's nothing "special" about LLM contributions. Contributions a…

> What does it take to "earn your trust"?

multiple successful contributions of increasing complexity, among other things.

>> LLM contributions are non-deterministic, which means they can never be trusted.

> Provably incorrect. LLM contributions can be reviewed, tested, and understood like any other contribution. There's nothing "special" about LLM contributions.

read this comment to see what i mean: https://news.ycombinator.com/item?id=47968180

> Contributions authored by human brains are also non-deterministic, perhaps if the author was feeling in a slightly different way they'd have formatted the code a bit differently.

i can tell a human to focus on a certain issue. they will either listen and follow my instructions, or i will reject their contribution. the LLM is almost guaranteed to not follow all my instructions and make changes i didn;t ask for. see my comment above.

>> therefore, if you use LLM to contribute, you can not earn my trust.

> The premise is wrong.

how so?

>> if you believe that you can not create a meaningful contribution without the use of LLM then you are realizing that you are not skilled enough to understand the code that you contribute

> What if I believe I can do so without an LLM, but that it could be even better with an LLM?

what you believe is not relevant. only what you can convince me of. you'll have to first show that you actually can work without an LLM before i will consider your contribution.

> What if I'm great at understanding code, but terrible at writing it?

your problem not mine. if you are terrible at writing code but good at understanding it then it's your choice to only do code reviews. you can still make a meaningful contribution that way. i'd even let you write code so you can practice that, but i am not interested in your LLM generated code.

> Again, this is a premise that you just decided to take as truth, without proof.

i don't need proof. i need trust. you need to convince me that your code can be trusted.

>> because if you could understand it, then you could write it yourself.

> False. I can understand a novel algorithm by reading and studying it, but perhaps I could have not come up with it myself.

that's called learning. once you learned it, you can write it. but in order to effectively learn you also have to practice. if you let LLM write all your code then you are not practicing, so you won't improve.

>> i want you to earn my trust by showing me that you understand what you are doing

> I can easily do that even if my contribution involves LLM assistance.

it depends on the level of assistance. i am not ruling out use of AI to do research and learn, just don't let it write the code for you.

>> i want you to grow your understanding of my project

>> none of this happens when you use LLMs

> False. Why do you think so?

as i said above, if you don't practice writing the code yourself you are not learning. not enough at least to satisfy my expectations.

>> if you are unable to make a contribution without the help of an LLM then you are not ready to contribute.

> Again, this is your opinion and you have no way of proving it. I can prove the opposite.

whether you are ready to contribute to my project or not is not something i need to prove. it is a choice based on my preference which depends on the amount of trust you have earned. you can not prove to me that you are ready to contribute. this is not a standardized test that if you pass you automatically qualify. you can only convince me by earning my trust. this is a human decision, based on feelings.

Re: The Zig project's rationale for their anti-AI contribution policy

#439
I kind of agree, and I kind of don't. Yes, cultivating contributors is the right priority. But I see AI as an assistive technology. Like a screen reader, or a magnifying glass, though obviously also unlike.

Think of it like a robotic exoskeleton. It will be used to let people do bad things, and stupid things, but it will also be used to help people who otherwise couldn't do things do good things, or become more able than they were. For some people AI means being able to code where they couldn't before. For many it will mean learning to code by observing what the AI does. For others it might mean being able to code a lot faster, or even a lot better, than they already could. And yeah, for some it will mean they atrophy in some skills while they develop others. The exoskeleton will have the same problems, if anyone ever brings a decent one to market, but on the whole it will be an enabler.

I don't see how cultivating a contributor who's using an assistive technology is worse than cultivating a contributor who isn't. Apart from that it can be more challenging, of course.

Re: The Zig project's rationale for their anti-AI contribution policy

#440

Earlier quoted context omitted.

> to "for this next step I need a vpn multiplexer written in a language I don't use" but that acceleration is exactly because you're not good at that language

Can't we reach a compromise where proven track record of good use of LLM by a contributor or a company (eg. Bun) be pre-approved or entertained? Blanket ban on a new technology shouldn't be the default option.

Why would it be pre-approved ? Code is code, whether it's bad quality LLM code or meatbag code it shouldn't matter.

The entire problem is that before the meatbag code was either not submitted at all (developer knowing they are not competent enough to do the fix) or the volume of it was low.

With LLM people not competent to even review, let alone write are emboldened to just throw shit on the wall at rapid pace. So the wall is entirely covered by the shit

Post reply on HN