home | tags


An excellent articulation of the reasons a project would ban AI

tags: #rant #AI

We already knew that encouraging AI risks skill development, often even basic skills [1]. We’ve also known that LLMs destroy the traditional feedback loop that builds skill (i.e., write code, fail, learn how to debug, understand [2], fix/improve) and replaces it with a trial-and-error loop (prompt, get code, test, tweak prompt). What you don’t get out of this is the ability to reason about your code (we used to call it “dry-running” back when we had only time-shared mainframes, and a printout!), or develop an intuition about how to debug code or where the bug may lie. In short, you don’t have a mental model of your code.

As a result, you are unable to debug “new” bugs that appear much later. You can’t explain [3] why you chose one way to do something versus any other. You almost certainly won’t be confident touching a large system with multiple interlocking modules.

Consequently, there are projects that have banned AI generated code.

Zig is a programming language that is designed to be “a general purpose improvement to the C programming language”. As such, it is starting to become popular. After all, not everyone can start using rust!

The Zig project has a very strict “no AI” rule. As Simon Willison explained:

No LLMs for issues.

No LLMs for pull requests.

No LLMs for comments on the bug tracker, including translation. English is encouraged, but not required. You are welcome to post in your native language and rely on others to have their own translation tools of choice to interpret your words.

The reasoning for this is explained here. But we go back to Simon Willison’s blog post for a summary:

Zig values contributors over their contributions. Each contributor represents an investment by the Zig core team - the primary goal of reviewing and accepting PRs isn’t to land new code, it’s to help grow new contributors who can become trusted and prolific over time.

LLM assistance breaks that completely. It doesn’t matter if the LLM helps you submit a perfect PR to Zig - the time the Zig team spends reviewing your work does nothing to help them add new, confident, trustworthy contributors to their overall project.

This has profound implications for enterprise IT as well. Over-reliance on LLMs will create “human” debt and technical debt that will bite your company in the ass sooner or later. Sooner, if your projects are even moderately complex or failure has real-world implications (legal, financial, whatever).


References

  1. The Entry-Level Coding Crisis: Why LLMs Haven’t Made Programming Easier for Beginners—They’ve Made It Impossible says, The question is no longer whether AI will impact coding jobs. It already has. The question is: what remains of the human coder’s value, and how does someone acquire that value when the traditional path to expertise has been automated away?

    Some quotes:

    Here lies the fundamental problem: every item on that list requires experience. You cannot enforce best practices you haven’t learned. You cannot optimize code whose performance characteristics you don’t understand. You cannot audit AI output if you haven’t written enough code to recognize patterns and anti-patterns. You cannot write effective pseudocode without understanding implementation constraints.

    “The Path Forward” section is particularly interesting from a teaching perspective:

    So where does this leave aspiring software developers in 2025? The traditional route—study computer science, land a junior role, learn through doing, advance to senior positions—has been fundamentally disrupted.

    The market hasn’t adjusted. Universities still graduate thousands of CS students trained for a job market that no longer exists. Employers complain about skills shortages while rejecting candidates who lack experience impossible to obtain. Entry-level salaries have stagnated while senior salaries continue rising, reflecting a bifurcation between those who can leverage AI tools and those still trying to learn basics.

    It suggests that, instead of crying about it, both academia and industry should assume students already have done some coding, even if AI-assisted, and teach architecture, system design, ethics, etc. (I would also add performance/efficiency, the ability to reason about code mentally – what I called “dry-running” earlier). Industry can teach how to “specify, audit, and optimize AI-generated solutions”.

  2. For example, consider variable scoping. Every language differs in how it handles scoping, and it is almost impossible to write correct and future-proof code without understanding this. But the LLM feedback loop won’t teach you that; it’ll get the job done (for some definition of “done”), but you don’t get any long term learning out of it.

  3. “I Would Have Written My Code Differently”: Beginners Struggle to Understand LLM-Generated Code

    Our results show a low per-task success rate of 32.5%, with indiscriminate struggles across demographic populations. Key challenges include barriers for non-native English speakers, unfamiliarity with Python syntax, and automation bias. Our findings highlight the barrier that code comprehension presents to beginning programmers seeking to write code with LLMs.