¿Deberían los desarrolladores de Gnome reescribir Gtk/Gtk+?

Bueno, esta entrada la dedico para exponer mi opinión y al mismo tiempo recibir vuestras opiniones porque no tengo muy claro qué sería lo mejor para este proyecto.

Por un lado, consideraría muy positivo que tomaran la decisión de reescribir algo que ni se esperaba que tuviera tanta repercusión (el software libre de hoy en día no tiene nada que ver con el de hace unos 5 años cuando se liberó Gnome 2) ni se esperaba que fuera todo un éxito (Gnome ha sido implantado en muchísimas distribuciones Linux como Ubuntu y Fedora y en otros SO como OpenSolaris).

Por ello, no sería nada descabellado invertir buena parte del tiempo en rehacer y planificar unas mejores bibliotecas y un mejor escritorio en vez de seguir con la política actual de parchear y parchear el código. Quizás sería también bueno cambiar de lenguaje de programación y buscar otros que permitan la orientación a objetos (es cierto que programando en C usando el API Gtk+ se puede hacer, pero es un parche más). Sería, bajo mi humilde opinión, muy positivo para el proyecto Gnome que se rediseñara todo el API buscando una plataforma más potente y con más posibilidades para el futuro y es que Gnome 2 se ha vuelto "lento". No es que sea muy lento, pero comparándolo con KDE3 es más lento y si tenemos en cuenta las últimas novedades respecto a KDE4, aún más.

Eso sí, por otro lado, comprendo la decisión de aquellos que prefieren seguir con lo que tienen porque Gnome 2 es ya un escritorio muy maduro y probado durante años. Además, tengo entendido que buena parte de los desarrolladores de Gnome no tienen mucho interés en reescribir el API que usa Gtk/Gtk+. Pero bueno, eso es otra cosa (a nadie le apetecería reescribir algo tan denso como eso...jeje).

Yo lo tengo bastante claro, preferiría que centraran sus esfuerzos en hacer algo tan completo y potente como lo que están haciendo el equipo de KDE. ¿Por qué? Porque hay que ver como de mantenible es el código de Gnome...Y es que los mismos desarrolladores de KDE también optaron por reescribir todo (una ardua tarea) para tener un código más limpio y fácil de mantener. Así que los chicos de Gnome ya podrían aprender...

Y ahora vuestro turno para expresar opiniones...

11 comentarios:

  Marshal

14 de diciembre de 2007, 0:51

Saludos, pues la verdad concuerdo contigo, ya que me parece importante que de tiempo en tiempo este tipo de librerías y escritorios se den un "refresque" que les permita adaptar nuevos lenguajes y técnicas como mencionas la aplicacion de un lenguaje basado en objetos. Pero imagino que ademas de la pereza (xq no) que les debe dar reescribir todo el código, los desarrolladores deben (no estoy seguro) sentir como una obligación de mantener los preceptos de gnome que siempre han sido de estabilidad y funcionalidad, dejando a un lado el "bling" que tienen otros como KDE. Creo que esto se debe dejar a un lado, y Gnome tiene la oportunidad de lograr esto (como lo esta haciendo KDE) y brindarnos a los usuarios de Software Libre uno de los mejores escritorios existentes. Una demostración de lo que digo es el nuevo motor GTK que van a utilizar en Ubuntu Hardy, donde las transparencias se lograron en 10 lineas de código y sin afectar la estabilidad

  Alginros

14 de diciembre de 2007, 8:24

@Marshal: Muy de acuerdo contigo. Esto no se trata de otra competeción de Gnome es mejor o KDE es mejor. Simplemente se trata de buscar un futuro mejor para ambos proyectos. Personalmente, me gusta más KDE, pero también me gusta Gnome y me gustaría que ambos entornos tuvieran unas librerías más potentes (bueno, KDE4 ya las tiene. Ahora solo hay que sacarles el máximo partido). Y es que con los años, se pueden ir mejorando las cosas.

Además, sería un buen momento para eliminar esos bugs extraños que aparecen de vez en cuando en Gnome y que son difíciles de corregir.

Saludos

  /jk

14 de diciembre de 2007, 13:32

Es un proyecto ambicioso, si bien los chicos de KDE lo llevaron adelante, hay que aceptar que existe mucho mas complejidad (y desorden) en la plataforma GNOME, simplemente observar los metodos de instalacion manual de ambos desktops y saltan las diferencias en cuanto a la organizacion. Instalar GNOME a mano es una odisea.

Quizas la mejor decision seria hacer un fork y continuar con ambos proyectos para no tirar abajo el trabajo de tantos años y darle continuidad y la posibilidad de elegir a los usuarios.

En lo personal, siempre me gusto GNOME sobre KDE. Y seria muy agradable poder contar con un desktop conciso, rapido, estructurado y unificado.

Saludos.

  Alginros

14 de diciembre de 2007, 13:48

@/jk: Hombre, un fork siempre es una solución...pero es que hacer un fork de un proyecto tan grande como Gnome no tiene que ser nada fácil. Es más, sería muchísimo más sencillo reescribir las bibliotecas y hacerlo de nuevo porque comprender un código "sucio" tan grande tiene que ser toda una odisea...

De todos modos no deja de ser otra opción, mantener el actual Gnome y crear otro nuevo clon.

  /jk

14 de diciembre de 2007, 21:25

@alginros: Cierto, hacer un fork de un proyecto enorme es quizas mas trabajoso que una re-implementacion. Pero tenemos un caso de exito que no podemos ignorar, un fork de un proyecto enorme que logro reemplazar al original. Estoy hablando de XFree y X.org. Creo que el secreto esta en que el fork lo tiene que hacer gente de adentro, que es en definitiva en lo que consiste el fork. Ademas, el fork no consiste en reinventar el soft, sino en darle un toque diferente.

Saludos

  Alginros

14 de diciembre de 2007, 21:57

@/jk: Pues no puedo estar más de acuerdo contigo. Aunque sea complejo, la gente de adentro comprende o debe de comprender esa "chapucilla"(refiriéndome a la legibilidad del código, no a la calidad. Aunque un código limpio tiende a ser menos propenso a errores y por tanto es una buena técnica de ingeniería de software).

Alquien que no pertenezca al grupo de desarrolladores de Gnome lo tendrá mucho más complicado por varios motivos:
a) Hacer un escritorio no es nada sencillo, y la experiencia se nota y mucho
b) Será más fácil comprender y reestructurar las cosas si has trabajado ya con ese código en vez de si es tu primera vez.

  bachi.tux

15 de diciembre de 2007, 22:30

También de acuerdo. Creo que sin ir más lejos, veamos como le va a Window$ y sus aplicaciones privativas: años de parches y parches para hacer lento absolutamente todo!

Creo que un "refresco" en las librerías y el cambio de código añadiendo nuevos objetos más dinámicos podría dar como resultados futuros más prodigiosos y más estabilidad (no digo que no la haya).

un saludo y concuerdo!

  Marshal

16 de diciembre de 2007, 7:40

Interesante tema, la verdad me agrada bastante y creo que una de las soluciones que podrían utilizar estos programadores que son "conocedores" del código de Gnome es usar el apoyo de la comunidad en cuanto a la "limpieza" del código. ¿A que me refiero?, a que lancen el código a quien le interese "limpiarlo" (osea reescribirlo y comentarlo correctamente que seria el primer paso) de esta manera, ellos mismo se ahorrarían este trabajo y nada mas ayudarían a contestar dudas y una vez reescrito el código podrán dedicarse a mejorarlo, se que suena un poco difícil, y lo incomodo que es leer código "malhecho" por decirlo de una manera, pero yo soy uno que podría usar uno que otro rato libre para traducir el código y mejorarlo eventualmente

  Alginros

16 de diciembre de 2007, 9:39

@Marshal: Desde luego que es una muy buena idea, pero no quiero desilusionarte mucho... pero normalmente ese código está hecho como no se deben hacer muchas cosas. Es decir, como te enseñan a no programar, xD(es eficiente, pero muy muy sucio).

Te lo digo porque yo ya he mirado partes del kernel y de programas de rendimiento y hombre...el código es en muchos fragmentos bastante ilegible. Lógicamente con el tiempo se entiende, pero no es un código que de la primera pasada ya lo comprendas, ¿entiendes?

Lo que quiero decir no es que haga falta ser un auténtico crack programando para entenderlo (hace falta lógicamente conocer cómo funciona Linux por dentro), lo que hace falta es estudiar un código. Y el tiempo suele oscilar según el número de líneas...Y si hablamos del API de Gtk/Gtk+...hombre, ahí seguro que hay muuuuuuuuuuuchas líneas de código.

Así que bueno, sería una opción más que nada porque en la comunidad hay muy buenos programadores, pero que no es tan sencilla la solución. La prueba la tienes en que tanto para el equipo de desarrollo de KDE como el de Gnome no hay tanta gente desarrollando. No es tan sencillo (aunque pueda apasionarnos, jeje).

  magarto

16 de diciembre de 2007, 12:35

Es cierto que lo del fork no sería muy viable, pero estoy totalmente contigo Alginros.

Exactamente por estos motivos, en cuanto salga KDE4 intentaré dejar de lado a GNOME y usaré KDE4, porque estoy harto de la incompetencia de esta gente. Elaboraron un impresionante escritorio en los 90, pero ahora está dejando mucho que desear. Mi ordenador se ha vuelto muyyy lento y no puedo seguir en esta situación y prefiero dejar de lado lo bonito que lo tengo y personalizado (por ejemplo no aparece en pantalla ni dock de avant window navigator ni tampoco el dock - la típica barrita de inicio), sólo aparece la ventana abierta.

Como KDE4 tampoco me convezca me pasaría a Flubox

  Alginros

16 de diciembre de 2007, 13:50

@magarto: Yo te diría una cosa. KDE4 va a prometer mucho, pero juzgar su versión 4.0 respecto a Gnome 2 sería un poco injusto. No por nada, sino porque probablemente hasta que salga KDE4.1 no se habrá acabado de definir qué es KDE4. Un claro ejemplo es el panel de programas. El de la versión actual es muy reducido en opciones porque todavía no se ha acabado el nuevo menu (hay varias opciones, Raptor o Lancelot). Además, la versión KDE4.1 soportará los widgets de Mac OS X. Algo que bajo mi juicio es muy bueno porque para este SO hay unos widgets increíbles.

Yo, como buen KDEro, usaré KDE4. Pero seguiré dejando KDE3 por si acaso...De todos modos te recomiendo que pruebes KDE3. No sé qué le ves de mal, pero es rápido (no como Gnome), muchísimos menos fallos. Muy funcional. Soporta más cosas....

De todos modos esto viene a poco cuento en esta entrada, xDD.

Retomando el tema, lo suyo sería que los chicos de Gnome se pongan de verdad las pilas y centren su trabajo en mayor estabilidad, eficiencia y soporte de nuevas tecnologías desde el API, no como parches y parches (que es lo que llevan haciendo hasta ahora).