GNOME developer Sophie Herold has shared some interesting end-of-year code stats for the GNOME project. The “GNOME” codebase is up to 6,692,516 lines of code at the end of 2025 with 1,611,526 lines of that being from GNOME apps. Where the data gets interesting is on the programming language breakdown in different areas.
Of the official GNOME Core apps, Sophie found that 44.8% of them are written in the C programming language. That’s followed by Vala with 20.7% and then JavaScript at 13.8%. Following JS is Rust with 10.3% of the GNOME Cores apps codebase being in Rust. Trailing Rust is Python at 6.9% and C++ at 3.45%.
python is less verbose in lines than C et al in my experience. Comparing lines reminds me of that tesla guy that judged employees by the amount of lines of code.
Lines of code is such a shit metric.
In the low level languages like c and rust, it takes 2 to 3 times as many lines to do the same thing. It’s a sensationalistic way to try and share information and I think the intent is disingenuous rather than ignorant.
You could always read the original source and find out the intent, but who has time for that?
The bizarre thing is that they are only analysing something like 40 programs/library. You could reach the same conclusion clicking through their gitlab for a few minutes.
The translation rate is the actually interesting part.
Okay I’m not surprised that C and Rust are popular, but I didn’t expect there to be so much Vala in there.
deleted by creator
13% JS? 😬
I think that’s the reason why GNOME is getting kinda sloppy with their code right there. I use something GNOME-based (in Cinnamon), but that’s before the oxidization and JS surveillance code was added. (Last part was sarcastic)
Those pie charts are bad
Bad how?
The slices aren’t in any reasonable order. This even led to this mistake in the article:
C was in use for 76% of the codebase followed by Rust at 10.3% and Vala at 3.77%.
(Python was between Rust and Vala at 4.76% for the library languages)
lol yeah, now that you mentioned it, the order seems to be random or some totally unrelated metric to the charts. 🥴




