Historia de Python

Versiones de Python

Guido van Rossum ideó el lenguaje Python a finales de los 80 y comenzó a implementarlo en diciembre de 1989. En febrero de 1991 publicó la primera versión pública, la versión 0.9.0. La versión 1.0 se publicó en enero de 1994, la versión 2.0 se publicó en octubre de 2000 y la versión 3.0 se publicó en diciembre de 2008.

Hasta 2018, el desarrollo de Python estaba dirigido personalmente por Guido van Rossum y bajo el paraguas de la fundación Python Software Foundation. En julio de 2018 Guido van Rossum anunció que dejaría de dirigir el desarrollo de Python. Desde 2019 el desarrollo de Python está dirigido por un consejo de dirección de cinco miembros elegidos entre los desarrolladores de Python y que se renueva anualmente.

Las versiones de Python se identifican por tres números X.Y.Z, en la que:

La imagen siguiente muestra la fecha de publicación de las versiones principales de Python, en cada una de las tres grandes versiones, Python 1, Python 2 y Python 3. Las versiones indicadas con punto rojo se consideran obsoletas, de las versiones indicadas con punto azul se siguen publicando actualizaciones y las versiones indicadas con punto blanco corresponden a versiones futuras con las fechas de publicación previstas.

Python 1 Python 2 Python 3 94 94 95 95 96 96 97 97 98 98 99 99 00 00 01 01 02 02 03 03 04 04 05 05 06 06 07 07 08 08 09 09 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 1.0 1.1 1.2 1.3 1.4 1.5 1.6 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12

La imagen siguiente muestra la fecha de publicación de las últimas versiones menores de Python. Las versiones indicadas en rojo se consideran obsoletas, las versiones indicadas con punto blanco corresponden a versiones futuras con fechas ya previstas.

Python 2010 2010 2011 2011 2012 2012 2013 2013 2014 2014 2015 2015 2016 2016 2017 2017 2018 2018 2019 2019 2020 2020 2021 2021 2022 2022 2023 2023 2.7 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 .16 .17 .18 3.2 .1 .2 .3 .4 .5 .6 3.3 .1 .2 .3 .4 .5 .6 .7 3.4 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 3.5 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 3.6 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 3.7 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 .16 3.8 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 .16 3.9 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 .16 3.10 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 3.11 .1 .2 .3 .4 .5 .6 .7 .8 3.12

Es posible tener instalados en el ordenador varias versiones de Python pero, salvo que sea necesario para la ejecución de programas o paquetes incompatibles, se recomienda instalar siempre la última versión disponible.

En octubre de 2019 se discutió la posibilidad de cambiar el ritmo de publicación de nuevas versiones de Python: de los anteriores 18 meses a 9 meses (PEP 596), 12 meses (PEP 602) o 24 meses (PEP 605). Los pros y contras de estos cambios se pueden ver en PEP 607. Finalmente, se optó por una cadencia de publicación anual. Así, Python 3.9 se publicó en octubre de 2020, Python 3.10 se publicó en octubre de 2021 y Python 3.11 se publicará en octubre de 2022.

Referencias

Transición de Python 2 a Python 3

La transición de Python 2 a Python 3 resultó mucho más costosa de lo esperado, debido a que Python 3 introdujo muchos cambios en el lenguaje y obligaba a reescribir prácticamente todos los programas (aunque se han creado herramientas para ayudar en ese proceso).

La intención inicial era haber terminado Python 2 con la versión 2.6, pero en 2010 se tuvo que publicar la versión 2.7, incorporando parte de las novedades de Python 3. Además, el período de mantenimiento de Python 2.7 se tuvo que duplicar de los cinco años habituales a diez, hasta 2020.


Un primer obstáculo en el proceso de transición de Python 2 a Python 3 fue la propia disponibilidad de Python 3 en las distribuciones GNU/Linux. Muchas herramientas internas de las distribuciones están escritas en Python y su conversión de Python 2 a Python 3 no era fácil, por lo que las distribuciones no podían pasar simplemente de incluir una versión a otra.

Hasta 2015, Python 2 siguió siendo la versión predeterminada de Python en la mayoría de distribuciones GNU/Linux (aunque se podía instalar Python 3 sin problemas en ellas). Felizmente, esta situación está resuelta en las principales distribuciones:

Aunque las nuevas versiones de las distribuciones se basan en Python 3, las distribuciones basadas en Python 2 seguirán instaladas en servidores durante bastantes años. Ese es el motivo por el que la fundación Python prolongó el período de publicación de actualizaciones de seguridad de Python 2.7 hasta finales de 2019. A partir de 2020 son las distribuciones las que mantienen Python 2.7 durante el tiempo que se mantengan las propias distribuciones (por ejemplo, RedHat 7 se mantendrá hasta el año 2024, como mínimo, y RedHat 8 o Debian 10 todavía permiten instalar Python 2.7).


Un segundo obstáculo en el proceso de transición de Python 2 a Python 3 (y que ha afectado además a todos los sistemas operativos) ha sido la disponibilidad de las bibliotecas.

Python cuenta con un gran número de bibliotecas, cuyo repositorio oficial es PyPI (Python Package Index), que facilitan la programación de aplicaciones complejas. Cuando se publicó Python 3, la inmensa mayoría de bibliotecas sólo estaban disponibles para Python 2 y, lógicamente, si un programa necesitaba alguna biblioteca que sólo estaba disponible para Python 2, el programa no se podía pasar tampoco a Python 3.

Poco a poco, la mayoría de bibliotecas de Python fueron publicando versiones para Python 3, por lo que este problema también está resuelto. Las bibliotecas que no han hecho la transición a Python 3 es normalmente porque están abandonadas.

En marzo de 2016, un estudio de empleados de Microsoft señalaba que por aquel entonces algo más del 50% de las bibliotecas estaban disponibles tanto para Python 2 como para Python 3, un 25% estaban disponibles sólo para Python 2 y un poco menos del 25% estaban disponibles sólo para Python 3, pero la tendencia parecía indicar que a mediados de 2016 Python 3 pasaría a ser la versión más popular.

Varias páginas web hacen un seguimiento de la compatibilidad con Python 3 de las bibliotecas más populares

Retirada de Guido van Rossum

En julio de 2018, Guido van Rossum anunció su retirada como BDOF.

En diciembre de 2018 se aprobó el PEP 8016 -- The Steering Council Model que establece como modelo de gobernanza de Python un consejo directivo formado por cinco miembros elegidos entre los desarrolladores de Python y que será renovado tras cada publicación de una versión principal de Python. El primer consejo directivo se eligió en enero de 2019 [artículo en lwn.net 04/02/2019]. El segundo consejo directivo se eligió en diciembre de 2019 [PEP 8101].

Guido van Rossum formó parte del primer consejo directivo, pero no del segundo, completando así su retirada de la dirección de Python.

En noviembre de 2020, Guido van Rossum anunció que se incoporaba a la Developer Division de Microsoft para trabajar en temas relacionados con Python. En mayo de 2021 anunció que centraría su trabajo en la mejora del rendimiento de Python.

Referencias:

Distribuciones GNU/Linux

La tabla siguiente indica las versiones de Python incluidas en las distribuciones GNU/Linux más utilizadas en servidores:

Año Python Fedora RedHat Enterprise Linux Debian Ubuntu Año
2023 ¿Oct?: Py 3.12 ¿Oct?: Fedora 39
¿Abr?: Fedora 38
2023
2022 Oct: Py 3.11 Dic: Fedora 37: Py 3.11.0
May: Fedora 36: Py 3.10.4
May: RHEL 9: Py 3.9.10 Abr: Ubuntu 22.04 LTS (jammy): Py 3.10.4 2022
2021 Oct: Py 3.10 Nov: Fedora 35: Py 3.10.0
Abr: Fedora 34: Py 3.9.2
Ago: Debian 11 (bullseye): Py 3.9.2 2021
2020 Oct: Py 3.9 Oct: Fedora 33: Py 3.9.0
Abr: Fedora 32: Py 3.8.2
Abr: Ubuntu 20.04 LTS (focal): Py 3.8.2 2020
2019 Oct: Py 3.8 Oct: Fedora 31: Py 3.7.4
Abr: Fedora 30: Py 3.7.2
May: RHEL 8: Py 3.6 Jul: Debian 10 (buster): Py 3.7.3 2019
2018 Jun: Py 3.7 Oct: Fedora 29: Py 3.7.0
May: Fedora 28: Py 3.6.5
Abr: Ubuntu 18.04 LTS (bionic): 2018
2017 Nov: Fedora 27: Py 3.6.2
Jul: Fedora 26: Py 3.6.1
Jun: Debian 9 (stretch): Py 2.7 / Py 3.5 2017
2016 Dic: Py 3.6 Nov: Fedora 25: Py 3.5.2
Jun: Fedora 24: Py 3.5.1
Abr: Ubuntu 16.04 LTS (xenial): 2016
2015 Sep: Py 3.5 Nov: Fedora 23: Py 3.4.3
May: Fedora 22: Py 2.7.9
Abr: Debian 8 (jessie): Py 2.7 / Py 3.4 2015
2014 Mar: Py 3.4 Dic: Fedora 21: Py 2.7.8 Jun: RHEL 7: Py 2.7 Abr: Ubuntu 14.04 LTS (trusty): 2014
2013 Dic: Fedora 20: Py 2.7.5
Jul: Fedora 19: Py 2.7.5
Ene: Fedora 18: Py 2.7.3
May: Debian 7 (wheezy): Py 2.7 / Py 3.2 2013
2012 Sep: Py 3.3 May: Fedora 17: Py 2.7.3 Abr: Ubuntu 12.04 LTS (precise): 2012
2011 Feb: Py 3.2 Nov: Fedora 16: Py 2.7.2
May: Fedora 15: Py 2.7.1
Feb: Debian 6 (squeeze): Py 2.6 / Py 3.1 2011
2010 Jul: Py 2.7 Nov: Fedora 14: Py 2.7.0
May: Fedora 13: Py 2.6.4
Nov: RHEL 6: Py 2.6 Abr: Ubuntu 10.04 LTS (lucid): 2010
2009 Jun: Py 3.1 Nov: Fedora 12: Py 2.6.2
Jun: Fedora 11:Py 2.6.0
Feb: Debian 5 (lenny): Py 2.5 2009
2008 Oct: Py 2.6
Dic: Py 3.0
Nov: Fedora 10: Py 2.5.2
May: Fedora 9: Py 2.5.1
Abr: Ubuntu 8.04 LTS (hardy): 2008
2007 Nov: Fedora 8: Py 2.5.1
May: Fedora 7: Py 2.5.0
Mar: RHEL 5: Py 2.4 Abr: Debian 4 (etch): 2007
Año Python Fedora RedHat Enterprise Linux Debian Ubuntu Año

Fuentes: