Inkscape, el editor profesional de gráficos vectoriales, tardó 16 años en anunciar su versión 1.0. Mientras, Mozilla acaba de anunciar esta semana que llegaba Firefox 100.0, un número muy redondo pero que también nos hace preguntarnos qué ocurre con el mundo de los números de versión.
Lo que ocurre es que básicamente existen todo tipo de criterios que los desarrolladores utilizan para controlar sus versiones. Hay aquí un poco de todo: la búsqueda de un orden lógico es clave, pero la influencia del marketing e incluso de la superstición es notable en estos sistemas.
Unos tardan mucho, otros muy poco
Lo de Inkscape no es un caso aislado: pasaron 6 años desde que pasamos de GIMP 2.8 a GIMP 2.10, y Gparted —una conocida aplicación Open Source de particionamiento— tardó también casi 15 años en publicar su versión 1.0.
Esos larguísimos ciclos para llegar a ciertos número de versión contrastan con la velocidad con la que aparecen nuevas versiones de navegadores como Chrome o Firefox, que ya van por la versión 101.x (Chrome) y la citada versión 100.0 (Firefox).
Esas diferencias hacen que sea complicado apreciar cómo de relevante es realmente que una aplicación haya llegado a la versión 1.0 o a la versión 100. En el caso de Chrome o Firefox esas versiones han sido "una más", pero la cosa sí suele ser especial cuando una aplicación llega a esa versión 1.0 final y estable, considerada usualmente como la primera realmente pensada para su uso y despliegue masivo.
Ha habido cambios y mejoras, sin duda, pero a pesar de lo "redondo" de esos números, no han sido ediciones especialmente diferenciales. En el caso de Firefox por ejemplo una de las versiones más importantes de su historia fue Firefox 57, conocido popularmente como Firefox Quantum, y que incluía importantes cambios tanto a nivel interno como externo. El número no parecía tan importante, pero en realidad lo era.
El marketing importa
Las versión 1.0 suelen ser muy importantes, pero eso no quiere decir ni mucho menos que sean perfectas. Con el paso del tiempo uno puede revisitar esas versiones y comprender que en perspectiva podían ser "aceptables" aunque en muchos sentidos parecieran merecer un número de versión menor. Windows 1.0 era terrible, pero al menos era algo y sobre todo respondía a una necesidad clara: la de lanzar algo que al menos pareciera estable y final. El marketing era parte fundamental de ese lanzamiento.
No es ni mucho menos el único caso en el que la influencia de ese marketing es claro. Volvamos al caso de Firefox: Firefox 1.0 apareció en noviembre de 2004 —el viejo rockero incluso se anunciaría a doble página en The New York Times (aquí el PDF) para conmemorar aquel hito—, y tardaríamos casi siete años en llegar a Firefox 4.0. A partir de ahí Mozilla decidió que aquella numeración y ciclo de desarrollo no cuajaban, y comenzó a usar el llamado "ciclo de desarrollo rápido" con versiones estables cada 6 semanas.
Una de las principales razones —si es que no fue la principal— fue que Google Chrome había comenzado a lanzar también versiones nuevas a toda velocidad, aun cuando las mejoras entre unas y otras eran lógicamente menores. Lo que importaba no era tanto versiones con números muy redondos y con grandes cambios: lo que importaba era demostrar que el software no paraba de cambiar y mejorar.
El versionado semántico es el sistema favorito
Si hay un esquema de numeración de versiones software que haya triunfado en las últimas décadas, ese es el "versionado semántico" (SemVer), una especificación que hace uso de tres números separados por un punto con el formato Mayor.Menor.Parche:
Ese esquema puede ir acompañado de otros elementos como una etiqueta de fase de desarrollo (2.1.1-beta) o número de compilación (2.1.1.1024). Este tipo de sistema de versionado es funcional y permite identificar rápidamente lo "relevante" que es una versión al compararla con otra.
Así, un salto de la versión 1.1.10 a la versión 1.1.11 no será probablemente significativo, pero un salto a la versión 1.2.0 o incluso a una 2.0.0 a menudo implica que hay importantes novedades en esas versiones más redondas. A partir de ahí algunos desarrolladores pueden compatibilizar esos números de versiones con nombres más descriptivos que permiten también identificar "cómo de final" es una nueva versión recién lanzada. Se suelen usar:
- Alfa: fase inicial de desarrollo, muy inestable, estado del software poco recomendado para usuarios finales
- Beta: el desarrollo avanza, estas versiones ya son aptas para poder probar la mayoría de funciones sin demasiados problemas.
- Release Candidate (RC): versión que salvo cambios de última hora acabará siendo la versión final.
Es mi software y lo numero como me da la gana
Este sistema de versionado semántico es uno de los más extendidos, pero no es desde luego el único. Pueden cambiar cosas como los límites de los números elegidos (que no pasen de 9 para que no haya versiones tipo 1.5.45, por ejemplo) o los separadores (barras o guiones en lugar de puntos, o una combinación de todos ellos).
Hay sistemas que hacen uso de algún tipo de información sobre la fecha asociada al lanzamiento. No necesariamente el día, mes y año, pero sí es frecuente el uso del año actual de lanzamiento: que se lo digan a los FIFA o a los Microsoft Office que han ido apareciendo a lo largo de los años.
Hay quien hace uso de sistemas de fecha muy particulares: la distribución Ubuntu Linux aprovecha un esquema "año.mes" en el que en realidad el mes solo cambia entre dos —lanzan en abril, "04" o en octubre, "10"— y lo que cambia es el año. Así, tenemos que la versión más reciente fue Ubuntu 22.04 y la anterior fue Ubuntu 21.10.
Ahí no acaba la cosa con Ubuntu, por cierto: cada nueva versión no solo tiene su propia numeración, sino un apelativo con dos palabras bastante curioso y con dos reglas: 1) las iniciales son iguales y siguen la secuencia alfabética en cada versión y 2) tienen el formato "calificativo + animal". En Canonical —empresa creadora de Ubuntu— usan además calificativos y animales peculiares: Ubuntu 21.10 fue "Impish Indri" ("indri travieso"), y Ubuntu 22.04 es "Jammy Jellyfish" ("medusa afortunada").
La propia Microsoft es bastante peculiar con sus nombres de sistema operativo, que cuidado, hay que diferenciar de sus versiones. Tenemos un buen ejemplo en Windows, que ha ido cambiando de esquema. De las ediciones 1.0, 2.0, 3.0 (y 3.1, que tuvo eventazo de lanzamiento en Japón) pasaron algo más tarde a sacar ediciones con el año (Windows 95, Windows 98 o Windows 2000).
Pasaron luego a nombres que no seguían ninguna serie en particular (Windows XP, Windows Me, Windows Vista) y las intercalaron con la actual secuencia numérica: Windows 7, Windows 8/8.1, de Windows 9 nada, Windows 10 y, por fin, Windows 11.
Como decimos, los nombres engañan, porque Microsoft sí ha seguido una secuencia más o menos coherente con las versiones. Aún así, nos sigue confundiendo un poco que por ejemplo Windows 11 sea el nombre del sistema operativo, pero la versión siga siendo Windows 10.0.x, quizás porque al fin y al cabo Windows 11 es sobre todo Windows 10 con chapa y pintura.
Apple también confunde con nombres y versiones de sus sistemas operativos para sus ordenadores. Hemos pasado de los Mac OS clásicos a Mac OS X, luego a OS X y por último a los actuales macOS. Apple usaba además números de versión secuenciales y un apelativo adicional. Durante muchos años ese apelativo fue un felino, para luego parar a ser localizaciones geográficas en Estados Unidos.
Así, de Mac OS X 10.0 Cheetah pasamos por ejemplo a Mac OS 10.6 Snow Leopard, a OS X 10.9 Mavericks o al actual macOS 12 Monterey que junto con el anterior macOS 11 Big Sur (que llegó con los M1) ahora ya ha pasado a un único número de secuencia olvidando el prefijo "10.x".
Y ya que estamos hablando de historias curiosas de números de versión, resulta casi imposible no hablar del núcleo o kernel Linux, que durante varios años mantuvo un esquema también muy particular. Los números de versión seguían en parte el versionado semántico, pero lo hacían con dos ramas. Los núcleos "estables" tenían un número menor par, mientras que los que eran "en desarrollo" tenían un número menor impar.
De ese modo, uno podía saber que los núcleos 2.3 eran de la rama de desarrollo, y los 2.4 eran las versiones estables del núcleo en las que esos núcleos 2.3 "maduraban". Aquel sistema se abandonó en 2004 con el lanzamiento del núcleo 2.6, y desde entonces se ha seguido un ciclo de desarrollo rápido con una sucesión de versiones que cada pocas semanas ofrece un nuevo kernel. Como explican en Kernel.org, cuando se decide cambiar al siguiente número mayor se hace simplemente "cuando el número después del punto empieza a parecer 'demasiado grande'. No hay otra razón".
En todo este pequeño y curioso caos hay también cierta superstición. Microsoft Office 2007 tenía como versión interna la 12. Cuando Microsoft lanzó la siguiente versión en 2010 la llamó de acuerdo a ese año, Microsoft Office 2010, pero el número de versión interna fue la 14, evitando así ese número 13 que para muchos da mala suerte.
La plataforma Symbian también evitó usar el número 4 —bienvenidos a la tetrafobia, la aversión al número cuatro— en sus versiones "como un gesto de amabilidad a sus clientes asiáticos". OnePlus también lo evitó y pasó del OnePlus 3 al OnePlus 5 directamente.
Todo ello hace pensar en el futuro lejano de las versiones de las aplicaciones y productos que usamos. ¿Habrá un Firefox 1245.0? ¿Un Windows 106? ¿Un FIFA 381? Quién sabe.
Imagen: Firefox
Ver 26 comentarios