Emacs, Software Development, and LLM
Built my entire first open-source C++ library completely inside Emacs — no IDE, just pure Emacs. Then r/cpp rejected the announcement because “the whole project is LLM-generated slop.” Welcome to the new normal.
Part 1. Emacs and Software Development
Just a couple of days ago, I published on GitHub my first open-source project, the TEC library, a lightweight and fast C++ framework designed for efficient performance in resource-constrained concurrent environments.
This project marks an important milestone for me as a die-hard Emacs user because the entire development was carried out completely in Emacs without using any specialized IDE.
The following Emacs packages and tools were used:
- Writing code:
eglotfor code completion, built-inibufferfor buffer grouping and navigation, andimenu-listfor code navigation in the current buffer (see my post on C++ Programming in Emacs). - Keeping notes, ideas, ToDo lists, and any project-related textual information in Org Mode.
- Debugging with dap-mode.
- Testing samples with tracing output in Eshell.
- Writing various Markdown documents for publishing on GitHub.
- Many other things, like planning in Agenda.
This has proved that it is possible to effectively manage all the stages of the software development process without leaving Emacs. I’m really happy with that.
Part 2. Software Development and LLM
My TEC project announcement at Reddit’s r/cpp has been rejected.
The reason: the entire project is LLM-generated.
No doubt, I was using an LLM to generate detailed Doxygen comments in my existing manually written C++ code for the following reasons: 1) I’m too lazy to write such detailed comments; 2) I’m sure that the API documentation should be as detailed as possible because it will be used by other people, not just me.
I thought it would be obvious that the source code is manually crafted—the repository contains 124 commits since 2022 (before the LLM epoch) with all my mistakes, bugs, and rejected ideas that anyone can trace easily—and it should be clear that no LLM has been used.
I was wrong. The entire project, including the source code, is an LLM slop, they say.
I’m afraid this situation entails unpleasant consequences and raises serious questions.
Should developers now prove that their code is not LLM-generated? In what way?
LLMs can—and do—get trained on public repositories. How can someone prove that their code is manually crafted if an LLM has already been trained on it?
We are living in tough times.
— The Emacs Cat.