GNOMOguste o no y con sus virtudes y sus defectos, sigue siendo a día de hoy uno de los escritorios y uno de los proyectos de referencia del escritorio Linux. Su relevancia hace que sea interesante conocer algunos datos más concretos, como los compartidos por la desarrolladora Sophie Herold a través de su blog alojado en el dominio de GNOME.
Según cuenta Herold, GNOME se compone en la actualidad por 6.692.516 líneas de códigode las cuales 1.611.526 corresponden a las aplicaciones que forman oficialmente parte del escritorio y 5.080.990 son de bibliotecas y componentes como GNOME Shell. En la actualidad hay 100 aplicaciones que forman oficialmente parte del proyecto.
Sin embargo, posiblemente uno de los aspectos que más curiosidad despiertan son los lenguajes de programación utilizados, sobre todo viendo que JavaScript empezó a ganar protagonismo con el estreno de GNOME 3. A pesar de ciertos mitos, la realidad es que C sigue siendo el lenguaje más empleado en la construcción de aplicaciones nucleares de GNOME, capacitando el 44,8% de estas. Le siguen Vala con el 20,7%, JavaScript con el 13,8%, Rust con el 10,3%, Python con el 6,9% y C++ con el 3,45%.

Si saltamos a las aplicaciones que forman parte de los Círculos de GNOME (Círculo de GNOME), Rust se convierte en el lenguaje dominante con el 41,7%, seguido de Python con el 29,2%, Vala con el 12,5%, JavaScript con el 9,72%, C con el 5,56% y Crystal con el 1,39%. Sorprende ver lo que cambia la situación de C cuando pasamos del conjunto de las aplicaciones de GNOME a los círculos, algo que puede deberse a que los segundos son mucho más nuevos y los primeros tienen mucha herencia tecnológica.

Cambiando el frente a las bibliotecas y los componentes de GNOME, C “recupera” la corona, y además de manera aplastante con debido a que el 76,6% de estos están escritos con el lenguaje mencionado. Los siguientes son Rust con el 10,3%, Python con el 4,76%, Vala con el 3,77%, C++ con el 2,52% y JavaScript con el 2,09%. Como se puede ver, JavaScript tiene menos protagonismo en los componentes nucleares de GNOME de lo que uno podría pensar. Por otro lado, los componentes con las bases de código más grandes son GTK con 820.000 líneas, GLib con 560.000 líneas y Mutter 390.000.

Sophie Herold reconoce que la cantidad de líneas de código es una métrica cuestionable, mencionando que esto no refleja realmente la complejidad de la situación: “En el caso de Rust, cerca de 400.000 líneas de código son en realidad enlaces para bibliotecas y la mayor parte de este código se genera automáticamente. Del mismo modo, 100.000 líneas de código Vala se encuentran en el propio repositorio de Vala. También hay componentes importantes dentro de GNOME que no están escritos en C: Orca, nuestro lector de pantalla, cuenta con 110.000 líneas de código en Python. La mitad de GNOME Shell está escrita en JavaScript, lo que añade 65.000 líneas de código JavaScript. Librsvg y glicina son bibliotecas escritas en Rust, que también proporcionan enlaces a otros lenguajes”.
Alejándonos de las cantidades de líneas de código, un detalle a tener en consideración es que la desarrolladora no confía en las estadísticas de instalaciones proporcionadas por Flathub debido a que su número “es sorprendentemente alto y cíclico”. Otros datos interesantes son que Fundación GNOME cuenta a día de hoy con 862 personas que hacen donaciones recurrentes y que “GNOMO 48 estaba traducido al menos en un 90% a 33 idiomas”, una cantidad que fue aumentada a 36 idiomas en GNOMO 49.
Y estos son los datos más interesantes de los compartidos por Sophie Herold. Veremos qué le depara el futuro a GNOME, pero lo que está claro es que a día de hoy es un proyecto que se basa principalmente en C, con la excepción de sus círculos, y por ahí circulan rumores sobre una posible conversión a Rust, los cuales tienen la misma poca credibilidad que la misma idea aplicada al kernel Linuxque en estos momentos tiene más de 40 millones de líneas de código.




