exo learns clojure because she hates slop

For a variety of reasons I won’t get into here, I do not want to use or depend on LLM-generated code if I can. In fact, the forum software we use right now has embraced LLM-generated code by including instructions for AI in the repository – in addition to all of the other reasons I dislike it. I’m interested in making something that could replace it.

But if I’m going to make something to replace it, I would like to use something that explicitly rejects LLM-generated code. This made me wonder what my favorite programming language, Haskell, thinks about LLM-generated code. I had a little trouble finding the contributing guidelines for the popular Haskell compiler GHC, but @Lain helped me out (source):

The GHC Project is generally willing to accept “AI Contributions”. These are contributions which are in whole or in part the product of AI tooling, with some caveats given the two primary challenges posed by AI output: correctness issues and potential licensing violations.

GHC has a bit of a nuanced opinion on the matter (which I do not agree with, but I digress), but it’s clear that they allow it. So, I was browsing the slopfree software index for things that have explicitly taken a position against slop in their contributing guidelines. Clojure takes a stance that is more aligned with my values (source):

Clojure’s code is written and reviewed by humans. Code generated by a large language model or similar technology, such as Anthropic’s Claude, GitHub/Microsoft’s Copilot, OpenAI’s ChatGPT, Facebook/Meta’s Code Llama et al, is not compliant with the covenants and representations of Clojure’s Contributor’s Agreement, and is thus not acceptable as code for Clojure.

And while the OpenJDK, the developers of the JVM that Clojure relies upon, has not taken an explicit stance, they do have verbiage in their contributors agreement requiring the code being contributed to be originally authored just like Clojure does. I’ve known about Clojure for a while and its overall design ethos vibes with me, so I’m going to try learning it. I’ll use this thread to report on my progress as I go along.

Although I am comfortable with functional programming, I haven’t used a Lisp-inspired language yet, so I’m sure it will be a bit fun to learn for the first time. I’m also interested if anyone else wants to learn it with me, or what other people think of Clojure, both good and bad.

1 Like