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%.
Javascript? In Gtk?
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?
I did read the source, but that doesn’t change what I said. Lines of code is a shit metric. The source even specifically says, “…line of code is of course a questionable metric” then says how 400k lines of rust are auto generated in bindings.
So after re-reading, the intent of the article is to compare lines of code between different languages and their percentage of gnome. It’s apples and oranges, and a meaningless, shit metric.
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.
Oh, that underlines my impression of Python being used more widely for Gnome programs.
13% JS? 😬
Okay I’m not surprised that C and Rust are popular, but I didn’t expect there to be so much Vala in there.
I was also a bit surprised to see that Vala is so widely adopted, but it is a very natural fit when you consider that it was specifically designed to use GObject as its OOP implementation, making it essentially a “native” speaker in GNOME.
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)






