Historia de Python

Historia del lenguaje de programación Python

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

El lenguaje de programación Python fue concebido a fines de la década de 1980, [1] y su implementación se inició 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 es el autor principal de Python, y su continuo papel central en decidir la dirección de Python se refleja en el título que le dio la comunidad Python, Benevolent Dictator for Life (BDFL) . [4] [5] (Sin embargo, Van Rossum renunció como líder 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 fue lanzado el 16 de octubre de 2000, con muchas nuevas características importantes, incluyendo un recolector de basura con detección de ciclos (además del conteo de referencias ) para la gestión de memoria y soporte para Unicode , junto con un cambio en el proceso de desarrollo en sí, con un cambio a un proceso más transparente y respaldado por la comunidad. [8]

El 3 de diciembre de 2008 [9] se publicó Python 3.0, una versión importante que no es compatible con versiones anteriores . Muchas de sus principales características también se han incorporado a Python 2.6 y 2.7, que son compatibles con versiones anteriores, aunque ahora no cuentan con soporte. [10]

Historia temprana

En febrero de 1991, Van Rossum publicó el código (etiquetado como versión 0.9.0) en alt.sources. [11] [12] Ya presentes en esta etapa del desarrollo estaban las clases con herencia , manejo de excepciones, funciones y los tipos de datos básicos de list, dict, stretc. También en esta versión inicial habí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 excepción de Python también se parece 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 de Python, lo que marcó un hito en el crecimiento de la base de usuarios y la popularidad de 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(), cortesía de un hacker de Lisp que los extrañó y envió parches que funcionaban ". [13]

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 Corporation for National Research Initiatives (CNRI) en Reston , Virginia, desde donde publicó varias versiones.

En la versión 1.4, Python había adquirido varias características nuevas. Entre ellas, destacan los argumentos de palabras clave inspirados en Modula-3 (que también son similares a los argumentos de palabras clave de Common Lisp ) y el soporte integrado para números complejos . También se incluye una forma básica de ocultamiento de datos mediante la manipulación de nombres , aunque esto se puede obviar fácilmente. [14]

Durante la estancia de Van Rossum en el CNRI, lanzó la iniciativa Computer Programming for Everybody (CP4E), con la intención de hacer que la programación fuera más accesible para más personas, con 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 cumplió un papel central en esto: debido a su enfoque en la sintaxis limpia, ya era adecuado, y los objetivos de CP4E tenían similitudes con su predecesor, ABC. El proyecto fue financiado por DARPA . [15] A partir de 2007 [actualizar], el 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 los no programadores no es una preocupación activa. [16]

Estar abierto

En 2000, el equipo de desarrollo central de Python se trasladó a BeOpen.com [17] para formar el equipo BeOpen PythonLabs. [18] [19] CNRI solicitó que se lanzara una versión 1.6, resumiendo el desarrollo de Python hasta el punto en el que el equipo de desarrollo dejó CNRI. En consecuencia, los cronogramas de lanzamiento para 1.6 y 2.0 tuvieron una cantidad significativa de superposición. [8] Python 2.0 fue el único lanzamiento de BeOpen.com. Después de que BeOpen.com lanzara Python 2.0, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron a Digital Creations .

La versión 1.6 de Python incluía una nueva licencia CNRI que era sustancialmente más larga que la licencia CWI que se había utilizado para versiones anteriores. La nueva licencia incluía una cláusula que establecía que la licencia se regía por las leyes del estado de Virginia . La Free Software Foundation argumentó que la cláusula de elección de la ley aplicable 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 que la haría compatible con la GPL. Python 1.6.1 es esencialmente igual que Python 1.6, con algunas correcciones de errores menores y con la nueva licencia compatible con la GPL. [20]

Versión 2

Python 2.0, publicado en octubre de 2000, [8] introdujo las listas por comprensión , una característica tomada prestada 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, aparte de la preferencia de Haskell por los caracteres de puntuación y la preferencia 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 similar a Python 1.6.1, así como a Python 2.0. Su licencia fue renombrada Python Software Foundation License . Todo el código, la documentación y las especificaciones agregadas, desde el momento del lanzamiento alfa de Python 2.1, son propiedad de Python Software Foundation (PSF), una organización sin fines de lucro formada en 2001, inspirada en Apache Software Foundation . [20] El lanzamiento incluyó un cambio en la especificación del lenguaje para admitir ámbitos anidados, como otros lenguajes con ámbito estático . [21] (La función estaba desactivada de forma predeterminada y no era obligatoria hasta Python 2.2).

Python 2.2 se lanzó en diciembre de 2001; [22] 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 única hizo que el modelo de objetos de Python fuera pura y consistentemente orientado a objetos. [23] También se agregaron generadores inspirados en Icon . [24]

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 [25] e introdujo la withdeclaración, que encierra un bloque de código dentro de un administrador de contexto (por ejemplo, adquiriendo un bloqueo antes de que se ejecute el bloque de código y liberando el bloqueo después, o abriendo un archivo y luego cerrándolo), lo que permite un comportamiento similar a la adquisición de recursos en la inicialización (RAII) y reemplazando un modismo try/finally común. [26]

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. [27] [10] De manera similar, Python 2.7 coincidió con Python 3.1 e incluyó características de este, [28] que se lanzó el 26 de junio de 2009. Luego cesaron las versiones paralelas 2.x y 3.x, y Python 2.7 fue la última versión de la serie 2.x. [29] En noviembre de 2014, se anunció que Python 2.7 sería compatible hasta 2020, pero se animó a los usuarios a migrar a Python 3 lo antes posible. [30] El soporte de 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. El 20 de abril de 2020 se lanzó una versión final, 2.7.18, que incluía correcciones de errores críticos y bloqueadores de versiones. [31] Esto marcó el final de la vida útil de Python 2. [32]

Versión 3

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

Python 3.0 se desarrolló con la misma filosofía que las versiones anteriores. Sin embargo, como 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 Zen de Python : "Debería haber una forma obvia de hacerlo, preferiblemente solo una".

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 una gama tan amplia de opciones, se pretendía que los detalles fueran más obvios en Python 3.0 que en Python 2.x.

Compatibilidad

Python 3.0 rompió la compatibilidad con versiones anteriores, y gran parte del código de Python 2 no se ejecuta sin modificaciones en Python 3. [34] La tipificación dinámica de Python combinada 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 sentido, 2to3 parecía tener bastante éxito, aunque una revisión temprana señaló que había aspectos de la traducción que una herramienta de este tipo nunca podría manejar. [35] 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 utilizando 2to3. Las ediciones del código Python 3.x se desaconsejaron mientras el código necesitara ejecutarse en Python 2.x. [10] Esto ya no se recomienda; A partir de 2012, el enfoque preferido fue crear una única base de código que pudiera ejecutarse tanto en Python 2 como en 3 utilizando módulos de compatibilidad. [36]

Características

Algunos de los principales cambios incluidos para Python 3.0 fueron:

  • Cambiar printpara que sea una función incorporada , no una declaración. Esto hizo que fuera más fácil cambiar un módulo para usar una función de impresión diferente, además de hacer que la sintaxis sea más regular. En Python 2.6 y 2.7 print()está disponible como una función incorporada, pero está enmascarada por la sintaxis de la declaración de impresión, que se puede deshabilitar ingresando from __future__ import print_functionen la parte superior del archivo [37]
  • Eliminación de la inputfunción de Python 2 y cambio de nombre de la raw_inputfunción a input. inputLa función de Python 3 se comporta como raw_inputla función de Python 2, en el sentido de que la entrada siempre se devuelve como una cadena en lugar de evaluarse como una expresión.
  • Moverse reduce(pero no mapo filter) fuera del espacio de nombres integrado y hacia 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) [38] [39]
  • Agregar soporte para anotaciones de funciones opcionales que se pueden usar para declaraciones de tipos informales u otros fines [40]
  • Unificar los tipos str/ unicode, representar texto e introducir un bytestipo inmutable separado; y un tipo mutable correspondiente en su mayor parte bytearray, ambos representan matrices de bytes [41]
  • Eliminar funciones de compatibilidad con versiones anteriores, incluidas clases de estilo antiguo, excepciones de cadenas e importaciones relativas implícitas
  • Un cambio en la funcionalidad de la división de números enteros : en Python 2, la división de números enteros siempre devuelve un número entero. Por ejemplo , 5 / 2is 2; mientras que en Python 3, 5 / 2is 2.5. (Tanto en Python 2 (2.2 en adelante) como en Python 3, existe un operador independiente para proporcionar el comportamiento anterior: 5 // 2is 2)
  • Permitir el uso de letras no ASCII en identificadores, [42] como en smörgåsbord, y admitir totalmente caracteres Unicode en el código fuente ( se utiliza UTF-8 de forma predeterminada)

Las versiones posteriores de la serie Python 3.x han incluido nuevas características adicionales y sustanciales; todo el desarrollo continuo del lenguaje se realiza en la serie 3.x.

Tabla de versiones

Lanzamientos anteriores a las versiones numeradas:

VersiónÚltima
versión micro
Fecha de lanzamientoFin del soporte completoFin de las correcciones de seguridad
Versión antigua, ya no se mantiene:0.90.9.9 [2]20 de febrero de 1991 [2]29 de julio de 1993 [a] [2]
Versión antigua, ya no se mantiene:1.01.0.4 [2]26 de enero de 1994 [2]15 de febrero de 1994 [a] [2]
Versión antigua, ya no se mantiene:1.11.1.1 [2]11 de octubre de 1994 [2]10 de noviembre de 1994 [a] [2]
Versión antigua, ya no se mantiene:1.213 de abril de 1995 [2]Sin soporte
Versión antigua, ya no se mantiene:1.313 de octubre de 1995 [2]Sin soporte
Versión antigua, ya no se mantiene:1.425 de octubre de 1996 [2]Sin soporte
Versión antigua, ya no se mantiene:1.51.5.2 [43]03-01-1998 [2]13 de abril de 1999 [a] [2]
Versión antigua, ya no se mantiene:1.61.6.1 [43]5 de septiembre de 2000 [44]2000–09 [a] [43]
Versión antigua, ya no se mantiene:2.02.0.1 [45]16 de octubre de 2000 [46]22 de junio de 2001 [a] [45]
Versión antigua, ya no se mantiene:2.12.1.3 [45]15 de abril de 2001 [47]09-04-2002 [a] [45]
Versión antigua, ya no se mantiene:2.22.2.3 [45]21 de diciembre de 2001 [48]30 de mayo de 2003 [a] [45]
Versión antigua, ya no se mantiene:2.32.3.7 [45]29 de junio de 2003 [49]11-03-2008 [a] [45]
Versión antigua, ya no se mantiene:2.42.4.6 [45]30 de noviembre de 2004 [50]19 de diciembre de 2008 [a] [45]
Versión antigua, ya no se mantiene:2.52.5.6 [45]19 de septiembre de 2006 [51]26 de mayo de 2011 [a] [45]
Versión antigua, ya no se mantiene:2.62.6.9 [27]1 de octubre de 2008 [27]24 de agosto de 2010 [b] [27]29 de octubre de 2013 [27]
Versión antigua, ya no se mantiene:2.72.7.18 [32]3 de julio de 2010 [32]01-01-2020 [c] [32]
Versión antigua, ya no se mantiene:3.03.0.1 [45]3 de diciembre de 2008 [27]27 de junio de 2009 [52]
Versión antigua, ya no se mantiene:3.13.1.5 [53]27 de junio de 2009 [53]12 de junio de 2011 [54]6 de abril de 2012 [53]
Versión antigua, ya no se mantiene:3.23.2.6 [55]20 de febrero de 2011 [55]13 de mayo de 2013 [b] [55]20 de febrero de 2016 [55]
Versión antigua, ya no se mantiene:3.33.3.7 [56]29 de septiembre de 2012 [56]8 de marzo de 2014 [b] [56]29 de septiembre de 2017 [56]
Versión antigua, ya no se mantiene:3.43.4.10 [57]16 de marzo de 2014 [57]09-08-2017 [58]18-03-2019 [a] [57]
Versión antigua, ya no se mantiene:3.53.5.10 [59]13 de septiembre de 2015 [59]08-08-2017 [60]30 de septiembre de 2020 [59]
Versión antigua, ya no se mantiene:3.63.6.15 [61]23 de diciembre de 2016 [61]24 de diciembre de 2018 [b] [61]23 de diciembre de 2021 [61]
Versión antigua, ya no se mantiene:3.73.7.17 [62]27 de junio de 2018 [62]27 de junio de 2020 [b] [62]6 de junio de 2023 [62]
Versión antigua, ya no se mantiene:3.83.8.20 [63]14 de octubre de 2019 [63]3 de mayo de 2021 [b] [63]07-10-2024 [63]
Versión antigua, pero aún mantenida:3.93.9.20 [64]5 de octubre de 2020 [64]17 de mayo de 2022 [b] [64]2025-10 [64] [65]
Versión antigua, pero aún mantenida:3.103.10.15 [66]4 de octubre de 2021 [66]5 de abril de 2023 [b] [66]2026-10 [66]
Versión antigua, pero aún mantenida:3.113.11.10 [67]24 de octubre de 2022 [67]2 de abril de 2024 [b] [67]2027-10 [67]
Versión antigua, pero aún mantenida:3.123.12.7 [68]2 de octubre de 2023 [68]2025-05 [68]2028-10 [68]
Versión estable actual: 3.133.13.0 [69]07-10-2024 [69]2026-05 [69]2029-10 [69]
Lanzamiento futuro:3.143.14.0a1 [70]01-10-2025 [70]2027-05 [70]2030-10 [70]
Leyenda:
Versión antigua, sin mantenimiento
Versión antigua, aún mantenida
Última versión
Última versión preliminar
Lanzamiento futuro
La cursiva indica la última microversión de las versiones compatibles actualmente al 16 de octubre de 2024.

Notas de la tabla:

  1. ^ abcdefghijkl Fecha del último micro lanzamiento.
  2. ^ abcdefghi Fecha de la última versión que no es solo de seguridad.
  3. ^ El soporte oficial finalizó el 1 de enero de 2020, pero el 20 de abril de 2020 se publicó una versión final del código tal como apareció el 1 de enero de 2020 como versión 2.7.18. [32]

Apoyo

Véase también

Referencias

  1. ^ abc "La creación de Python". Artima Developer. Archivado desde el original el 1 de septiembre de 2016. Consultado el 22 de marzo de 2007 .
  2. ^ abcdefghijklmnopq van Rossum, Guido (20 de enero de 2009). «Una breve cronología de Python». Archivado desde el original el 25 de agosto de 2011. Consultado el 29 de noviembre de 2019 .
  3. ^ ab "¿Por qué se creó Python en primer lugar?". Preguntas frecuentes sobre Python. Archivado desde el original el 23 de febrero de 2008. Consultado el 22 de marzo de 2007 .
  4. ^ van Rossum, Guido (31 de julio de 2008). «Origen de BDFL». Archivado desde el original el 16 de enero de 2011. Consultado el 1 de agosto de 2008 .
  5. ^ "Scripts de Python Creator dentro de Google". www.eweek.com. 7 de marzo de 2006. Archivado desde el original el 9 de agosto de 2018. Consultado el 13 de mayo de 2008 .
  6. ^ Fairchild, Carlie (12 de julio de 2018). «Guido van Rossum renuncia a su papel de dictador benévolo de Python de por vida». Linux Journal . Archivado desde el 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 desde el original el 24 de octubre de 2012 . Consultado el 4 de junio de 2020 .
  8. ^ abcd Kuchling, Andrew M.; Zadka, Moshe. "Novedades en Python 2.0". Archivado desde el original el 14 de diciembre de 2009. Consultado el 22 de marzo de 2007 .
  9. ^ ab "Bienvenido a Python.org". python.org . Archivado desde el original el 14 de junio de 2020 . Consultado el 27 de diciembre de 2016 .
  10. ^ abc van Rossum, Guido (5 de abril de 2006). «PEP 3000 – Python 3000». Archivado desde el original el 2 de abril de 2022. Consultado el 27 de diciembre de 2016 .
  11. ^ "Python 0.9.1 parte 01/21". Archivos de alt.sources. Archivado desde el original el 11 de agosto de 2021. Consultado el 11 de agosto de 2021 .
  12. ^ "HISTORIA". Distribución del código fuente de Python . Python Foundation. Archivado desde el original el 1 de diciembre de 2017. Consultado el 23 de noviembre de 2017 .
  13. ^ van Rossum, Guido. "El destino de reduce() en Python 3000". Artima Developer. Archivado desde el original el 7 de abril de 2007. Consultado el 22 de marzo de 2007 .
  14. ^ "LJ #37: Actualización de Python 1.4". Archivado desde el original el 1 de mayo de 2007 . Consultado el 29 de abril de 2007 .
  15. ^ van Rossum, Guido. «Programación informática para todos». Archivado desde el original el 1 de mayo de 2007. Consultado el 22 de marzo de 2007 .
  16. ^ "Programación informática para todos". Python Software Foundation. Archivado desde el original el 29 de marzo de 2007. Consultado el 22 de marzo de 2007 .
  17. ^ "El equipo de desarrollo de Python se traslada a BeOpen.Com – Slashdot". slashdot.org . Archivado desde el original el 12 de abril de 2020 . Consultado el 12 de abril de 2020 .
  18. ^ "Open | Su socio digital en seguros". Archivado desde el original el 15 de agosto de 2000.
  19. ^ "El proveedor de gestión de contenido PyBiz anuncia una asociación estratégica con BeOpen para utilizar el lenguaje de programación Python" (PDF) . Archivado (PDF) del original el 12 de abril de 2020 . Consultado el 12 de abril de 2020 .
  20. ^ ab «Historia y licencia». Documentación de Python 3. Archivado desde el original el 5 de diciembre de 2016. Consultado el 7 de diciembre de 2022 .
  21. ^ Hylton, Jeremy (1 de noviembre de 2000). «PEP 227 – Ámbitos anidados estáticamente». Archivado desde el original el 23 de mayo de 2022. Consultado el 22 de marzo de 2007 .
  22. ^ "Python 2.2". Python.org . Archivado desde el original el 2 de agosto de 2019. Consultado el 31 de diciembre de 2019 .
  23. ^ Kuchling, Andrew M. (21 de diciembre de 2001). "PEPs 252 y 253: cambios de tipo y clase". Novedades de Python 2.2 . Python Foundation. Archivado desde el original el 17 de septiembre de 2008. Consultado el 5 de septiembre de 2008 .
  24. ^ Schemenauer, Neil; Peters, Tim; Hetland, Magnus (21 de diciembre de 2001). «PEP 255 – Generadores simples». Archivado desde el original el 31 de enero de 2023. Consultado el 5 de septiembre de 2008 .
  25. ^ "Lanzamiento de Python 2.5". Python.org . Archivado desde el original el 4 de agosto de 2019. Consultado el 20 de marzo de 2018 .
  26. ^ "Lo más destacado: Python 2.5". Python.org . Archivado desde el original el 4 de agosto de 2019. Consultado el 20 de marzo de 2018 .
  27. ^ abcdef Norwitz, Neal; Warsaw, Barry (29 de junio de 2006). «PEP 361 – Calendario de lanzamiento de Python 2.6 y 3.0». Archivado desde el original el 12 de abril de 2022. Consultado el 29 de noviembre de 2019 .
  28. ^ Kuchling, Andrew M. (3 de julio de 2010). "Novedades de Python 2.7". Archivado desde el original el 7 de junio de 2012. Consultado el 7 de octubre de 2012. Así como 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 brindando herramientas para migrar a la serie 3.x.
  29. ^ Varsovia, Barry (9 de noviembre de 2011). «PEP 404 – Calendario de lanzamiento de Python 2.8». Archivado desde el original el 23 de mayo de 2022. Consultado el 7 de octubre de 2012 .
  30. ^ Gee, Sue (14 de abril de 2014). «Python 2.7 se mantendrá hasta 2020». i-programmer.info . Archivado desde el original el 10 de mayo de 2016. Consultado el 27 de diciembre de 2016 .
  31. ^ "Commits: python/cpython en 2.7". GitHub . Archivado desde el original el 22 de abril de 2020 . Consultado el 22 de abril de 2020 .
  32. ^ abcde Peterson, Benjamin (3 de noviembre de 2008). «PEP 373 – Calendario de lanzamiento de Python 2.7». Archivado desde el original el 13 de marzo de 2022. Consultado el 20 de abril de 2020 .
  33. ^ "PEP 3100 – Planes varios de Python 3.0 | peps.python.org". peps.python.org . Archivado desde el original el 25 de mayo de 2022 . Consultado el 2 de junio de 2022 .
  34. ^ "PEP 3000 – Python 3000 | peps.python.org". peps.python.org . Archivado desde el original el 2 de abril de 2022 . Consultado el 2 de junio de 2022 .
  35. ^ Ruby, Sam (1 de septiembre de 2007). «2to3». intertwingly.net . Archivado desde el original el 24 de marzo de 2016. Consultado el 6 de septiembre de 2024 .
  36. ^ Coghlan, Alyssa (21 de abril de 2020). "Preguntas y respuestas sobre Python 3: notas sobre Python de Alyssa Coghlan". python-notes.curiousefficiency.org . Consultado el 6 de septiembre de 2024 .{{cite web}}: CS1 maint: estado de la URL ( enlace )
  37. ^ Brandl, Georg (19 de noviembre de 2007). «PEP 3105 – Convertir la impresión en una función». Archivado desde el original el 2 de abril de 2022. Consultado el 27 de diciembre de 2016 .
  38. ^ van Rossum, Guido. «Preguntas frecuentes sobre Python 3000». artima.com . Archivado desde el original el 9 de noviembre de 2020. Consultado el 27 de diciembre de 2016 .
  39. ^ "El destino de reduce() en Python 3000". www.artima.com . Archivado desde el original el 18 de diciembre de 2019 . Consultado el 31 de diciembre de 2019 .
  40. ^ Winter, Collin; Lownds, Tony (2 de diciembre de 2006). «PEP 3107 – Anotaciones de funciones». Archivado desde el original el 13 de marzo de 2022. Consultado el 27 de diciembre de 2016 .
  41. ^ van Rossum, Guido (26 de septiembre de 2007). «PEP 3137 – Bytes inmutables y búfer mutable». Archivado desde el original el 23 de mayo de 2022. Consultado el 23 de mayo de 2022 .
  42. ^ "PEP 3131 – Compatibilidad con identificadores no ASCII | peps.python.org". Propuestas de mejora de Python (PEP) . Consultado el 1 de julio de 2024 .
  43. ^ abc «Lanzamientos | Python.org». Archivado desde el original el 22 de diciembre de 2015. Consultado el 29 de noviembre de 2019 .
  44. ^ Drake, Fred L. Jr. (25 de julio de 2000). «PEP 160 – Calendario de lanzamiento de Python 1.6». Archivado desde el original el 13 de mayo de 2022. Consultado el 29 de noviembre de 2019 .
  45. ^ abcdefghijklm «Descargar Python | Python.org». Archivado desde el original el 8 de agosto de 2018. Consultado el 29 de noviembre de 2019 .
  46. ^ Hylton, Jeremy. «PEP 200 – Calendario de lanzamiento de Python 2.0». Archivado desde el original el 18 de mayo de 2022. Consultado el 29 de noviembre de 2019 .
  47. ^ Hylton, Jeremy (16 de octubre de 2000). «PEP 226 – Calendario de lanzamiento de Python 2.1». Archivado desde el original el 23 de mayo de 2022. Consultado el 29 de noviembre de 2019 .
  48. ^ Varsovia, Barry; van Rossum, Guido (17 de abril de 2001). «PEP 251 – Calendario de lanzamiento de Python 2.2». Archivado desde el original el 4 de mayo de 2022. Consultado el 29 de noviembre de 2019 .
  49. ^ van Rossum, Guido (27 de febrero de 2002). «PEP 283 – Calendario de lanzamiento de Python 2.3». Archivado desde el original el 12 de abril de 2022. Consultado el 29 de noviembre de 2019 .
  50. ^ Varsovia, Barry; Hettinger, Raymond; Baxter, Anthony (29 de julio de 2003). «PEP 320 – Calendario de lanzamiento de Python 2.4». Archivado desde el original el 17 de mayo de 2022. Consultado el 29 de noviembre de 2019 .
  51. ^ Norwitz, Neal; van Rossum, Guido; Baxter, Anthony (7 de febrero de 2006). «PEP 356 – Calendario de lanzamiento de Python 2.5». Archivado desde el original el 8 de abril de 2022. Consultado el 29 de noviembre de 2019 .
  52. ^ "17. Ciclo de desarrollo: Guía del desarrollador de Python". Archivado desde el original el 18 de enero de 2023. Consultado el 29 de noviembre de 2019 .
  53. ^ abc Peterson, Benjamin (8 de febrero de 2009). «PEP 375 – Calendario de lanzamiento de Python 3.1». Archivado desde el original el 19 de abril de 2022. Consultado el 29 de noviembre de 2019 .
  54. ^ Peterson, Benjamin (12 de junio de 2011). «[LANZADO] Python 3.1.4». python-announce (Lista de correo). Archivado desde el original el 6 de diciembre de 2021 . Consultado el 29 de noviembre de 2019 .
  55. ^ abcd Brandl, Georg (30 de diciembre de 2009). «PEP 392 – Calendario de lanzamiento de Python 3.2». Archivado desde el original el 19 de abril de 2022. Consultado el 29 de noviembre de 2019 .
  56. ^ abcd Brandl, Georg (23 de marzo de 2011). «PEP 398 – Calendario de lanzamiento de Python 3.3». Archivado desde el original el 12 de abril de 2022. Consultado el 29 de noviembre de 2019 .
  57. ^ abc Hastings, Larry (17 de octubre de 2012). «PEP 429 – Calendario de lanzamiento de Python 3.4». Archivado desde el original el 12 de abril de 2022. Consultado el 29 de noviembre de 2019 .
  58. ^ Hastings, Larry (9 de agosto de 2017). «[LANZADO] Python 3.4.7 ya está disponible». python-announce (Lista de correo). Archivado desde el original el 6 de diciembre de 2021. Consultado el 29 de noviembre de 2019 .
  59. ^ abc Hastings, Larry (22 de septiembre de 2014). «PEP 478 – Calendario de lanzamiento de Python 3.5». Archivado desde el original el 12 de abril de 2022. Consultado el 17 de marzo de 2020 .
  60. ^ Hastings, Larry (8 de agosto de 2017). «[LANZADO] Python 3.5.4 ya está disponible». python-announce (Lista de correo). Archivado desde el original el 6 de diciembre de 2021. Consultado el 29 de noviembre de 2019 .
  61. ^ abcd Deily, Ned (30 de mayo de 2015). «PEP 494 – Calendario de lanzamiento de Python 3.6». Archivado desde el original el 23 de mayo de 2022. Consultado el 23 de mayo de 2022 .
  62. ^ abcd Deily, Ned (23 de diciembre de 2016). «PEP 537 – Calendario de lanzamiento de Python 3.7». Archivado desde el original el 16 de julio de 2023. Consultado el 16 de julio de 2023 .
  63. ^ abcd Langa, Łukasz (27 de enero de 2018). «PEP 569 – Calendario de lanzamiento de Python 3.8». Archivado desde el original el 16 de julio de 2023. Consultado el 16 de julio de 2023 .
  64. ^ abcd Langa, Łukasz (13 de octubre de 2020). «PEP 596 – Calendario de lanzamiento de Python 3.9». Archivado desde el original el 12 de noviembre de 2022. Consultado el 7 de diciembre de 2022 .
  65. ^ Langa, Łukasz (4 de junio de 2019). «PEP 602 – Ciclo de lanzamiento anual para Python». Archivado desde el original el 16 de julio de 2023. Consultado el 16 de julio de 2023 .
  66. ^ abcd Salgado, Pablo (25 de mayo de 2020). «PEP 619 – Calendario de lanzamiento de Python 3.10». Archivado desde el original el 16 de julio de 2023. Consultado el 16 de julio de 2023 .
  67. ^ abcd Salgado, Pablo (12 de julio de 2021). «PEP 664 – Calendario de lanzamiento de Python 3.11». Archivado desde el original el 16 de julio de 2023. Consultado el 16 de julio de 2023 .
  68. ^ abcd Wouters, Thomas (24 de mayo de 2022). «PEP 693 – Calendario de lanzamiento de Python 3.12». Archivado desde el original el 16 de julio de 2023. Consultado el 16 de julio de 2023 .
  69. ^ abcd Wouters, Thomas (26 de mayo de 2023). «PEP 719 – Calendario de lanzamiento de Python 3.13». Archivado desde el original el 16 de julio de 2023. Consultado el 16 de julio de 2023 .
  70. ^ abcd van Kemenade, Hugo (24 de abril de 2024). «PEP 745 – Calendario de lanzamiento de Python 3.14 | peps.python.org». Propuestas de mejora de Python (PEP) . Archivado desde el original el 5 de mayo de 2024. Consultado el 15 de mayo de 2024 .
  • Blog de Guido Van Rossum sobre la historia de Python
Obtenido de "https://es.wikipedia.org/w/index.php?title=Historia_de_Python&oldid=1251640995"