Latest
All our houses are built on sand now
They took all the rock away
And every one that heareth these sayings of mine, and doeth them not, shall be likened unto a foolish man, which built his house upon the sand: And the rain descended, and the floods came, and the winds blew, and beat upon that house; and it fell: and great was the fall of it.
This was originally going to be called something like, “How slopcoded is your programming language?” But as I gathered the data, I found something else – something worse.
Almost every popular language is now substantially developed using LLMs. Particularly notable are C# and Ruby (both approximately one third of recent commits) and Julia (over half!). The languages that stand out in retaining their humanity are Chicken Scheme, Perl, Lua, Clojure, and – perhaps surprisingly for a project so closely associated with Oracle, a company who have gone all-in on hyperscale data centres and “AI” in everything – Java.
However, all of these rely on a C compiler (indirectly via the JVM in the case of Clojure), and both of the main C compilers now receive significant amounts of LLM commits. I’m not so surprised by LLVM (15.9%), but I am disappointed by GCC (3.1% and apparently rising). Outsourcing your thinking to megacorporations and commercial tools seems out of step with the GNU ethos of freely available source that anyone can modify: code that is generated by machines quickly becomes code that is only parsed and modified by machines, and a subscription to OpenAI or Anthropic becomes the (financial, environmental, and geopolitical) price of entry.
In 1984, in his acceptance speech for the ACM Turing Award, Ken Thompson
described a method by which a compiler could be subverted so that it would
always insert a backdoor into the UNIX login command, and, furthermore, when
used to compile itself would insert a similar subversion into new versions of
the compiler. Once this has been achieved, no one has access to an
uncompromised compiler.
The moral is obvious. You can’t trust code that you did not totally create yourself. (Especially code from companies that employ people like me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect.
Does it matter how slopcoded your language is or isn’t, when everything below it is slop?
Methodology
I cloned the source repositories for implementations of programming languages that ranked highly on TIOBE and LangPop. For each, I performed a shallow clone going back to the start of July:
git clone --shallow-since=2026-07-01 ${url}
I then wrote a short script that takes a three-month period and counts the number of commits that appear to be LLM-assisted. This is determined by:
- The phrase “AI disclosure” or “LLM disclosure”
- An
Assisted-by:field - a
Co-authored-by:field with the email address of a known bot
This isn’t perfect – I saw one commit that had a disclosure field followed by “none” and a link to a manifesto opposing LLM-assisted coding, but I don’t think those edge cases are significant.
#!/bin/bash
bots="ai disclosure|llm disclosure|assisted-by:|co-authored-by:.*([email protected]|[email protected]|[email protected]|[email protected])"
date_since="2026-07-05"
date_until="2026-10-06"
cd repos
for repo in *; do
cd ${repo}
total="$(
git log --oneline \
--since=${date_since} \
--until=${date_until} \
| wc -l
)"
botted="$(
git log --oneline \
--since=${date_since} \
--until=${date_until} \
-E -i --grep "${bots}" \
| wc -l
)"
percent="$(printf %.1f $((10000 * ${botted}/${total}))e-2)"
echo "|${repo}|${botted}|${total}|${percent}%|"
cd - >/dev/null
done
cd - >/dev/null
Results
This yielded the following table, which I have sorted and annotated:
| Language(s) | Repository | LLM-assisted | Total | Percent |
|---|---|---|---|---|
| C, C++, … | gcc | 86 | 2778 | 3.1% |
| C, C++, … | llvm-project | 2229 | 13981 | 15.9% |
| C#, Visual Basic | roslyn | 350 | 1114 | 31.4% |
| Clojure | clojure | 0 | 98 | 0.0% |
| Elixir | elixir | 73 | 364 | 20.0% |
| Go | go | 12 | 1092 | 1.1% |
| Haskell | ghc | 42 | 287 | 14.6% |
| JavaScript (NodeJS) | node | 395 | 1605 | 24.6% |
| Java | jdk | 0 | 1194 | 0.0% |
| Julia | julia | 489 | 918 | 53.3% |
| Kotlin | kotlin | 398 | 4612 | 8.6% |
| Lua | lua | 0 | 12 | 0.0% |
| PHP | php-src | 2 | 2124 | 0.1% |
| Perl | perl5 | 0 | 851 | 0.0% |
| Python | cpython | 219 | 1339 | 16.4% |
| Ruby | ruby | 881 | 2717 | 32.4% |
| Rust | rust | 41 | 10020 | 0.4% |
| Scala | scala3 | 18 | 538 | 3.3% |
| Scheme (Chicken) | chicken-core | 0 | 208 | 0.0% |
| Swift | swift | 135 | 4831 | 2.8% |
| TypeScript | TypeScript | 70 | 409 | 17.1% |
Repositories don’t map one-to-one to programming languages: some implementations cover multiple languages, and some languages have multiple implementations.
Older
Week 300: A canal trip and a weekend at the seaside
We started the week with a train journey to Rugby, an hour’s travel for the improbably cheap price of £5.95 each. That was an advance ticket with a Two Together Railcard, which gives a ⅓ discount, but even accounting for that it was so cheap that I couldn’t believe I hadn’t made a mistake.
Motion E02
I was at the Green Party Conference this weekend, and in the room for the vote on Motion E02: Zionism is Racism. The debate was surprisingly calm and good-natured for such a contentious topic. A member who had survived the Holocaust as a child spoke passionately in favour of the motion.
I voted against it, and I wish it hadn’t passed.
The motion passed on a margin of only 209 votes (1,022 for, 813 against) out of a membership of over 200,000. A member-led democracy isn’t all it should be if under 1% of the membership take part in votes.
Week 299: Tree walk
L— and I met an old friend on Tuesday night for some drinks (al fresco at The Rake near Borough Market) and a lot of chat. We had several years to catch up on. The lesson is that if you haven’t seen a friend in ages, even if that’s because they live far away and don’t come to London for work any more, and you’re thinking of them, send them a message.
Week 298: Drawing blood at Lidl
My frustration with typing on my keyboard reached a tipping point, and I decided to buy a new one.
Older entries can be found in the archive.