Z tego co wiem, większość GNOME jest pisane w czystym C. Podobnie w C jest napisany Pidgin (to akurat zupełnie na pewno, bo bawiłem się w tworzenie wtyczek i oglądałem kod).
KDE jest napisane w C++. Wynika to z faktu, że jest pisane na bibliotekach QT - naprawdę wygodnym, obiektowym narzędziu.
Za różnymi językami przemawiają różne argumenty. Zwolennicy C uważają, że pisanie w tym języku jest bardzo eleganckie, proste i pozwala skupić się na algorytmie. Za C++ przemawiają zalążki obiektowości. Obecnie dużo programistów skłania się ku bardzo obiektowym językom, które dostarczają wygodnych narzędzi (np. ,,garbage collector'') takich jak Java, czy C#. Dzięki temu można wygodnie tworzyć duże projekty (każdy działa wyłącznie w granicach swojej klasy) nie przejmować się osieroconymi kontenerami (,,garbage collector'' posprząta) ale płaci się za to dużymi narzutami.