Cambiar el ciclo de liberación.

Cuando allá por el año de 1993 nacieron las 3 primeras distribuciones, aquellas que hoy amorosamente llamamos distribuciones madres, su único público objetivo eran los propios profesionales de la informática: programadores, hackers (y también crackers) y administradores de sistemas.

En estos 20 años muchas cosas han cambiado. El software libre, principalmente (pero no en forma única) encabezado por las distribuciones GNU / Linux reina en forma casi absoluta en el mundo moderno.

En este momento te preguntaras si he perdido el juicio, especialmente cuando ves a tu alrededor y casi exclusivamente observas computadoras en las que está instalado algún sistema operativo privativo como son el W$ de M$ o el Mac de Apple.

Pues no, no se me ha zafado ningún tornillo, lo que ves en los escritorios de las empresas, o de las oficinas públicas o en algún lugar de la casa solamente representan la punta del iceberg. La gran mayoría de las computadoras no se encuentran ahí. Se ubican en los enormes data center de las mas variopintas empresas, en los cuarteles y bases militares, en los centros de operación de las compañías de telecomunicaciones, en las principales bolsas de valores del mundo y por supuesto en las áreas de logística de muchísimos gobiernos nacionales, por solamente mencionar algunos.

Pero en algo tienes razón, esa punta del iceberg es la mas visible y es el único lugar donde las distribuciones no se han podido imponer. Tristemente representan solamente una ínfima fracción del total instalado.

Un problema grave que padecen las distribuciones GNU / Linux en el escritorio es que muchos de los programas dirigidos al usuario de oficina o al doméstico, sufren de algunos problemas, a saber:

  • No son tan “vistosos” y “elegantes” como sus contrapartes privativas.
  • No existen (aún) programas equivalentes.
  • Los formatos de archivo de los programas líderes, son cerrados y no pueden ser leídos o escritos (en forma total o parcial) por sus equivalentes libres.
  • Son desconocidos por el gran público.
  • Carecen de algunas funciones que son consideradas importantes por los usuarios.
  • No existe una variedad tan amplia de programas de tipo lúdico (juegos).
  • Es extremadamente sencillo obtener copias “no legales” tanto del sistema operativo, como de los programas.

A esta lista seguramente tu le podrás agregar tus propias observaciones. La buena noticia es que por la naturaleza del software libre la brecha se está cerrando. La enorme cantidad de programadores que eligen el software libre crece y crece cada día, supera ya en mucho al número de sus pares que eligieron el modelo cerrado.

De hecho, a pesar que las distribuciones nacieron casi 15 años después que los sistemas operativos privativos (y con ellos los programas aplicativos). Hoy en día encontramos montones de programas que ofrecen excelentes prestaciones, tanto al usuario doméstico como al corporativo.

Mas aún, el ritmo de avance es bastante mayor en el mundo GNU / Linux que en el de sus equivalentes cerrados.

La anterior reflexión nos conduce necesariamente al siguiente obstáculo que paradójicamente son las propias distribuciones. Me explico: El desarrollo es tan veloz que todo el software cambia en forma vertiginosa. Esto conduce a que las versiones de cada distribución aparezcan en plazos extremadamente breves de entre 6 meses y 1 año como máximo. Para colmo, como la inmensa mayoría de las distribuciones son gratuitas y mantenidas por voluntarios (o al menos la mayoría de ellos) no es posible ofrecer soporte de actualizaciones por plazos largos, generalmente este se mantiene por un máximo de 18 meses.

Además, el modelo que sigue la mayoría de las distribuciones implica que para actualizar un programa a la siguiente versión, por ejemplo un simple reproductor de música ¡Se requiere cambiar el sistema operativo completo y claro esperar los meses necesarios a que este se presente!

Para el fanático de las computadoras esto es el paraíso, pero para el común de los mortales resulta una pesadilla, con buena suerte lo hará una o dos veces y hasta ahí.

Ahora que si hablamos de ambientes laborales, simplemente es imposible. Yo no conozco ningún departamento de sistemas que esté dispuesto a cambiar el sistema operativo de decenas, cientos o miles de computadoras, ya no digamos cada 6 meses, ni siquiera en forma anual.

Las áreas de sistemas por lo general requieren de largos periodos de evaluación, que oscilan precisamente en ese lapso de 6 meses a un año. Y además requieren realizar una adecuada planificación para hacer las sustituciones físicas en cada PC; eso sin contar con el tiempo que toma cada actualización, aún con el uso de herramientas de despliegue por red.

Pero resulta que los usuarios necesitan con desesperación de tal o cual nueva característica de por ejemplo la suite de oficina, o de un programa de comunicaciones o sabrá Dios que cosa.

LTS primera parte de una solución

Ubuntu creó el concepto LTS (Long Term Support), es decir una versión especial que tiene una vida mas larga, tanto en tiempo de mantenimiento, como en su ciclo de liberación. Actualmente las LTS de Ubuntu se liberan cada 2 años y su ciclo de soporte se extiende hasta por 5 años. También algunas otras distribuciones no derivadas de Ubuntu han comenzado a ofrecer versiones LTS.

Estos periodos son mucho más aceptables para el usuario común, ya que tampoco es razonable repetir el desastre del W$ XP que ha durado ya mas de 10 años y en este momento es un serio problema (aún cuando los usuarios no se den cuenta o no lo quieran aceptar) como en repetidas ocasiones lo ha manifestado el propio M$. Simplemente la tecnología cambia demasiado rápido como para sostener una pieza de software por tanto tiempo.

Por desgracia el modelo LTS aún presenta el problema que no actualiza las aplicaciones comunes de usuario, entonces podemos terminar con un sistema operativo que nos dure 5 años, muy estable, muy seguro ¡pero con programas muy viejos!

Si bien es cierto que existen métodos alternativos para actualizar a nuevas versiones algunos de los programas, hay que reconocer que son cuando menos dificultosas; En resumidas cuentas contrarios al espíritu de sencillez y seguridad que acompañan al proceso de actualización de cualquier distribución. Sobra decir que no están al alcance del usuario común que no entiende (y/o no quiere entender) de los vericuetos de métodos alternativos de instalación.

El modelo Rolling Release

En el otro extremo de los ciclos de actualización se encuentra el modelo RR, en el cual todas y cada una de las partes del sistema operativo se van actualizando continuamente. Cada distribución de este tipo lo hace en forma un poco diferente a las demás; las hay que liberan sus actualizaciones tan pronto como están listas y empaquetadas, otras esperan un tiempo hasta que se armonizan todos los paquetes y otras en cambio prefieren establecer ciclos regulares, por ejemplo semanales, quincenales, mensuales, bimestrales o incluso trimestrales.

Esto parecería ser la solución, sin embargo las distribuciones RR por lo general y dependiendo del hardware donde estén instaladas, pueden presentar problemas de compatibilidad con el equipo. Ya sea por que se requieren controladores privativos, o porque se ha retirado el soporte a tal o cual característica del núcleo o por otras razones de tipo técnico.

Esta simple posibilidad por lo general las hace indeseables en un ambiente de trabajo, donde no es posible estar con “el Jesús en la boca” cada vez que se actualice el sistema, confiando en que esta vez no habrá problema. La simple posibilidad hace que no sean una opción razonable en un ambiente laboral.

De la misma forma, el usuario común, ese que no sabe de computadoras, pero que las usa continuamente, no desea tomar ese tipo de riesgos, o los toma hasta la primera vez que tiene un problema serio y entonces como efecto resorte, sale a predicar que las distribuciones GNU / Linux no son buenas, que fallan, que…

El modelo Semi Rolling

Escribió Aristóteles que “la virtud es un justo medio entre dos extremos” y podemos decir que ese concepto sigue tan válido como cuando se propuso. La alternativa Semi Rolling es aquella donde una distribución actualiza aquellos programas que no comprometen la estabilidad general del sistema; es decir y por lo general, los programas para el usuario de escritorio.

Durante años y años he escuchado y leído acerca de las mil y un razones por las que “esto no es posible”, de igual forma he sabido de los postulados que claman que esto no es deseable y no sé que tanta cosa más.

Y la situación se mantuvo así hasta el día en que un programa, respaldado por una multimillonaria empresa decidió hacerlo a su forma, me refiero por supuesto al Google Chrome, que hoy en día es el navegador de Internet mas usado en el mundo. Chrome incorporó en su código un sistema de verificación de versión que, por encima de los deseos y ordenamientos del sistema operativo donde se ha instalado, si encuentra una versión más reciente, procede (con el consentimiento del usuario o no dependiendo del sistema operativo) a descargar y a actualizarse.

El modelo fue aceptado inmediatamente por el gran público, harto de actualizar o de buscar las actualizaciones necesarias. Ante este panorama, la Fundación Mozilla, que edita el navegador Firefox hubo de cambiar su propio modelo. En primer lugar ahora tiene un ciclo de liberación rápido (cada 6 semanas) y de forma increíble la gran mayoría de las distribuciones acompañan al Firefox y a Thunderbird en su nuevo ciclo de liberación. Incluso el propio Internet Explorer de M$ va en ese camino.

Ahora quedaba al descubierto que es posible actualizar en forma simple muchos de los programas de usuario, SIN COMPROMETER LA ESTABILIDAD.

El siguiente paso ocurrió después del gran riesgo para el software libre, que significó la toma de control por parte de Oracle de la suite de oficina Open Office. Tras la ruptura con Oracle y la posterior creación de la suite Libre Office de The Document Foundation, la inmensa mayoría de los usuarios que estuvieron enterados, retiraron de sus distribuciones instaladas al Open Office y lo reemplazaron con el Libre Office, sin esperar a que los responsables de las distribuciones liberarán una nueva versión que incluyera al nuevo producto. De hecho es posible afirmar con bastante seguridad que estas acciones de los usuarios forzaron a las distribuciones a cambiarse al Libre Office. Y nuevamente SIN COMPROMETER LA ESTABILIDAD.

Inevitablemente algunos programadores, con el mismo hartazgo que tengo yo, se decidieron a crear sus propias distribuciones Semi Rolling. La primera que yo encontré y de la cual de inmediato me hice usuario y fan altamente comprometido fue Bodhi Linux, aunque con posterioridad aparecieron otras como SolusOS y algunas más que en forma más tímida han ido presentándose.

Sin embargo hasta el día de hoy ninguna de las grandes distribuciones se ha decidido a cambiar de modelo de liberación. Desde mi punto de vista hay 3 razones principales: 1) La necesidad de ciclos regulares de liberación que les procuran publicidad y con ella fondos financieros. 2) La resistencia (tan humana maldición) que tienen las comunidades a cambiar la forma en que “siempre se han hecho las cosas aquí”. 3) La enrevesada forma en la que están construidos los paquetes en las distribuciones.

Las cosas en su lugar

En cuanto a la primera causa, parece que las distribuciones no tienen ni el suficiente valor, ni la suficiente inteligencia de mercado para darse cuenta que tendrían mucha mayor publicidad y notoriedad (y con ellas mas fondos) si un número creciente de usuarios encontrarán suficientes motivos para cambiar su sistema operativo a una distribución GNU / Linux.

Hablando de la segunda causa, la más difícil de vencer, está íntimamente relacionada con la falta de un liderazgo (tal vez uno unipersonal). La meritrocracia en que se basan casi todas las distribuciones modernas tiene el enorme inconveniente de pulverizar el protagonismo de alguno de sus miembros; peor aún, ocurre con frecuencia que la politiquería interna de las comunidades termina por apagar todo intento de cambio, como no sea el propio cambio que tienen las piezas de software que la forman y que afortunadamente no están bajo su control.

La tercera causa es la única que tiene alguna razón. Bajo el modelo actual, donde por cierto se abusa de los meta paquetes, resulta que para instalar el programa A, es necesario instalar el B y el C y… Ya se vio que este es un paradigma falso en muchos casos, pero es un hecho que los paquetes están construidos así, por ejemplo cada vez que se actualiza Firefox en una de las derivadas de Ubuntu, Xubuntu por ejemplo, también se instala la integración con Unity. Sobra decir que en Xfce no se usa Unity. Tanto es así que hoy por hoy resulta extremadamente problemático quitar programas. Hace unos días veía yo una solicitud de soporte: Un usuario de Ubuntu había instalado Wine, después decidió quitarlo y para su sorpresa el proceso hizo desaparecer otras muchas cosa, incluyendo el Centro de Software y nada menos que APT. Esto simplemente es absurdo y por decirlo suavemente: ¡Estúpido!

Así que el verdadero problema, que por cierto las distribuciones no quieren reconocer, es que para pasar a un modelo Semi Rolling habría en primer lugar que revisar y reescribir todas las definiciones de los paquetes, tal vez incluso los propios gestores de paquetes.

Es un trabajo ingente, monumental. Tarea de titanes si se quiere, pero me pregunto: ¿No han hecho mucho mas las Comunidades al crear prácticamente de la nada las distribuciones?

Paulatinamente la idea de lo insostenible de la situación ha ido permeando entre miembros de algunas comunidades; el mas reciente y sonado ha sido la propuesta de convertir a Ubuntu en una distribución RR. Debo confesar que como fue planteada en un inicio mereció mi rechazo, que por supuesto no tiene ninguna importancia. De importancia capital fue la desaprobación de Mark Shuttleworth líder indiscutible de Ubuntu.

Sin embargo el Tio Mark (como jocosamente lo ha llamado mi amigo @ivisdrek) tuvo tiempo de pensar mejor las cosas y unos días después propuso:

I think we could build on this to enhance the LTS with newer and better versions of the core UX (Unity) as long as we don’t push those users through a major transition in the process (Unity/Qt, anybody? ).

Creo que podríamos mejorar la LTS con nuevas y mejores versiones de la parte principal (Unity) de modo que no empujemos a los usuarios a un gran esfuerzo de transición (Unity/Qt ¿alguien?)

Currently, we make one giant release of the platform and ALL APPS. That means an enormous amount of interdependence, and an enormous bottleneck that depends largely on a single community to line everything up at once. If we narrowed the scope of the platform, we would raise the quality of the platform. Quite possibly, we could place the responsibility for apps on the developers that love them, giving users access to newer versions of those apps if (and only if) the development communities behind them want to do that and believe it is supportable.

Actualmente preparamos una gigantesca versión de la plataforma y TODAS LAS APLICACIONES. Esto significa una enorme cantidad de interdependencia y un enorme cuello de botella que depende de una sola comunidad para armonizarlo como un todo. Si limitáramos el alcance a la plataforma, se elevaría la calidad de la misma. Con esto posiblemente podríamos poner las aplicaciones bajo la responsabilidad de los desarrolladores que las aman. Dando a los usuarios acceso a nuevas versiones de estas aplicaciones si (y solamente si) las comunidades de desarrollo detrás de ellas desean hacerlo y creen que es posible.

Nótese que no menciona por su nombre al modelo SR, pero en resumidas cuentas ¡Es de lo que habla! Versiones LTS tipo Semi Rolling.

Por supuesto el Tio Mark está casi exclusivamente interesado en Unity; pero de la misma forma todas las grandes distribuciones pueden (y deben) encontrar su propio nuevo estandarte. Ese algo que las distinga de las otras, que siendo realistas se ha ido perdiendo con el paso de los años.

Así me puedo imaginar distribuciones centradas en las comunicaciones, en la oficina, en las artes, en la educación y en muchas otras áreas. Esto por supuesto debería venir acompañado de una mucho mayor comunicación y colaboración entre las comunidades y los programas que las distingan.

Puedo imaginar numerosas notas de prensa donde juntos, distribuciones y creadores de software presenten sus avances. De igual forma veo como los usuarios tomarían un renovado interés en su distribución favorita.

Otro gran beneficio debería ser para los desarrolladores de aplicaciones, que hoy en día deben esperar muchos meses antes que ese nuevo programa o versión aparezca en alguna distribución. A tal grado que a veces ocurre que alguna versión nunca llega a estar en los repositorios de las distribuciones, simplemente porque en el lapso del ciclo de liberación, él produjo una o mas versiones nuevas. Sobra decir que esto no ocurre en los sistemas operativos privativos. ¡Esto les baja el ánimo y la motivación! Y por supuesto la retroalimentación que deberían recibir de los usuarios.

Además con esto debería apagarse un poco la absurda “guerra” entre los escritorios, que ha sido al parecer el motor principal de renovación de las distribuciones; aún en plena efervescencia por la aparición de Gnome-Shell y todos sus sustitutos.

Las distribuciones GNU/ Linux deben darse cuenta de una vez por todas que el futuro está en las aplicaciones, más allá del escritorio. No hay necesidad de ponerse a bailotear y gritar como loco, para darse cuenta que ahí está el pan.

W$ 8, BlackBerry 10, iOS, FirefoxOS, pero por encima de todos Android, son una clara muestra que lo que los usuarios quieren / necesitan son aplicaciones actualizadas.

Dejo este último párrafo para las versiones Servidor. Es obvio que los administradores de sistemas no desean ni siquiera oír hablar de modelos Rolling. Así que las grandes distribuciones deberán separar por completo sus versiones e incluso de ser necesario, sus equipos de desarrollo. Pero al fin y al cabo eso es evolución: Renovarse o morir.

Anuncios

2 pensamientos en “Cambiar el ciclo de liberación.

  1. Muy buen artículo.

    Sí, una decisión difícil. El equilibrio no existe con la (r)evolución permanente. Cambia el sistema operativo, cambia el núcleo, cambian las posibilidades del hardware, cambian los programas de escritorio, cambian los gustos de los usuarios por los escritorios…

    Pero hay que arriesgarse. Precisamente las recomendaciones de separar datos de programas y OS en distintas particiones puede hacer menos traumático el cambio o el reemplazo, a diferencia de otros SO. Volvemos a equilibrios frágiles tipo hard-soft-OS-graph.

    En mi modesta opinión, una SR o una RR supervisada puede ser viable más que una LTS en un entorno empresarial donde es muy difícil que todos los equipos sean iguales. Ni hablar de los usuarios, ni de las necesidades técnicas de cada puesto o las características de hardware de cada puesto. Armonizarlos todos a la vez, o coordinarlos bajo un sólo modo sólo se consigue con la imposición, algo que se logra no cambiando de licencia (onerosa), por ejemplo. Y no siempre van parejos.

    En la empresa en la que trabajo, asesoramiento a otras empresas, no he encontrado muchos problemas en el cambio entre pasar de Ubuntu 10.04 a Debian testing. Bien es verdad que el cambio se produjo el pasado septiembre de 2012, a punto de la congelación. Pero en estas semanas con Jessie no he tenido muchos problemas. Ojalá siga así.

    Añadir que soy una especie de usuario mártir, porque el resto de la empresa sigue en XP (y creo que por algunos añitos más). Algunos puestos se han renovado con Vista ó 7, y algunos echan de menos XP.

    Estoy más que de acuerdo en que se cierra la brecha entre las expectativas del usuario y la oferta del software libre. Aunque, en la mayoría de los usuarios, la huella es de «gratis» no de «libre». Por eso, quizá no encuentren diferencia entre crackear MS o instalar GNU Linux (una razón más).

    Como conclusión, admito mi propia contradicción: abogo por una SR (futuro) pero admito que una LTS (presente) no es una opción descartable. Aunque sea obsoleta, como es el caso de mi empresa. Ahora viene la segunda: ¿qué instalar? ¿Analizamos caso a caso o renovación de grupo? ¿Tarea o usuario? ¿Especialización o generalización? ¿Actualización o estabilidad? ¿Nativo o multiplataforma? Por ahora parece que Debian responde a mis necesidades y expectativas siguiendo a testing.

    Mil disculpas por mi larga extensión.

    Me gusta

  2. De acuerdo con usted en el asunto de la infinidad de “dependencias” al momento de instalar o desinstalar un programa. No soy un usuario avanzado que comprenda completamente bien el asunto, pero a veces un simple programa puede ser un quebradero de cabeza al momento de desinstalarse. Preferiría un modelo basado en módulos que se carguen y descarguen sin afectar a otras aplicaciones, similar al implementado para evitar el famoso “infierno de las DLLs” de W$ (aunque creo que ese método aumentaría considerablemente el espacio en disco ocupado por cada programa). Sin embargo, por el momento sólo tengo la opción de adaptarme a la distribución que uso (Ubuntu 12.04) en ese aspecto. Más adelante alcanzaré mi meta de aprender a programar, y veré en qué puedo ayudar. Gracias por su artículo.

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s