The LLM Curse

I encountered a package, and 99.9% of the Haskell code of that package was–proudly!–written using Claude. I took a browse through the code.

Something that came to mind was The Lisp Curse: Broadly speaking, the Lisp curse is that syntactic abstraction, and extension of the language, is so powerful that Lisp programmers don’t bother to buy into broader abstractions. They don’t make compromises with the community in order to get things built into the language in the same way as, say, Haskell programmers do. A lot of long discussions in the GHC proposals list could often just be a macro in Lisp, for example. So, in a way, every large project in Lisp is kind of reinventing many ideas sui generis, and you’re not advancing the language forward.1 Whereas, one could argue, many ideas that have developed in Haskell, that were put into the language itself, have spread to other languages. It’s ironic because when you think of assembler or C, that’s (reinvention) the kind of thing that they suffer with, and it’s not something that you would imagine a really high-level language like Lisp would suffer with.

How a language interacts with the people that use it is quite important.

I am starting to wonder whether this practice of vibe coding, i.e. having 99% of the code generated by an LLM interaction, may lead to a similar problem. If it’s so cheap for me to generate walls of code which have loads of repetition, simply because I can just drop it and re-create it on a whim, that reduces the value of abstraction and it reduces another human’s interest in reading that code. (I can’t be the only one who has zero motivation to read AI-generated code.) In other words, you start losing interest in actually programming Haskell, and the particular language matters even less, so now every project out there will, basically, not have to share any kind of abstractions or ideas, because you’re just going to use an AI to explain someone else’s project to you anyway.

Then we’re back to The Lisp Curse. Coming to a language near you. The LLM Curse?


  1. Parenthetically, I don’t worry too much about this for Elisp because I consider Emacs to be entirely about being selfish and focusing only on your own needs. I’m actively annoyed if they update the language.↩︎