Being Against LLMs is Against the Spirit of FLOSS
Earlier this year I wrote Vibe-coding Brings the Power of Emacs to Everything in a more positive manner surrounding this topic. This is the negative version. I am not a radical in either direction surrounding this debate. But the internet does not reward subtlety or nuance, as I also pointed out in Three Thoughts on Crypto and nfts.
The debate surrounding llm-generated code is more intense than ever. There are some people who have recently tried to turn this debate into action as an attempt to stem the tide of llm contributions that are flooding maintainers. Most notably Vim “Classic” and my own adopted public git forge of Codeberg. This is a shame, since it flies against the spirit of Free (Libre) and Open Source Software (floss).
Linus Torvalds has effectively been vibe-coding the Linux kernel for decades (his models being the world’s best kernel programmers and his agent harness email) and that has clearly turned out fine, but I still write most my code the old-fashioned way (at least in a raw loc-way) because I think that the hardest parts about programming are not solved by llms. I also do not like to refer to llms as “ai”.1
You are of course free to not accept contributions made by llms (or any contribution for any reason) to your own project, and you are also not forced to host someone else’s vibe-coded projects on your infrastructure; the beauty of floss is that they are then also free to fork your project.2 But rejecting code not for technical reasons (of which there are often many for vibecoded code) but for ideological reasons is unfortunate.
At the same time there is of course a genuine problem for maintainers happening that I do not know how to solve. One possible solution may be to only accept contributions that you yourself believe to be written by a human, while nominally accepting llms to be used in any capacity. This means that llms can be used when they are useful, but that code must remain readable and succinct enough for humans to process and develop.
llms are fundamentally a tool. Trying to ban llms is giving them too much credit; it is contributing to the framing made by companies like Anthropic and Openai that llms are a new class of software that is so powerful it must be banned, and entirely unlike all the other tools that make software development easier. Imagine banning the use of compilers and only accepting contributions written in Assembly as a way to reduce the number of contributions. It works, but is it in any way reasonable?
Such a policy — that contributing to a project because of the circumstances of the contribution’s creation, and not due to its quality — is directly contradictory to the spirit of free software. Being able to read, spread, and easily customize a program is just as useful as being able to merely run it. And the long-term strengths of free software is that it can adapt to everyone’s (collective) needs instead of each person building their own custom software.3
Arguments that llms fundamentally a part of a system of political oppression fall flat against the case of open-weight models that can be run at home on (high-end) consumer hardware. Are you going to be against online search in general because most people use Google as their provider?
The Russian-born French philosopher Alexandre Kojève pointed out that — when studying the history of Hegel’s geist — it is uninteresting to study the existence of the nihilist, because the path of nihilism is one of (intellectual) suicide. This is what is happening to these projects ideologically opposed to llms; projects like Vim Classic. They are intellectually oriented not towards improving the program either through bug-fixes or new features, but merely towards making sure that every line of code was written by hand (wilfully ignoring other automated tools such as lsp, the aforementioned compilers, macros, automated config tools, even editors themselves!). There are features that could be in the next release of my beloved Emacs right now because they have been blocked because of the initial use of an llm.4
If you actually care about the direct impacts and externalities of llms, this is not the path forward. It shutting your eyes and plugging your ears to the reality that llms are widely used to develop software, akin to what the Qing empire did during the heyday of European colonialism. Instead the solution might be to solve the underlying causes of overconsumption, fossil fuel use, and increasing inequality. ❦
Footnotes:
“ai” is a very broad term, that today mostly refers to the
specific technology of Large language models. Other forms of
algorithms (both deterministic and not) perform acts of “intelligence”
— even very simple algorithms such as a single if-statement. At the
same time it is not clear to me that llms or humans have some sort of
magical “true” intelligence that other systems do not.
And naturally you do not have to subsidise strangers’ bad ideas.
This is coming from a die-hard Emacs user, where the biggest strength comes from easily building your own tools and extending the program for yourself.
In this case for fairly valid concerns about licensing issues, another (albeit related) problem, by the fsf. How this problem is to be solved I will leave to the lawyers.
