Historias
Slashboxes
Comentarios
 

GTK y la estabilidad de las APIs

Entrada escrita por pleyades y editada por mig21 el Miércoles, 03 Agosto de 2016, 07:30h   Printer-friendly   Email story
pleyades nos cuenta: «Una queja habitual en el software libre es la falta de compatibilidad hacia atrás, o como quiera que se traduzca "backward compatibility". Evidentemente, hay una razón para ello, cuando estás trabajando en la V-2.0, no quieres tener que preocuparte de la V-1.0. Al parecer Gnome, y las librerías GTK en las que se basa, se usan como ejemplo por excelencia de la falta de compatibilidad hacia atrás. Las APIs no son compatibles, un programa escrito para GTK 1, no funciona con GTK 2 y uno escrito con GTK 2 no funciona con GTK 3. Esto obliga a los programadores a reescribir el software cada vez que sale una versión incompatible con la anterior y, como eso no pasa con la frecuencia adecuada, obliga a los usuarios a tener instaladas varias versiones de las librerías en el sistema. Se puede argüir que la compatibilidad hacia atrás está bien, pero es un lastre del que de vez en cuando hay que desprenderse. Es cierto, la clave está en "cierto tiempo", con qué frecuencia. Programas escritos para Windows 95, siguen funcionando hoy para Windows 10, 20 años después. Themes escritos para GTK 3.18 fallan en GTK 3.20. Pues si creéis que esto es un problema, veréis la que se nos viene encima. Un desarrollador de Gnome ha escrito cuales son los planes de futuro de Gnome en un artículo Gtk 4.0 no es Gtk 4. Creo que el título es revelador de que el nuevo GTK será mas claro e intuitivo.Sigue argumentado su queja en la página ampliada.
Algunas perlas

Vamos a incrementar la velocidad a la que sacaremos las "Major Releases" de Gtk (ie: Gtk 4, Gtk 5, Gtk 6...) a una cada dos años. Podrás tener instalados en el sistema en paralelo las cabeceras y libreriás de Gtk 2, 3, 4 and 5, si quieres


Si quieres, no. No tendrás más remedio. No todo el mundo tendrá intención de reescribir el software cada dos años, así que te verás con la obligación de mantener varias versiones.

Mientras tanto Gtk 4.0 no tendrá la API final estable de los que llamaremos "GTK 4". Cada 6 meses la neueva relase (Gtk 4.2, Gtk 4.4, Gtk 4.6) romperá el API y el ABI.


Perfecto. Una major release ya no es lo que era

La release estable no será la 4.0, sino que irá evoluconando hasta la API estable, la 4.6, 18 meses después.


Es decir, la tradición dice que sacamos una versión beta V-4.99.1 V-4.99.2 V-4.99.3..., o V.5.0-rc-1, V.5.0-rc-2, V.5.0-rc-3... hasta que alcanzamos la versión estable en la GTK 5.0. Ahora ha cambiado la denominación V.5.0 será la primera beta, y la estable se alcanzará en la V5.6, unos 18 meses después. Es decir, cambiar la nomenclatura que se ha usado siempre, eso mejorará la claridad. Y no sólo eso, la versión estable, que ha costado 18 meses no estará operativa más que 6 meses, cuando saldrá la siguiente release V-6.0, con API inestable hasta la V-6.6.

* * * *

No sé si las calidad de las liberías será beta o estable, pero parece ser que tienen intención de que las especificaciones de la API estén en un estado alfa permanente.

Como dicen en este artículo ¿Por qué construimos sobre cimientos podridos? Las APIs son como los huesos, a veces hay que romperlos para arreglarlos, y es muy doloroso. Mejor pensémoslo dos veces, y no,lo hagamos cada cuatro días.

Esta gente ha perdido el sentido de la realidad. Son desarrolladores haciendo un programa, rehaciéndolo, retocándolo mil veces, deshaciéndolo aproximándose a la perfección, sin darse cuenta del desastre que crean detrás.

¿Lo más sensato? No usarlo, y es lo que va a pasar. Si ahora hay una cierta división entre los que usan GTK2 y GTK3, el resultado de esto va ser que Gnome no volverá a ser un entrono de escritorio completo. Faltarán aplicaciones, unas funcionarán mal, otras con problemas, otras desaparecerán.

En ciertos entornos está hablándose de limitarse al QT.»

Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Toda la razon

    (Puntos:2)
    por Julio_sao (29798) el Miércoles, 03 Agosto de 2016, 10:51h (#1375916)
    ( Última bitácora: Lunes, 27 Diciembre de 2010, 18:41h )
    Tienes toda la razon.

    Romper una API cada 6 meses sólo valdrá para que nadie acabe por usarla, o bien que todo el mundo acabe integrando TODO lo necesario para su programa en paquetes tipo snap. Esto hará que cosas tan tontas como instalar gedit requieran gigas y gigas de espacio. Además, esto puede tener consecuencias indeseadas, imaginaos que cada programa java que os bajéis necesita todo el jdk por separado, si mañana se descubre que la versión XYZ del jdk tiene un fallo, estaremos buenos, pues cada fabricante tendrá que actualizar la versión incluida en sus programas (Y puede que rehacer el programa si resulta que se ha roto compatibilidad antes del arreglo)

    Si escribo un programa para un cliente, bastante tengo con resolver mis propios bugs y añadir características como para que además tenga que lidiar con la ruptura de compatibilidad cada poco tiempo por parte de los creadores de las API que uso.

    Y si soy un usuario tampoco me gustaría tener 18 versiones de la misma librería ocupando espacio, ese espacio lo quiero para mí, no para el sistema.
    --
    JulioSAO xD.
    [ Responder ]
  • Re:Preocupante

    (Puntos:4, Informativo)
    por pleyades (544) el Martes, 19 Julio de 2016, 21:28h (#1375791)
    ( http://barrapunto.com/ | Última bitácora: Martes, 19 Julio de 2016, 11:34h )

    Respecto al lazarus, es prácticamente un clon de Delphi, en mi opinión, demasiado. Deberían tener el valor de dar el salto. No obstante, como RAD e IDE es una maravilla.

    Si no te gusta QT, delphi puede ayudarte a ocultártelas, pero con Lazarus no puedes huir de QT o GTK.

    Si no quieres librerias, para freepascal también hay algunas alternativas, otros entornos graficos en pascal puro que no dependen de librerías y son multiplataforma. fpGUI [freepascal.org], que es muy ligero y funciona muy bien. También MseGui y MseIde [freepascal.org], con su propio ideal.

    El problema de Lazarus es de Freepascal. El debugger en freepascal funciona de pena. Un debugger que no puede depurar propiedades en un lenguaje orientado a objetos es un chiste. Y lo peor es que no ven ninguna solución a medio plazo. Eso, para mí, convierte a Lazarus y Freepascal en juguetes.

    • Re:Preocupante de pleyades (Puntos:2) Martes, 19 Julio de 2016, 21:33h
    • 1 respuesta por debajo de tu umbral de lectura actual.
  • por pobrecito hablador el Jueves, 21 Julio de 2016, 10:57h (#1375811)
    El tema es simple, la audiencia de barrapunto ya no son adolescentes. El tema transgresor y tal se ve muy bien a esas edades, pero cuando ya tienes unos añitos y has vivido tus movidas tu forma de pensar cambia.
    A míminimo que lo piensas un poco sabes que una API/ABI ha de ser estable, lo más posble, y si te tiras unos años diseñandola y haciendo ensayo error hasta dar con la clave no pasa nada; pero luego no se toca.
  • Re:Niñatos

    (Puntos:1, Interesante)
    por pobrecito hablador el Jueves, 21 Julio de 2016, 14:22h (#1375813)
    Es muy sencillo. Esos que tu llamas niñatos, son en realidad profesionales de empresas como M$ que está infiltrados para destruir el ecosistema del software libre desde dentro. Como GNOME es el máximo exponente de escritorio gráfico para Linux, se están cebando con él.
    • Re:Niñatos de pobrecito hablador (Puntos:1) Martes, 26 Julio de 2016, 18:29h
      • Re:Niñatos de add (Puntos:2) Miércoles, 03 Agosto de 2016, 16:27h
      • 2 respuestas por debajo de tu umbral de lectura actual.
    • 1 respuesta por debajo de tu umbral de lectura actual.
  • Re:Qué tiempos

    (Puntos:2)
    por Briareos (13321) el Miércoles, 03 Agosto de 2016, 09:22h (#1375912)
    Qt siempre ha sido superior y ahora lo va a ser mucho más. De todas maneras es verdad que todas estas historias de GTK y Qt son tanto de hace 10-15 años ya...

    Lo de Linux en el escritorio está básicamente acabado. Entiéndase por escritorio los proyectos clásicos derivados de GTK y QT como Gnome/Unity, XFCE, KDE y compañía. Todo eso es ya zombieware.

    Linux en el escritorio va a llegar a imponerse, de eso podéis estar segurísimos, pero será a través de Android. Tarde o temprano sacarán Android para ordernadores portátiles y de sobremesa y absolutamente todo el software creado con GTK y Qt desaparecerá del mapa o se tendrá que reescribir.

    Las distribuciones clásicas (para escritorio) perecerán por no haberse puesto de acuerdo hace esos 10-15 años en escoger UNA librería gráfica y UN entorno de escritorio, además de haber tardado demasiado en empezar con Wayland.

    Ahora ya es demasiado tarde.
    • Re:Qué tiempos de Julio_sao (Puntos:2) Miércoles, 03 Agosto de 2016, 10:12h
    • Re:Qué tiempos de Tasle (Puntos:1) Miércoles, 17 Agosto de 2016, 09:51h
  • 8 respuestas por debajo de tu umbral de lectura actual.