3 ms·
Gnome has historically been written in C (after having played with Obj C and C++, which they didn't like), and while it has adopted other languages like js, lar
by diegocg 6y ago
Gnome has historically been written in C (after having played with Obj C and C++, which they didn't like), and while it has adopted other languages like js, large parts of it are still written in C/Glib.
I don't find surprising that people don't find writing desktops apps in C attractive. That's in fact why the mono guys tried to make people use C# (previously, Sun had employed quite a lot of desktop people and of course they had pushed for Java, so there were some Java/GTK apps done by them and nobody else). The C# push lasted some years but eventually died because Linux enthusiasts never liked a MS technology that run code in a memory-hungry VM. Then, someone created Vala - a way to get the syntax advantages of a modern language like C#, without depending on a C# runtime. Once again not everybody liked the idea of transpiling a language not used anywhere but in Gnome, so not everybody adopted it, and these days it seems to be mainly popular in the Elementary desktop.
Then came the new trend: Javascript. The Gnome people has a strange addiction to following trends, so of course they decided that the future of the Gnome platform was Javascript, the definitive language that everybody will use in the future. It turns out, Javascript's GC didn't play very well with Glib's reference counting, but nobody thought that well before basing the desktop's entire shell on it, so for years the Gnome Shell became a memory hog that would eat hundreds of MB of RAM that would not get freed because of the interaction between the two memory management systems. That lasted until quite recently.
Now there are some parts of Gnome pushing for Rust. Fortunately for Gnome, Rust may be good enough to actually become a final destination for them, but even then not many people seem to be using it?
Anyway, my point is that in the modern Gnome desktop, you may end up running a Javascript shell running on top of a Glib/GTK core, then some huge C apps like Evolution and Gimp, then others written in Vala or even C# and now Rust. Gnome has been searching for a C replacement for too long, maybe they should stick to one language, and create a really solid platform in order to attract more people instead of switching targets every few years
- pjmlp 6y agoWhich is also why in what concerns Xamarin roadmap, macOS, Windows, iOS and Android are what matter, with Linux left for the community.