Articulo de referencia

Historia de Python

Antiguo logotipo de Python, década de 1990-2006 Nuevo logotipo de Python, 2006-presente Guido van Rossum en 2014 El lenguaje de programación Python fue concebido a finales de la...

Antiguo logotipo de Python, década de 1990-2006
Nuevo logotipo de Python, 2006-presente
Guido van Rossum en 2014

El lenguaje de programación Python fue concebido a finales de la década de 1980, [ 1 ] y su implementación comenzó en diciembre de 1989 [ 2 ] por Guido van Rossum en CWI en los Países Bajos como sucesor de ABC capaz de manejar excepciones e interactuar con el sistema operativo Amoeba . [ 3 ] Van Rossum fue el autor principal de Python y tuvo un papel central en la decisión de la dirección de Python (como se refleja en el título que le dio la comunidad Python, Dictador Benevolente de por Vida (BDFL) [ 4 ] [ 5 ] ) hasta que dejó el liderazgo el 12 de julio de 2018. [ 6 ] Python recibió su nombre del programa de televisión de la BBC Monty Python's Flying Circus . [ 7 ]

Python 2.0 se lanzó el 16 de octubre de 2000, con muchas características nuevas importantes, como comprensiones de listas , recolector de basura con detección de ciclos , conteo de referencias , administración de memoria y soporte para Unicode , junto con un cambio en el propio proceso de desarrollo, con un giro hacia un proceso más transparente y respaldado por la comunidad. [ 8 ]

Python 3.0, una versión importante e incompatible con versiones anteriores, se lanzó el 3 de diciembre de 2008 [ 9 ] tras un largo período de pruebas. Muchas de sus características principales también se incorporaron a las versiones retrocompatibles de Python 2.6 y 2.7 [ 10 ] hasta que finalmente se dejó de dar soporte a Python 2 a principios de 2020. Las versiones de Python  3 hasta la 3.12 incluyen la 2to3utilidad que automatiza la traducción del  código de Python 2 a Python  3. [ 11 ]

A partir de junio de 2026Python 3.14.6 es la última versión estable. Actualmente, esta versión recibe actualizaciones completas de corrección de errores y seguridad, mientras que Python 3.13, lanzado en octubre de 2024, seguirá recibiendo correcciones de errores hasta octubre de 2026, y después solo recibirá correcciones de seguridad hasta el final de su ciclo de vida en 2029. Python 3.10 es la rama más antigua de Python con soporte (aunque se encuentra en la fase de "soporte de seguridad"). [ 12 ] [ 13 ]

Historia temprana

Van Rossum publicó por primera vez el código (para Python versión 0.9.1) en alt.sources en febrero de 1991. [ 14 ] [ 15 ] Varias características del lenguaje ya estaban presentes en esta etapa, entre ellas clases con herencia , manejo de excepciones, funciones y varios tipos de datos básicos como list, dict, y str. La versión inicial también contenía un sistema de módulos tomado de Modula-3 ; Van Rossum describe el módulo como "una de las principales unidades de programación de Python". [ 1 ] El modelo de excepciones de Python también se parecía al de Modula-3, con la adición de una elsecláusula. [ 3 ] En 1994 se formó comp.lang.python , el principal foro de discusión para Python. [ 1 ]

Versión 1

Python alcanzó la versión 1.0 en enero de 1994. Las principales novedades incluidas en esta versión fueron las herramientas de programación funcional lambda, map, filtery reduce. Van Rossum afirmó que "Python adquirió lambda, reduce(), filter() y map(), gracias a un programador de Lisp que las echaba de menos y envió parches funcionales ". [ 16 ]

La última versión publicada mientras Van Rossum estaba en CWI fue Python 1.2. En 1995, Van Rossum continuó su trabajo en Python en la Corporación para Iniciativas Nacionales de Investigación (CNRI) en Reston, Virginia, desde donde publicó varias versiones.

Para la versión 1.4, Python había adquirido varias características nuevas. Entre ellas destacan los argumentos con nombre inspirados en Modula-3 (que también son similares a los argumentos con nombre de Common Lisp ) y la compatibilidad integrada con números complejos . También se incluye una forma básica de ocultación de datos mediante la modificación de nombres , aunque esto se puede eludir fácilmente. [ 17 ]

Durante su estancia en el CNRI, Van Rossum lanzó la iniciativa Programación Informática para Todos (CP4E), con la intención de hacer que la programación fuera más accesible a más personas, mediante una "alfabetización" básica en lenguajes de programación, similar a la alfabetización básica en inglés y las habilidades matemáticas requeridas por la mayoría de los empleadores. Python desempeñó un papel central en esto: debido a su enfoque en la sintaxis limpia, ya era adecuado, y los objetivos de CP4E eran similares a los de su predecesor, ABC. El proyecto fue financiado por DARPA . [ 18 ] A partir de 2007El proyecto CP4E está inactivo, y aunque Python intenta ser fácil de aprender y no demasiado arcano en su sintaxis y semántica, la divulgación a personas no programadoras no es una preocupación activa. [ 19 ]

BeOpen

En 2000, el equipo de desarrollo principal de Python se trasladó a BeOpen.com [ 20 ] para formar el equipo BeOpen PythonLabs. [ 21 ] [ 22 ] CNRI solicitó que se publicara una versión 1.6, que resumiera el desarrollo de Python hasta el momento en que el equipo de desarrollo dejó CNRI. En consecuencia, los calendarios de lanzamiento de 1.6 y 2.0 se superpusieron significativamente. [ 8 ] Python 2.0 fue el único lanzamiento de BeOpen.com. Después de que BeOpen.com publicara Python 2.0, Guido van Rossum y los demás desarrolladores de PythonLabs se unieron a Digital Creations .

La versión 1.6 de Python incluía una nueva licencia CNRI, sustancialmente más larga que la licencia CWI utilizada en versiones anteriores. Esta nueva licencia incluía una cláusula que establecía que se regía por las leyes del estado de Virginia . La Free Software Foundation argumentó que dicha cláusula era incompatible con la Licencia Pública General de GNU . BeOpen, CNRI y la FSF negociaron un cambio en la licencia de software libre de Python para hacerla compatible con la GPL. Python 1.6.1 es esencialmente igual que Python 1.6, con algunas correcciones de errores menores y la nueva licencia compatible con la GPL. [ 23 ]

Versión 2

Python 2.0, lanzado en octubre de 2000, [ 8 ] introdujo las comprensiones de listas , una característica tomada de los lenguajes de programación funcional SETL y Haskell . La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de Haskell por los caracteres de puntuación y la de Python por las palabras clave alfabéticas. Python 2.0 también introdujo un recolector de basura capaz de recolectar ciclos de referencia. [ 8 ]

Python 2.1 era muy similar a Python 1.6.1 y a Python 2.0. Su licencia pasó a llamarse Licencia de la Fundación de Software de Python . Todo el código, la documentación y las especificaciones añadidas desde el lanzamiento de la versión alfa de Python 2.1 son propiedad de la Fundación de Software de Python (PSF), una organización sin ánimo de lucro fundada en 2001, inspirada en la Fundación de Software Apache . [ 23 ] El lanzamiento incluyó un cambio en la especificación del lenguaje para admitir ámbitos anidados, como otros lenguajes con ámbito estático . [ 24 ] (Esta característica estaba desactivada por defecto y no era necesaria hasta Python 2.2).

Python 2.2 se lanzó en diciembre de 2001; [ 25 ] una innovación importante fue la unificación de los tipos de Python (tipos escritos en C ) y las clases (tipos escritos en Python) en una sola jerarquía. Esta unificación hizo que el modelo de objetos de Python fuera pura y consistentemente orientado a objetos. [ 26 ] También se añadieron generadores inspirados en Icon . [ 27 ]

Una serpiente verde con la cabeza erguida y la lengua extendida.
Un peso que cae etiquetado como "16 toneladas".
Un símbolo altamente abstracto que sugiere las cabezas de dos serpientes en una doble hélice vista de frente, curvada en el sentido de las agujas del reloj hacia el espectador: una serpiente azul aparece desde atrás a la izquierda, con la cabeza plegada sobre su cuerpo en la parte superior, y una serpiente amarilla aparece desde atrás a la derecha y su cabeza se pliega sobre su cuerpo en la parte inferior; la silueta general del símbolo forma un signo de suma tosco, y la ubicación de los ojos sugiere un yin y un yang.
Logotipos históricos de Python utilizados en Windows (izquierda) y Macintosh (centro), y el logotipo utilizado desde la versión 2.5 (derecha).

Python 2.5 se lanzó en septiembre de 2006 [ 28 ] e introdujo la withinstrucción, que encierra un bloque de código dentro de un administrador de contexto (por ejemplo, adquirir un bloqueo antes de que se ejecute el bloque de código y liberarlo después, o abrir un archivo y luego cerrarlo), lo que permite un comportamiento similar a la adquisición de recursos en la inicialización (RAII) y reemplaza un modismo común try/finally. [ 29 ]

Python 2.6 se lanzó para coincidir con Python 3.0, e incluyó algunas características de esa versión, así como un modo de "advertencias" que resaltaba el uso de características que se eliminaron en Python 3.0. [ 30 ] [ 10 ] De manera similar, Python 2.7 coincidió con Python 3.1 e incluyó características de Python, [ 31 ] que se lanzó el 26 de junio de 2009. Las versiones paralelas 2.x y 3.x cesaron entonces, y Python 2.7 fue la última versión de la serie 2.x. [ 32 ] En noviembre de 2014, se anunció que Python 2.7 tendría soporte hasta 2020, pero se animó a los usuarios a migrar a Python 3 lo antes posible. [ 33 ] El soporte para Python 2.7 finalizó el 1 de enero de 2020, junto con la congelación del código de la rama de desarrollo 2.7. La versión final, la 2.7.18, se publicó el 20 de abril de 2020 e incluyó correcciones para errores críticos y problemas que impedían su lanzamiento. [ 34 ] Esto marcó el fin del ciclo de vida de Python 2. [ 35 ]

Versión 3

Python 3.0 (también llamado "Python 3000" o "Py3K") se lanzó el 3 de diciembre de 2008. [ 9 ] Fue diseñado para corregir fallas de diseño fundamentales en el lenguaje ; los cambios necesarios no podían implementarse manteniendo la compatibilidad total con versiones anteriores de la serie 2.x, lo que requirió un nuevo número de versión principal. El principio rector de Python 3 fue: "reducir la duplicación de características eliminando formas antiguas de hacer las cosas". [ 36 ] 

Python 3.0 se desarrolló con la misma filosofía que las versiones anteriores. Sin embargo, dado que Python había acumulado formas nuevas y redundantes de programar la misma tarea, Python 3.0 hizo hincapié en eliminar construcciones y módulos duplicados, en consonancia con el principio fundamental de Python : "Debe haber una —y preferiblemente solo una— forma obvia de hacerlo".

No obstante, Python 3.0 siguió siendo un lenguaje multiparadigma . Los programadores aún podían seguir paradigmas de programación orientada a objetos , estructurada y funcional , entre otros, pero dentro de esas amplias opciones, los detalles estaban pensados ​​para ser más evidentes en Python 3.0 que en Python 2.x.

Compatibilidad

Python 3.0 rompió la retrocompatibilidad, y gran parte del código de Python 2 no se ejecuta sin modificaciones en Python 3. [ 37 ] El tipado dinámico de Python combinado con los planes para cambiar la semántica de ciertos métodos de diccionarios, por ejemplo, hizo que la traducción mecánica perfecta de Python 2.x a Python 3.0 fuera muy difícil. Una herramienta llamada " 2to3" hace las partes de la traducción que se pueden hacer automáticamente. En este punto, 2to3parecía ser bastante exitosa, aunque una revisión temprana señaló que había aspectos de la traducción que dicha herramienta nunca podría manejar. [ 38 ] Antes del lanzamiento de Python 3, se recomendaba que los proyectos que requerían compatibilidad con las series 2.x y 3.x tuvieran una fuente (para la serie 2.x) y produjeran versiones para la plataforma Python 3.x usando 2to3. Se desaconsejaban las ediciones al código de Python 3.x mientras el código necesitara ejecutarse en Python 2.x. [ 10 ] Esto ya no se recomienda; A partir de 2012, el enfoque preferido era crear una única base de código que pudiera ejecutarse tanto en Python 2 como en Python 3 utilizando módulos de compatibilidad. [ 39 ]

Características

Algunos de los cambios más importantes incluidos en Python 3.0 fueron:

  • Cambiarlo printpara que sea una función integrada , no una instrucción. Esto facilitó cambiar un módulo para usar una función de impresión diferente, además de hacer que la sintaxis fuera más regular. En Python 2.6 y 2.7 está disponible como una función integrada pero está enmascarada por la sintaxis de la instrucción de impresión, que se puede deshabilitar ingresando al principio del archivo [ 40 ].print()from__future__importprint_function
  • Eliminación de la inputfunción de Python 2 y cambio de nombre de la raw_inputfunción a input. La función de Python 3 inputse comporta como la función de Python 2 raw_input, en el sentido de que la entrada siempre se devuelve como una cadena en lugar de evaluarse como una expresión.
  • Mover reduce(pero no mapo filter) fuera del espacio de nombres integrado y dentro de functools(la razón es que el código que usa reducees menos legible que el código que usa un bucle for y una variable acumuladora) [ 41 ] [ 42 ]
  • Agregar soporte para anotaciones de funciones opcionales que se pueden usar para declaraciones de tipo informales u otros propósitos [ 43 ]
  • Unificar los tipos stry en , que representan texto, e introducir un tipo inmutable separado; y un tipo mutable mayormente correspondiente , ambos de los cuales representan matrices de bytes [ 44 ]unicodestrbytesbytearray
  • Eliminación de características de compatibilidad con versiones anteriores, incluidas las clases de estilo antiguo, las excepciones de cadena y las importaciones relativas implícitas.
  • Un cambio en la funcionalidad de la división entera : en Python 2, la división entera siempre devuelve un entero. Por ejemplo, es ; mientras que en Python 3, es . (Tanto en Python 2 2.2 en adelante como en Python 3, existe un operador separado para proporcionar el comportamiento anterior: es )5/225/22.5  5//22
  • Permitir el uso de letras no ASCII en identificadores, [ 45 ] como ensmörgåsbord
  • Unificación de tipos enteros inten longun solo tipo entero: int. Python 2 intlimita los enteros entre -2147483648y 2147483647inclusive. Cualquier entero fuera o dentro de este rango tiene un sufijo Lo lcomo -100000000000000L, 0l[ 46 ]

Lanzamientos posteriores

Python 3.2 definió una ABI estable , lo que permite que los módulos de extensión dependan de funciones en diferentes versiones de Python.

Python 3.5 añadió el módulo typing, que permite sugerencias de tipo y anotaciones de firmas de funciones . Además, añadió la sintaxis async/await.pyo . Asimismo, se eliminaron archivos que representaban tanto el código de bytes.pyc optimizado como el no optimizado .

Python 3.6 introdujo generadores asíncronos y comprensiones asíncronas ( tanto para listas como para diccionarios y conjuntos), así como literales de cadena formateados (f-strings). [ 47 ]

Python 3.10 introdujo la coincidencia de patrones estructurales mediante sentencias match/case. Además, proporcionó mensajes de error mejorados que "se inspiraron en trabajos anteriores del intérprete PyPy" y añadió el operador |de tipo unión . [ 48 ]

Python 3.11 amplió la funcionalidad de manejo de excepciones . En torno a esta versión, se ha puesto énfasis en hacer que Python sea más rápido; se afirma que 3.11 es entre un 10 % y un 60 % más rápido que 3.10, [ 49 ] y 3.12 aumenta en un 5 % adicional.

Python 3.12 añadió la nueva palabra clave typey mejoró los mensajes de error.

Python 3.13 agregó un compilador experimental justo a tiempo (JIT) , la capacidad de deshabilitar el bloqueo global del intérprete , un intérprete interactivo ( REPL ) nuevo y mejorado, y un recolector de basura incremental . [ 50 ] A partir de Python 3.13, esta y las versiones posteriores reciben dos años de soporte completo (aumentado de un año y medio), seguidos de tres años de soporte de seguridad; esta es la misma duración total de soporte que anteriormente.

Python 3.14 introdujo un nuevo intérprete de llamadas recursivas como una característica opcional, que ofrece un rendimiento entre un 3 % y un 5 % mejor. [ 51 ]

Python 3.15 hará que el modo UTF-8 sea el predeterminado; [ 52 ] Este modo es compatible con todas las versiones actuales de Python, pero actualmente debe activarse. UTF-8 ya se usa de forma predeterminada en Windows (y otros sistemas operativos ) para la mayoría de los propósitos, pero una excepción es la apertura de archivos. Habilitar UTF-8 también hace que el código sea totalmente multiplataforma .

Seguridad

Las actualizaciones de seguridad se aceleraron en 2021 y nuevamente dos veces en 2022. Se corrigieron más problemas en 2023 y en septiembre de 2024 (para las versiones de Python 3.8.20 a 3.12.6): todas las versiones (incluida la 2.7) [ 53 ] habían sido inseguras debido a problemas que llevaban a una posible ejecución remota de código [ 54 ] y envenenamiento de caché web . [ 55 ]

Tabla de versiones

Lanzamientos anteriores a las versiones numeradas:

Leyenda:
No compatible
Compatible
Última versión
Versión preliminar
Versión futura
La cursiva indica la última microversión de las versiones compatibles actualmente a fecha de 8 de abril de 2026 .

Notas de la tabla:

  1. 1 2 3 4 5 6 7 8 9 10 11 12 Fecha de la última micropublicación.
  2. 1 2 3 4 5 6 7 8 9 10 Fecha de la última publicación que no sea solo de seguridad.
  3. El soporte oficial finalizó el 1 de enero de 2020, pero una versión final del código tal como aparecía el 1 de enero de 2020 se publicó el 20 de abril de 2020 como la versión 2.7.18. [ 35 ]

Apoyo

Véase también

Referencias

  1. 1 2 3 "Cómo se hizo Python" . Artima Developer. Archivado del original el 1 de septiembre de 2016. Recuperado el 22 de marzo de 2007 .
  2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 van Rossum, Guido (20 de enero de 2009). " Una breve cronología de Python" . Archivado del original el 25 de agosto de 2011. Recuperado el 29 de noviembre de 2019 .
  3. 1 2 "¿Por qué se creó Python en primer lugar?" . Preguntas frecuentes sobre Python. Archivado del original el 23 de febrero de 2008. Recuperado el 22 de marzo de 2007 .
  4. van Rossum, Guido (31 de julio de 2008). "Origen de BDFL" . Archivado del original el 16 de enero de 2011. Recuperado el 1 de agosto de 2008 .
  5. "Scripts de Python Creator dentro de Google" . www.eweek.com. 7 de marzo de 2006. Consultado el 13 de mayo de 2008 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  6. Fairchild, Carlie (12 de julio de 2018). "Guido van Rossum renuncia a su cargo como dictador benevolente de Python de por vida" . Linux Journal . Archivado del original el 13 de julio de 2018. Consultado el 12 de julio de 2018 .
  7. "Preguntas frecuentes generales sobre Python — Documentación de Python 3.8.3" . docs.python.org . Archivado del original el 24 de octubre de 2012. Consultado el 4 de junio de 2020 .
  8. 1 2 3 4 Kuchling, Andrew M.; Zadka, Moshe. "Novedades de Python 2.0" . Archivado del original el 14 de diciembre de 2009. Recuperado el 22 de marzo de 2007 .
  9. 1 2 "Bienvenido a Python.org" . python.org . Archivado del original el 14 de junio de 2020. Recuperado el 27 de diciembre de 2016 .
  10. 1 2 3 van Rossum, Guido (5 de abril de 2006). "PEP 3000 – Python 3000" . Archivado del original el 2 de abril de 2022. Recuperado el 27 de diciembre de 2016 .
  11. "2to3 — Traducción automática de código Python 2 a 3 — Documentación de Python 3.12.12" . docs.python.org . Consultado el 12 de diciembre de 2025 .
  12. "Estado de las versiones de Python" . Guía del desarrollador de Python . Consultado el 7 de octubre de 2024 .
  13. "Python" . fecha de fin de vida útil . 8 de octubre de 2024. Consultado el 20 de noviembre de 2024 .
  14. "Python 0.9.1 parte 01/21" . Archivos de alt.sources. Archivado del original el 11 de agosto de 2021. Recuperado el 11 de agosto de 2021 .
  15. "HISTORIA" . Distribución del código fuente de Python . Fundación Python. Archivado del original el 1 de diciembre de 2017. Consultado el 23 de noviembre de 2017 .
  16. van Rossum, Guido. "El destino de reduce() en Python 3000" . Artima Developer. Archivado del original el 7 de abril de 2007. Recuperado el 22 de marzo de 2007 .
  17. "LJ #37: Actualización de Python 1.4" . Archivado del original el 1 de mayo de 2007. Consultado el 29 de abril de 2007 .
  18. van Rossum, Guido. "Programación informática para todos" . Archivado del original el 1 de mayo de 2007. Consultado el 22 de marzo de 2007 .
  19. "Programación informática para todos" . Python Software Foundation. Archivado del original el 29 de marzo de 2007. Consultado el 22 de marzo de 2007 .
  20. "El equipo de desarrollo de Python se traslada a BeOpen.com – Slashdot" . slashdot.org . Archivado del original el 12 de abril de 2020. Consultado el 12 de abril de 2020 .
  21. "Abrir | Tu socio digital en seguros" . Archivado del original el 15 de agosto de 2000.
  22. "El proveedor de gestión de contenido PyBiz anuncia una asociación estratégica con BeOpen para la utilización del lenguaje de programación Python" (PDF) . Archivado (PDF) del original el 12 de abril de 2020. Consultado el 12 de abril de 2020 .
  23. 1 2 "Historial y licencia" . Documentación de Python 3. Archivado del original el 5 de diciembre de 2016. Consultado el 7 de diciembre de 2022 .
  24. Hylton, Jeremy (1 de noviembre de 2000). "PEP 227 – Ámbitos anidados estáticamente" . Archivado del original el 23 de mayo de 2022. Recuperado el 22 de marzo de 2007 .
  25. "Python 2.2" . Python.org . Archivado del original el 2 de agosto de 2019. Consultado el 31 de diciembre de 2019 .
  26. Kuchling, Andrew M. (21 de diciembre de 2001). "PEPs 252 y 253: Cambios de tipo y clase" . Novedades de Python 2.2 . Fundación Python. Archivado del original el 17 de septiembre de 2008. Consultado el 5 de septiembre de 2008 .
  27. Schemenauer, Neil; Peters, Tim; Hetland, Magnus (21 de diciembre de 2001). "PEP 255 – Generadores simples" . Archivado del original el 31 de enero de 2023. Recuperado el 5 de septiembre de 2008 .
  28. "Lanzamiento de Python 2.5" . Python.org . Archivado del original el 4 de agosto de 2019. Consultado el 20 de marzo de 2018 .
  29. "Aspectos destacados: Python 2.5" . Python.org . Archivado del original el 4 de agosto de 2019. Consultado el 20 de marzo de 2018 .
  30. 1 2 3 4 5 6 Norwitz, Neal; Warsaw, Barry (29 de junio de 2006). "PEP 361 – Calendario de lanzamiento de Python 2.6 y 3.0" . Archivado del original el 12 de abril de 2022. Recuperado el 29 de noviembre de 2019 .
  31. Kuchling, Andrew M. (3 de julio de 2010). "Novedades de Python 2.7" . Archivado del original el 7 de junio de 2012. Recuperado el 7 de octubre de 2012. Al igual que Python 2.6 incorporó características de Python 3.0, la versión 2.7 incorpora algunas de las nuevas características de Python 3.1. La serie 2.x continúa proporcionando herramientas para migrar a la serie 3.x.
  32. Varsovia, Barry (9 de noviembre de 2011). "PEP 404 – Calendario de no lanzamiento de Python 2.8" . Archivado del original el 23 de mayo de 2022. Recuperado el 7 de octubre de 2012 .
  33. Gee, Sue (14 de abril de 2014). "Python 2.7 se mantendrá hasta 2020" . i-programmer.info . Archivado del original el 10 de mayo de 2016. Consultado el 27 de diciembre de 2016 .
  34. "Commits: python/cpython en 2.7" . GitHub . Archivado del original el 22 de abril de 2020. Consultado el 22 de abril de 2020 .
  35. 1 2 3 4 5 Peterson, Benjamin (3 de noviembre de 2008). "PEP 373 – Calendario de lanzamiento de Python 2.7" . Archivado del original el 13 de marzo de 2022. Recuperado el 20 de abril de 2020 .
  36. "PEP 3100 – Planes varios de Python 3.0 | peps.python.org" . peps.python.org . Archivado del original el 25 de mayo de 2022. Consultado el 2 de junio de 2022 .
  37. "PEP 3000 – Python 3000 | peps.python.org" . peps.python.org . Archivado del original el 2 de abril de 2022. Consultado el 2 de junio de 2022 .
  38. Ruby, Sam (1 de septiembre de 2007). "2to3" . intertwingly.net . Archivado del original el 24 de marzo de 2016. Recuperado el 6 de septiembre de 2024 .
  39. Coghlan, Alyssa (21 de abril de 2020). "Preguntas y respuestas sobre Python 3: Notas de Python de Alyssa Coghlan" . python-notes.curiousefficiency.org . Consultado el 6 de septiembre de 2024 .
  40. Brandl, Georg (19 de noviembre de 2007). "PEP 3105 – Hacer de la impresión una función" . Archivado del original el 2 de abril de 2022. Recuperado el 27 de diciembre de 2016 .
  41. van Rossum, Guido. "Preguntas frecuentes sobre Python 3000" . artima.com . Archivado del original el 9 de noviembre de 2020. Consultado el 27 de diciembre de 2016 .
  42. "El destino de reduce() en Python 3000" . www.artima.com . Archivado del original el 18 de diciembre de 2019. Consultado el 31 de diciembre de 2019 .
  43. Winter, Collin; Lownds, Tony (2 de diciembre de 2006). "PEP 3107 – Anotaciones de funciones" . Archivado del original el 13 de marzo de 2022. Recuperado el 27 de diciembre de 2016 .
  44. van Rossum, Guido (26 de septiembre de 2007). "PEP 3137 – Bytes inmutables y búfer mutable" . Archivado del original el 23 de mayo de 2022. Recuperado el 23 de mayo de 2022 .
  45. "PEP 3131 – Compatibilidad con identificadores no ASCII | peps.python.org" . Propuestas de mejora de Python (PEPs) . Consultado el 1 de julio de 2024 .
  46. "PEP 237 – Unificación de enteros largos y enteros | peps.python.org" . Propuestas de mejora de Python (PEPs) . Consultado el 21 de octubre de 2025 .
  47. Pranskevichus, Elvis; Selivanov, Yury, eds. (23 de diciembre de 2016). "Novedades de Python 3.6" . Documentación de Python . Consultado el 5 de agosto de 2025 .
  48. "Novedades de Python 3.10" . Documentación de Python . Consultado el 12 de junio de 2025 .
  49. corbet (24 de octubre de 2022). "Python 3.11 lanzado [ LWN.net ] " . lwn.net . Consultado el 15 de noviembre de 2022 .
  50. "Novedades de Python 3.13" . Documentación de Python . Consultado el 30 de abril de 2024 .
  51. "Novedades de Python 3.14¶" . Python . Fundación Python . Consultado el 10 de octubre de 2025 .
  52. "PEP 686 – Hacer que el modo UTF-8 sea el predeterminado | peps.python.org" . Propuestas de mejora de Python (PEPs) . Consultado el 20 de noviembre de 2024 .
  53. "CVE-2021-3177" . Portal de clientes de Red Hat . Archivado del original el 6 de marzo de 2021. Consultado el 26 de febrero de 2021 .
  54. "CVE-2021-3177" . CVE . Archivado del original el 27 de febrero de 2021. Consultado el 26 de febrero de 2021 .
  55. "CVE-2021-23336" . CVE . Archivado del original el 24 de febrero de 2021. Consultado el 26 de febrero de 2021 .
  56. 1 2 3 "Versiones | Python.org" . Archivado del original el 22 de diciembre de 2015. Consultado el 29 de noviembre de 2019 .
  57. Drake, Fred L. Jr. (25 de julio de 2000). "PEP 160 – Calendario de lanzamiento de Python 1.6" . Archivado del original el 13 de mayo de 2022. Recuperado el 29 de noviembre de 2019 .
  58. 1 2 3 4 5 6 7 8 9 10 11 12 13 "Descargar Python | Python.org" . Archivado del original el 8 de agosto de 2018. Recuperado el 29 de noviembre de 2019 .
  59. Hylton, Jeremy. "PEP 200 – Calendario de lanzamiento de Python 2.0" . Archivado del original el 18 de mayo de 2022. Recuperado el 29 de noviembre de 2019 .
  60. Hylton, Jeremy (16 de octubre de 2000). "PEP 226 – Calendario de lanzamiento de Python 2.1" . Archivado del original el 23 de mayo de 2022. Recuperado el 29 de noviembre de 2019 .
  61. Varsovia, Barry; van Rossum, Guido (17 de abril de 2001). "PEP 251 – Calendario de lanzamiento de Python 2.2" . Archivado del original el 4 de mayo de 2022. Recuperado el 29 de noviembre de 2019 .
  62. van Rossum, Guido (27 de febrero de 2002). "PEP 283 – Calendario de lanzamiento de Python 2.3" . Archivado del original el 12 de abril de 2022. Recuperado el 29 de noviembre de 2019 .
  63. Varsovia, Barry; Hettinger, Raymond; Baxter, Anthony (29 de julio de 2003). "PEP 320 – Calendario de lanzamiento de Python 2.4" . Archivado del original el 17 de mayo de 2022. Recuperado el 29 de noviembre de 2019 .
  64. Norwitz, Neal; van Rossum, Guido; Baxter, Anthony (7 de febrero de 2006). "PEP 356 – Calendario de lanzamiento de Python 2.5" . Archivado del original el 8 de abril de 2022. Recuperado el 29 de noviembre de 2019 .
  65. "17. Ciclo de desarrollo — Guía del desarrollador de Python" . Archivado del original el 18 de enero de 2023. Consultado el 29 de noviembre de 2019 .
  66. 1 2 3 Peterson, Benjamin (8 de febrero de 2009). "PEP 375 – Calendario de lanzamiento de Python 3.1" . Archivado del original el 19 de abril de 2022. Recuperado el 29 de noviembre de 2019 .
  67. Peterson, Benjamin (12 de junio de 2011). " [ LANZADO ] Python 3.1.4" . python-announce (Lista de correo). Archivado del original el 6 de diciembre de 2021. Recuperado el 29 de noviembre de 2019 .
  68. 1 2 3 4 Brandl, Georg (30 de diciembre de 2009). "PEP 392 – Calendario de lanzamiento de Python 3.2" . Archivado del original el 19 de abril de 2022. Recuperado el 29 de noviembre de 2019 .
  69. 1 2 3 4 Brandl, Georg (23 de marzo de 2011). "PEP 398 – Calendario de lanzamiento de Python 3.3" . Archivado del original el 12 de abril de 2022. Recuperado el 29 de noviembre de 2019 .
  70. 1 2 3 Hastings, Larry (17 de octubre de 2012). "PEP 429 – Calendario de lanzamiento de Python 3.4" . Archivado del original el 12 de abril de 2022. Recuperado el 29 de noviembre de 2019 .
  71. Hastings, Larry (9 de agosto de 2017). " [ LANZADO ] Python 3.4.7 ya está disponible" . python-announce (Lista de correo). Archivado del original el 6 de diciembre de 2021. Recuperado el 29 de noviembre de 2019 .
  72. 1 2 3 Hastings, Larry (22 de septiembre de 2014). "PEP 478 – Calendario de lanzamiento de Python 3.5" . Archivado del original el 12 de abril de 2022. Recuperado el 17 de marzo de 2020 .
  73. Hastings, Larry (8 de agosto de 2017). " [ LANZADO ] Python 3.5.4 ya está disponible" . python-announce (Lista de correo). Archivado del original el 6 de diciembre de 2021. Recuperado el 29 de noviembre de 2019 .
  74. 1 2 3 4 Deily, Ned (30 de mayo de 2015). "PEP 494 – Calendario de lanzamiento de Python 3.6" . Archivado del original el 23 de mayo de 2022. Recuperado el 23 de mayo de 2022 .
  75. 1 2 3 4 Deily, Ned (23 de diciembre de 2016). "PEP 537 – Calendario de lanzamiento de Python 3.7" . Archivado del original el 16 de julio de 2023. Recuperado el 16 de julio de 2023 .
  76. 1 2 3 4 Langa, Łukasz (27 de enero de 2018). "PEP 569 – Calendario de lanzamiento de Python 3.8" . Archivado del original el 16 de julio de 2023. Recuperado el 16 de julio de 2023 .
  77. 1 2 3 4 Langa, Łukasz (13 de octubre de 2020). "PEP 596 – Calendario de lanzamiento de Python 3.9" . Archivado del original el 12 de noviembre de 2022. Recuperado el 7 de diciembre de 2022 .
  78. Langa, Łukasz (4 de junio de 2019). "PEP 602 – Ciclo de lanzamiento anual para Python" . Archivado del original el 16 de julio de 2023. Recuperado el 16 de julio de 2023 .
  79. 1 2 3 4 Salgado, Pablo (25 de mayo de 2020). "PEP 619 – Calendario de lanzamiento de Python 3.10" . Archivado del original el 16 de julio de 2023. Recuperado el 16 de julio de 2023 .
  80. 1 2 3 4 Salgado, Pablo (12 de julio de 2021). "PEP 664 – Calendario de lanzamiento de Python 3.11" . Archivado del original el 16 de julio de 2023. Recuperado el 16 de julio de 2023 .
  81. 1 2 3 4 Wouters, Thomas (24 de mayo de 2022). "PEP 693 – Calendario de lanzamiento de Python 3.12" . Archivado del original el 16 de julio de 2023. Recuperado el 16 de julio de 2023 .
  82. 1 2 3 4 Wouters, Thomas (26 de mayo de 2023). "PEP 719 – Calendario de lanzamiento de Python 3.13" . Archivado del original el 16 de julio de 2023. Recuperado el 16 de julio de 2023 .
  83. ^ van Kemenade, Hugo (24 de abril de 2024 ) . "PEP 745: calendario de lanzamiento de Python 3.14" . Propuestas de mejora de Python (PEP) . Consultado el 7 de mayo de 2025 .
  84. ^ van Kemenade, Hugo (26 de abril de 2025 ) . "PEP 790: calendario de lanzamiento de Python 3.15" . Propuestas de mejora de Python (PEP) . Consultado el 7 de mayo de 2025 .
  • Blog de Guido Van Rossum sobre la historia de Python