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 (entre los que se encuentra el propio van Rossum) y que se renovará 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, las versiones indicadas con punto azul siguen publicando actualizaciones, 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 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

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 2.7 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.15 2.7.16 2.7.17 2.7.18 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 3.4.9 3.4.10 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.8 3.8.1 3.9

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 ha optado por una cadencia de publicación anual. Así, Python 3.9 se publicará en octubre de 2020.

Referencias

Transición de Python 2 a Python 3

La transición de Python 2 a Python 3 ha resultado 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 serán las distribuciones las que mantengan 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 han ido publicando versiones para Python 3, por lo que este problema también está en vías de solución.

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 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] y tendrá un mandato relativamente breve, puesto que se tiene que renovar tras la publicación de Python 3.8 en octubre de 2019.

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 SUSE Linux Enterprise Año
2020 ¿Oct?: Py 3.9 ¿Abr?: Fedora 32 ¿Abr?: Ubuntu 20.04 LTS ¿May?: SLE 15.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 May: SLE 15.1 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): May: SLE 15 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): Oct: SLE 12: 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 Mar: SLE 11: 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 SUSE Linux Enterprise Año

Fuentes: