fbpx
Wikipedia

Historia de Python

Python es uno de los lenguajes de programación dinámicos más populares que existen entre los que se encuentran Java, Javascript, Go y C#. Aunque es considerado a menudo como un lenguaje "scripting", es realmente un lenguaje de propósito general. En la actualidad, Python es usado para todo, desde simples "scripts", hasta grandes servidores web que proveen servicio ininterrumpido 24×7. Es utilizado para la programación de interfaces gráficas y bases de datos, programación web tanto en el cliente como en el servidor (véase Django o Flask) y "testing" de aplicaciones. Además tiene una amplia aceptación por científicos que hacen aplicaciones para las supercomputadores más rápidas del mundo y por los niños que recién están comenzando a programar.

Logo de Python

La historia del lenguaje de programación Python se remonta hacia finales de los 80s y principio de los 90s,[1]​ su implementación comenzó en diciembre de 1989[2]​ cuando en Navidad Guido Van Rossum que trabajaba en el (CWI) (un centro de investigación holandés de carácter oficial que, entre otras cosas, actualmente alberga la oficina central del W3C) decidió empezar el proyecto como un pasatiempo dándole continuidad al lenguaje de programación ABC del que había formado parte del equipo de desarrollo en el CWI,[3]​ dicho lenguaje se enfocaba en ser fácil de usar y aprender manteniendo potencia en su desempeño pero el hardware disponible en la época de su creación hacía difícil su uso y el proyecto no trascendió como se esperaba. Van Rossum es por tanto el autor principal de Python y continúa ejerciendo un rol central decidiendo la dirección del lenguaje, en la comunidad de Python se le conoce como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for Life, BDFL). El nombre "Python" viene dado por la afición de Van Rossum al grupo Monty Python.

El lenguaje de programación Python fue originalmente desarrollado para el sistema operativo Amoeba.

Principales influencias de otros lenguajes

El núcleo de la sintaxis de Python y grandes aspectos de su filosofía fueron heredados directamente del lenguaje de programación ABC. Por ejemplo el siguiente código muestra una función para obtener el conjunto de todas las palabras en un documento en ABC[4]​ y en Python:

Recuperar las palabras de un documento en ABC Recuperar las palabras de un documento en Python
HOW TO RETURN words document: PUT {} IN collection FOR line IN document: FOR word IN split line: IF word not.in collection: INSERT word IN collection RETURN collection 
def words(document): collection = set() for line in document: for word in line.split(): if word not in collection: collection.add(word) return collection 

En ABC no existe propiamente el tipo de dato conjunto, sino algo como multiconjuntos, es decir, si se inserta un elemento dos veces, aparecerá dos veces en esa colección, pero en Python el if puede ser eliminado porque la operación add sobre los conjuntos en Python no hace nada si el elemento ya está en el conjunto. Se puede observar perfectamente las similitudes entre ambos códigos, la sangría, el ciclo for, el operador in, pero también sus diferencias, como por ejemplo en ABC no se utilizan paréntesis y en Python sí, además las palabras claves en ABC son escritas en mayúsculas así como los nombres de los procedimientos o funciones; ABC hace distinción entre procedimiento y función, otra diferencia con Python.

Las principales ideas de ABC que influyeron o se incluyeron en Python fueron según el propio Guido:[5]

  • La sangría para agrupar el código
  • El carácter : para indicar que comienza un bloque indentado (después de pruebas con usuarios)
  • El diseño simple de las instrucciones: if, while, for,...
  • Tuplas, listas, diccionarios (fuertemente modificados en Python)
  • Tipos de datos inmutables
  • No imponer límites, como tamaño de un array, etc...
  • El "prompt" >>>

Otras ideas que influyeron en la concepción de Python fue tener un lenguaje que pudiera ser tan potente como C pero también expresivo para ejecutar "scripts" como sh.[6]​ De hecho la sintaxis de Python copia muchísimo de C. Por ejemplo, las palabras claves (if, else, while, for, etc.) son las mismas que en C, los identificadores tienen las mismas reglas para nombrarlos que C, y la mayoría de los operadores estándar tienen el mismo significado que en C. Una de las mayores diferencias es que Python en lugar de usar llaves para agrupar código usa sangría, la otra gran diferencia es que Python usa tipado dinámico.

Los generadores e iteradores fueron inspirados por Icon, y fusionados con las ideas de la programación funcional en un modelo unificado. Modula-3 fue la base del modelo de excepciones y del sistema de módulos.[1][3]Perl contribuyó en las expresiones regulares, usadas para la manipulación de "string".[7]​ Las adiciones a biblioteca estándar de Python standard library y algunas opciones sintácticas fueron influenciadas por Java algunos ejemplos son: el paquete de logging,[8]​ introducido en la versión 2.3,[9]​ el paquete threading para aplicaciones multihilos,[10]​ el parser SAX, introducido en la versión 2.0, y la sintaxis del decorador que usa @,[11]​ incluida en la versión 2.4[12]

Cronología de Python

 
Las versiones indicadas en rojo se consideran obsoletas.
 
Las versiones indicadas en rojo se consideran obsoletas.

Fechas de publicación:[13][14]

  • Comienzo de la implementación - December, 1989
  • Publicación interna en CWI - 1990
  • Python 0.9.0 - 20 de febrero de 1991 (publicado en alt.sources)[15]
    • Python 0.9.1 - febrero de 1991
    • Python 0.9.2 - otoño de 1991
    • Python 0.9.4 - 24 de diciembre de 1991
    • Python 0.9.5 - 2 de enero de 1992 (solo para Macintosh)
    • Python 0.9.6 - 6 de abril de 1992
    • Python 0.9.7 beta - 1992
    • Python 0.9.8 - 9 de enero de 1993
    • Python 0.9.9 - 29 de julio de 1993
  • Python 1.0 - enero de 1994
    • Python 1.5 - 31 de diciembre de 1997
    • Python 1.6 - 5 de septiembre de 2000
  • Python 2.0 - 16 de octubre de 2000
    • Python 2.1 - 17 de abril de 2001
    • Python 2.2 - 21 de diciembre de 2001
    • Python 2.3 - 29 de julio de 2003
    • Python 2.4 - 30 de noviembre de 2004
    • Python 2.5 - 19 de septiembre de 2006
    • Python 2.6 - 1 de octubre de 2008
    • Python 2.7 - 3 de julio de 2010
  • Python 3.0 - 3 de diciembre de 2008
    • Python 3.1 - 27 de junio de 2009
    • Python 3.2 - 20 de febrero de 2011
    • Python 3.3 - 29 de septiembre de 2012
    • Python 3.4 - 16 de marzo de 2014
    • Python 3.5 - 8 de febrero de 2015
    • Python 3.6 - 23 de diciembre de 2016
    • Python 3.7 - 12 de junio de 2018
    • Python 3.8 - 14 de octubre de 2019
    • Python 3.9 - 5 de octubre de 2020

Primera publicación

El 20 de febrero de 1991, van Rossum publicó el código por primera vez en alt.sources, con el número de versión 0.9.0.[15]​ En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de excepciones, funciones y los tipos modulares, como: str, list, dict, entre otros. Además en este lanzamiento inicial aparecía un sistema de módulos adoptado de Modula-3; Van Rossum describe el módulo como “una de las mayores unidades de programación de Python”.[1]​ El modelo de excepciones en Python es parecido al de Modula-3, con la adición de una cláusula else.[3]​ En el año 1994 se formó comp.lang.python, el foro de discusión principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje.

Versión 1.0

Python llega a la versión 1.0 en enero de 1994. Las características más importantes incluidas en esta publicación fueron las herramientas de la programación funcional lambda, reduce, filter y map. Van Rossum ha comentado que "Python adquiere lambda, reduce(), filter() y map(), cortesía de un hacker de Lisp que las extrañaba y envió parches que funcionaban".[16]

La última versión liberada proveniente de 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, donde lanzó varias versiones del software.

Para la versión 1.4, Python adquirió varias características nuevas. Es notable entre estas los argumentos por nombre inspirados por Modula-3 (que también son similares a los de Common Lisp) y soporte "built-in" para los números complejos.

Durante su estancia en CNRI, Van Rossum lanzó la iniciativa Computer Programming for Everybody (CP4E), con el fin de hacer la programación más accesible a más gente, con un nivel de 'alfabetización' básico en lenguajes de programación, similar a las habilidades básicas en inglés y matemáticas necesarias por muchos empleadores. Python tuvo un papel crucial en este proceso: debido a su orientación hacia una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban similitudes con su predecesor, ABC. El proyecto fue patrocinado por DARPA.[17]​ El proyecto CP4E está inactivo, y mientras tanto Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica, pero alcanzar a los no-programadores ya no es una preocupación activa.[18]

BeOpen

En el año 2000, el equipo principal de desarrolladores de Python se cambió a BeOpen.com para formar el equipo BeOpen PythonLabs. CNRI pidió que la versión 1.6 fuera publicada hasta el punto de desarrollo en que el equipo abandonó CNRI. Consecuentemente su agenda de lanzamiento para la versión 1.6 y la versión 2.0 tenían una significativa cantidad de solapamiento.[19]​ Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de PythonLabs se unieron a Digital Creations.

La publicación de Python 1.6 incluía una nueva licencia de CNRI que era substancialmente más larga que la licencia de CWI que había sido usada en las publicaciones anteriores. La nueva licencia incluía una cláusula estipulando que la licencia estaba gobernada por las leyes del estado de Virginia. La Free Software Foundation (FSF) argumento la cláusula era incompatible con GNU GPL. Entonces BeOpen, CNRI, y FSF acordaron cambiar Python hacia una licencia de software libre que lo haría compatible con GPL. Python 1.6.1 es básicamente el mismo que Python 1.6, con unos arreglos de bugs, y con la nueva licencia compatible con GPL.[20]

Versión 2.0

Python 2.0 tomó una importante característica del lenguaje de programación funcional Haskell: generación de listas. La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en Haskell, y la preferencia de Python por palabras claves. Python 2.0 introdujo además un sistema de recolección de basura capaz de recolectar referencias cíclicas.

Python 2.1 fue un trabajo derivado de Python 1.6.1, así como también de Python 2.0. Su licencia fue renombrada a: Python Software Foundation License. Todo el código, documentación y especificaciones añadidas, desde la fecha del lanzamiento de la versión alfa de Python 2.1, pertenece a Python Software Foundation (PSF), una organización sin ánimo de lucro fundada en el año 2001, tomando como modelo la Apache Software Foundation.[20]​ Este lanzamiento incluyó un cambio en el lenguaje para soportar ámbitos anidados (más conocido en programación como "nested scopes") como lo soportan otros lenguajes de "static scoping" (del cual Scheme es el originador).[21]​ (Esta características fue deshabilitada por defecto, y no requerida, hasta Python 2.2.)

Una gran innovación en Python 2.2 fue la unificación de los tipos en Python (tipos escritos en C), y clases (tipos escritos en Python) dentro de una jerarquía. Esa unificación logró un modelo orientado a objetos de Python puro y consistente.[22]​ También fueron agregados los generadores que fueron inspirados por el lenguaje Icon.[23]

Versión 3.0

Python 3.0 (también conocido como "Python 3000" o "Py3K") fue diseñado para rectificar ciertas fallas fundamentales en el diseño del lenguaje (los cambios requeridos no podían ser implementados mientras se mantuviera compatibilidad hacia atrás con la serie 2.x). El principio que guía Python 3 es: "reducir la duplicación de características eliminando viejas formas de hacer las cosas (reduce feature duplication by removing old ways of doing things)".

Filosofía

Python 3.0 fue desarrollado con la misma filosofía que en las versiones anteriores. Sin embargo, como Python ha acumulado nuevas y redundantes formas de programar la misma tarea, Python 3.0 ha hecho énfasis en eliminar constructores duplicados y módulos, en consecuencia con "Debe haber un— y preferiblemente solo un —modo obvio de hacerlo".

A pesar de esto, Python 3.0 se mantiene como un lenguaje de programación multiparadigma. Los programadores todavía tienen opciones entre orientación a objetos, programación estructurada, programación funcional y otros paradigmas, pero dentro de estas amplias opciones, los detalles intentan ser más obvios en Python 3.0 que como eran en Python 2.x.

Cronología y compatibilidad

Python 3.0 fue liberado el 3 de diciembre de 2008.[24]​ Las series Python 2.x y Python 3.x estaban planeadas para coexistir por varias publicaciones lanzándolas en paralelo, con la serie 2.x existente mayormente por compatibilidad y con algunas nuevas características siendo importadas hacia atrás de la serie 3.x. Python 2.6 fue liberado para coincidir con Python 3.0, e incluye algunas características de esa publicación, así como un modo de "alertas (warnings)" que resalta el uso de características que han sido eliminadas en Python 3.0.[25]​ Similarmente, Python 2.7 coincide e incluye características de Python 3.1,[26]​ que fue publicado el 26 de junio de 2009. Python 2.7 fue la última publicación en la serie 2.x;[27]​ las publicaciones en paralelo terminaron con Python 3.2.

Python 3.0 rompe la compatibilidad hacia atrás. El código de Python 2.x no necesariamente debe "correr" en Python 3.0 sin modificarlo. Hay cambios básicos tales como el cambio de print en una función (por lo tanto cualquier uso como print "Hello Python" provocará un error en Python 3.x), y el cambio a Unicode para todos los textos "strings". El tipado dinámico de Python combinado con los planes para cambiar la semántica de ciertos métodos de los diccionarios, por ejemplo, hacen que convertir perfectamente de Python 2.x a Python 3.0 sea muy difícil de manera automática. Sin embargo, una herramiento llamada "2to3" puede hacer la mayoría del trabajo de "traducción", señalando áreas que confusas para ella usando comentarios o alertas. Incluso en la etapa "alpha", 2to3 se mostraba claramente satisfactoria para ejecutar las traducciones del código.[28]​ Para proyectos que requerían compatibilidad de ambas versiones 2.x y 3.x, el equipo de Python recomendó guardar el código fuente de las versiones 2.x, y generar versiones a Python 3.x usando 2to3. Se desaconsejó esta forma de conversión a Python 3.x si el código realmente necesitase ejecutarse en Python 2.x.

Características

Algunos de los mayores cambios anunciados para Python 3.0 fueron:

  • Cambiar la instrucción print de modo que sea una función "built-in", no una instrucción. Esto ha hecho que sea más fácil cambiar un módulo para usar una función print diferente, así como hacer la sintaxis más regular. En Python 2.6 y 2.7 esta característica puede ser habilitada usando from __future__ import print_function.[29]
  • Moviendo reduce (pero no map o filter) fuera del espacio de nombres "built-in" dentro de "functools".[30]
  • Adicionar soporte para anotación opcional en funciones que pueda ser usar para la declaración informal de tipos u otros propósitos.[31]
  • Unificar los tipos str/unicode, representando texto, e introduciendo un tipo immutable bytes; y un más correspondiente tipo mutable bytearray, ambos de los cuales representas "arrays" de bytes;[32]
  • Eliminar compatibilidad hacia atrás, incluidas clases "old-style", excepciones "string", e implícitos "imports" relativos.

Las subsecuentes publicaciones de la serie Python 3.x han incluido sustanciales nuevas características; todas al corriente del desarrollo que el lenguaje ha tenido en la serie 3.x.

Véase también

Referencias

  1. «The Making of Python». Artima Developer. Consultado el 22 de marzo de 2007. 
  2. «A Brief Timeline of Python». Guido Van Rossum. Consultado el 5 de enero de 2015. 
  3. «Why was Python created in the first place?». Python FAQ. Consultado el 5 de enero de 2015. 
  4. «The ABC Programming Language». Consultado el 5 de enero de 2015. 
  5. «The History of Python». Consultado el 5 de enero de 2015. 
  6. . julio de 1998. Archivado desde el original el 1 de mayo de 2007. Consultado el 29 2007. 
  7. https://docs.python.org/library/re.html
  8. «PEP 282 - A Logging System». Python.org. Consultado el 24 de noviembre de 2008. 
  9. . Python.org. Archivado desde el original el 20 de diciembre de 2008. Consultado el 24 de noviembre de 2008. 
  10. https://docs.python.org/library/threading.html
  11. «PEP 318 - Decorators for Functions and Methods». Python.org. Consultado el 24 de noviembre de 2008. 
  12. . Python.org. Archivado desde el original el 10 de diciembre de 2008. Consultado el 24 de noviembre de 2008. 
  13. . Archivado desde el original el 22 de diciembre de 2015. Consultado el 6 de enero de 2015. 
  14. http://python-history.blogspot.com/2009/01/brief-timeline-of-python.html
  15. van Rossum, Guido (20 de enero de 2009). «A Brief Timeline of Python». The History of Python (en inglés). Consultado el 14 de febrero de 2021. 
  16. Guido Van Rossum. «The fate of reduce() in Python 3000». Artima Developer. Consultado el 22 de marzo de 2007. 
  17. . Python Software Foundation. Archivado desde el original el 29 de marzo de 2007. Consultado el 22 de marzo de 2007. 
  18. . Python Library Reference. Archivado desde el original el 29 de marzo de 2007. Consultado el 22 de marzo de 2007. 
  19. PEP 227 -- Statically Nested Scopes
  20. PEPs 252 and 253: Type and Class Changes
  21. PEP 255: Simple Generators
  22. Python 3.0 release
  23. Neal Norwitz; Barry Warsaw (29 de junio de 2006). «PEP 361 -- Python 2.6 and 3.0 Release Schedule». Consultado el 7 de octubre de 2012. 
  24. A.M. Kuchling (3 de julio de 2010). «What’s New in Python 2.7». Consultado el 7 de octubre de 2012. «Much as Python 2.6 incorporated features from Python 3.0, version 2.7 incorporates some of the new features in Python 3.1. The 2.x series continues to provide tools for migrating to the 3.x series.» 
  25. Barry Warsaw (9 de noviembre de 2011). «PEP 404 -- Python 2.8 Un-release Schedule». Consultado el 7 de octubre de 2012. 
  26. Sam Ruby, 2to3, September 1, 2007
  27. PEP 3105
  28. Thread on Artima programmer blog
  29. PEP 3197
  30. PEP 3137: Immutable Bytes and Mutable Buffer

Enlaces externos

  • Guido Van Rossum blog on Python's History
  •   Datos: Q4205080

historia, python, python, lenguajes, programación, dinámicos, más, populares, existen, entre, encuentran, java, javascript, aunque, considerado, menudo, como, lenguaje, scripting, realmente, lenguaje, propósito, general, actualidad, python, usado, para, todo, . Python es uno de los lenguajes de programacion dinamicos mas populares que existen entre los que se encuentran Java Javascript Go y C Aunque es considerado a menudo como un lenguaje scripting es realmente un lenguaje de proposito general En la actualidad Python es usado para todo desde simples scripts hasta grandes servidores web que proveen servicio ininterrumpido 24 7 Es utilizado para la programacion de interfaces graficas y bases de datos programacion web tanto en el cliente como en el servidor vease Django o Flask y testing de aplicaciones Ademas tiene una amplia aceptacion por cientificos que hacen aplicaciones para las supercomputadores mas rapidas del mundo y por los ninos que recien estan comenzando a programar Logo de Python Articulo principal Python La historia del lenguaje de programacion Python se remonta hacia finales de los 80s y principio de los 90s 1 su implementacion comenzo en diciembre de 1989 2 cuando en Navidad Guido Van Rossum que trabajaba en el CWI un centro de investigacion holandes de caracter oficial que entre otras cosas actualmente alberga la oficina central del W3C decidio empezar el proyecto como un pasatiempo dandole continuidad al lenguaje de programacion ABC del que habia formado parte del equipo de desarrollo en el CWI 3 dicho lenguaje se enfocaba en ser facil de usar y aprender manteniendo potencia en su desempeno pero el hardware disponible en la epoca de su creacion hacia dificil su uso y el proyecto no trascendio como se esperaba Van Rossum es por tanto el autor principal de Python y continua ejerciendo un rol central decidiendo la direccion del lenguaje en la comunidad de Python se le conoce como Benevolente Dictador Vitalicio en ingles Benevolent Dictator for Life BDFL El nombre Python viene dado por la aficion de Van Rossum al grupo Monty Python El lenguaje de programacion Python fue originalmente desarrollado para el sistema operativo Amoeba Indice 1 Principales influencias de otros lenguajes 2 Cronologia de Python 3 Primera publicacion 4 Version 1 0 4 1 BeOpen 5 Version 2 0 6 Version 3 0 6 1 Filosofia 6 2 Cronologia y compatibilidad 6 3 Caracteristicas 7 Vease tambien 8 Referencias 9 Enlaces externosPrincipales influencias de otros lenguajes EditarEl nucleo de la sintaxis de Python y grandes aspectos de su filosofia fueron heredados directamente del lenguaje de programacion ABC Por ejemplo el siguiente codigo muestra una funcion para obtener el conjunto de todas las palabras en un documento en ABC 4 y en Python Recuperar las palabras de un documento en ABC Recuperar las palabras de un documento en PythonHOW TO RETURN words document PUT IN collection FOR line IN document FOR word IN split line IF word not in collection INSERT word IN collection RETURN collection def words document collection set for line in document for word in line split if word not in collection collection add word return collectionEn ABC no existe propiamente el tipo de dato conjunto sino algo como multiconjuntos es decir si se inserta un elemento dos veces aparecera dos veces en esa coleccion pero en Python el if puede ser eliminado porque la operacion add sobre los conjuntos en Python no hace nada si el elemento ya esta en el conjunto Se puede observar perfectamente las similitudes entre ambos codigos la sangria el ciclo for el operador in pero tambien sus diferencias como por ejemplo en ABC no se utilizan parentesis y en Python si ademas las palabras claves en ABC son escritas en mayusculas asi como los nombres de los procedimientos o funciones ABC hace distincion entre procedimiento y funcion otra diferencia con Python Las principales ideas de ABC que influyeron o se incluyeron en Python fueron segun el propio Guido 5 La sangria para agrupar el codigo El caracter para indicar que comienza un bloque indentado despues de pruebas con usuarios El diseno simple de las instrucciones if while for Tuplas listas diccionarios fuertemente modificados en Python Tipos de datos inmutables No imponer limites como tamano de un array etc El prompt gt gt gt Otras ideas que influyeron en la concepcion de Python fue tener un lenguaje que pudiera ser tan potente como C pero tambien expresivo para ejecutar scripts como sh 6 De hecho la sintaxis de Python copia muchisimo de C Por ejemplo las palabras claves if else while for etc son las mismas que en C los identificadores tienen las mismas reglas para nombrarlos que C y la mayoria de los operadores estandar tienen el mismo significado que en C Una de las mayores diferencias es que Python en lugar de usar llaves para agrupar codigo usa sangria la otra gran diferencia es que Python usa tipado dinamico Los generadores e iteradores fueron inspirados por Icon y fusionados con las ideas de la programacion funcional en un modelo unificado Modula 3 fue la base del modelo de excepciones y del sistema de modulos 1 3 Perl contribuyo en las expresiones regulares usadas para la manipulacion de string 7 Las adiciones a biblioteca estandar de Python standard library y algunas opciones sintacticas fueron influenciadas por Java algunos ejemplos son el paquete de logging 8 introducido en la version 2 3 9 el paquete threading para aplicaciones multihilos 10 el parser SAX introducido en la version 2 0 y la sintaxis del decorador que usa 11 incluida en la version 2 4 12 Cronologia de Python Editar Las versiones indicadas en rojo se consideran obsoletas Las versiones indicadas en rojo se consideran obsoletas Fechas de publicacion 13 14 Comienzo de la implementacion December 1989 Publicacion interna en CWI 1990 Python 0 9 0 20 de febrero de 1991 publicado en alt sources 15 Python 0 9 1 febrero de 1991 Python 0 9 2 otono de 1991 Python 0 9 4 24 de diciembre de 1991 Python 0 9 5 2 de enero de 1992 solo para Macintosh Python 0 9 6 6 de abril de 1992 Python 0 9 7 beta 1992 Python 0 9 8 9 de enero de 1993 Python 0 9 9 29 de julio de 1993 Python 1 0 enero de 1994 Python 1 5 31 de diciembre de 1997 Python 1 6 5 de septiembre de 2000 Python 2 0 16 de octubre de 2000 Python 2 1 17 de abril de 2001 Python 2 2 21 de diciembre de 2001 Python 2 3 29 de julio de 2003 Python 2 4 30 de noviembre de 2004 Python 2 5 19 de septiembre de 2006 Python 2 6 1 de octubre de 2008 Python 2 7 3 de julio de 2010 Python 3 0 3 de diciembre de 2008 Python 3 1 27 de junio de 2009 Python 3 2 20 de febrero de 2011 Python 3 3 29 de septiembre de 2012 Python 3 4 16 de marzo de 2014 Python 3 5 8 de febrero de 2015 Python 3 6 23 de diciembre de 2016 Python 3 7 12 de junio de 2018 Python 3 8 14 de octubre de 2019 Python 3 9 5 de octubre de 2020Primera publicacion EditarEl 20 de febrero de 1991 van Rossum publico el codigo por primera vez en alt sources con el numero de version 0 9 0 15 En esta etapa del desarrollo ya estaban presentes clases con herencia manejo de excepciones funciones y los tipos modulares como str list dict entre otros Ademas en este lanzamiento inicial aparecia un sistema de modulos adoptado de Modula 3 Van Rossum describe el modulo como una de las mayores unidades de programacion de Python 1 El modelo de excepciones en Python es parecido al de Modula 3 con la adicion de una clausula else 3 En el ano 1994 se formo comp lang python el foro de discusion principal de Python marcando un hito en el crecimiento del grupo de usuarios de este lenguaje Version 1 0 EditarPython llega a la version 1 0 en enero de 1994 Las caracteristicas mas importantes incluidas en esta publicacion fueron las herramientas de la programacion funcional a href C C3 A1lculo lambda html title Calculo lambda lambda a reduce filter y map Van Rossum ha comentado que Python adquiere lambda reduce filter y map cortesia de un hacker de Lisp que las extranaba y envio parches que funcionaban 16 La ultima version liberada proveniente de CWI fue Python 1 2 En 1995 van Rossum continuo su trabajo en Python en la Corporation for National Research Initiatives CNRI en Reston Virginia donde lanzo varias versiones del software Para la version 1 4 Python adquirio varias caracteristicas nuevas Es notable entre estas los argumentos por nombre inspirados por Modula 3 que tambien son similares a los de Common Lisp y soporte built in para los numeros complejos Durante su estancia en CNRI Van Rossum lanzo la iniciativa Computer Programming for Everybody CP4E con el fin de hacer la programacion mas accesible a mas gente con un nivel de alfabetizacion basico en lenguajes de programacion similar a las habilidades basicas en ingles y matematicas necesarias por muchos empleadores Python tuvo un papel crucial en este proceso debido a su orientacion hacia una sintaxis limpia ya era idoneo y las metas de CP4E presentaban similitudes con su predecesor ABC El proyecto fue patrocinado por DARPA 17 El proyecto CP4E esta inactivo y mientras tanto Python intenta ser facil de aprender y no muy arcano en su sintaxis y semantica pero alcanzar a los no programadores ya no es una preocupacion activa 18 BeOpen Editar En el ano 2000 el equipo principal de desarrolladores de Python se cambio a BeOpen com para formar el equipo BeOpen PythonLabs CNRI pidio que la version 1 6 fuera publicada hasta el punto de desarrollo en que el equipo abandono CNRI Consecuentemente su agenda de lanzamiento para la version 1 6 y la version 2 0 tenian una significativa cantidad de solapamiento 19 Python 2 0 fue el primer y unico lanzamiento de BeOpen com Despues que Python 2 0 fuera publicado por BeOpen com Guido van Rossum y los otros desarrolladores de PythonLabs se unieron a Digital Creations La publicacion de Python 1 6 incluia una nueva licencia de CNRI que era substancialmente mas larga que la licencia de CWI que habia sido usada en las publicaciones anteriores La nueva licencia incluia una clausula estipulando que la licencia estaba gobernada por las leyes del estado de Virginia La Free Software Foundation FSF argumento la clausula era incompatible con GNU GPL Entonces BeOpen CNRI y FSF acordaron cambiar Python hacia una licencia de software libre que lo haria compatible con GPL Python 1 6 1 es basicamente el mismo que Python 1 6 con unos arreglos de bugs y con la nueva licencia compatible con GPL 20 Version 2 0 EditarPython 2 0 tomo una importante caracteristica del lenguaje de programacion funcional Haskell generacion de listas La sintaxis de Python para esta construccion es muy similar a la de Haskell salvo por la preferencia de los caracteres de puntuacion en Haskell y la preferencia de Python por palabras claves Python 2 0 introdujo ademas un sistema de recoleccion de basura capaz de recolectar referencias ciclicas Python 2 1 fue un trabajo derivado de Python 1 6 1 asi como tambien de Python 2 0 Su licencia fue renombrada a Python Software Foundation License Todo el codigo documentacion y especificaciones anadidas desde la fecha del lanzamiento de la version alfa de Python 2 1 pertenece a Python Software Foundation PSF una organizacion sin animo de lucro fundada en el ano 2001 tomando como modelo la Apache Software Foundation 20 Este lanzamiento incluyo un cambio en el lenguaje para soportar ambitos anidados mas conocido en programacion como nested scopes como lo soportan otros lenguajes de static scoping del cual Scheme es el originador 21 Esta caracteristicas fue deshabilitada por defecto y no requerida hasta Python 2 2 Una gran innovacion en Python 2 2 fue la unificacion de los tipos en Python tipos escritos en C y clases tipos escritos en Python dentro de una jerarquia Esa unificacion logro un modelo orientado a objetos de Python puro y consistente 22 Tambien fueron agregados los generadores que fueron inspirados por el lenguaje Icon 23 Version 3 0 EditarPython 3 0 tambien conocido como Python 3000 o Py3K fue disenado para rectificar ciertas fallas fundamentales en el diseno del lenguaje los cambios requeridos no podian ser implementados mientras se mantuviera compatibilidad hacia atras con la serie 2 x El principio que guia Python 3 es reducir la duplicacion de caracteristicas eliminando viejas formas de hacer las cosas reduce feature duplication by removing old ways of doing things Filosofia Editar Python 3 0 fue desarrollado con la misma filosofia que en las versiones anteriores Sin embargo como Python ha acumulado nuevas y redundantes formas de programar la misma tarea Python 3 0 ha hecho enfasis en eliminar constructores duplicados y modulos en consecuencia con Debe haber un y preferiblemente solo un modo obvio de hacerlo A pesar de esto Python 3 0 se mantiene como un lenguaje de programacion multiparadigma Los programadores todavia tienen opciones entre orientacion a objetos programacion estructurada programacion funcional y otros paradigmas pero dentro de estas amplias opciones los detalles intentan ser mas obvios en Python 3 0 que como eran en Python 2 x Cronologia y compatibilidad Editar Python 3 0 fue liberado el 3 de diciembre de 2008 24 Las series Python 2 x y Python 3 x estaban planeadas para coexistir por varias publicaciones lanzandolas en paralelo con la serie 2 x existente mayormente por compatibilidad y con algunas nuevas caracteristicas siendo importadas hacia atras de la serie 3 x Python 2 6 fue liberado para coincidir con Python 3 0 e incluye algunas caracteristicas de esa publicacion asi como un modo de alertas warnings que resalta el uso de caracteristicas que han sido eliminadas en Python 3 0 25 Similarmente Python 2 7 coincide e incluye caracteristicas de Python 3 1 26 que fue publicado el 26 de junio de 2009 Python 2 7 fue la ultima publicacion en la serie 2 x 27 las publicaciones en paralelo terminaron con Python 3 2 Python 3 0 rompe la compatibilidad hacia atras El codigo de Python 2 x no necesariamente debe correr en Python 3 0 sin modificarlo Hay cambios basicos tales como el cambio de print en una funcion por lo tanto cualquier uso como print Hello Python provocara un error en Python 3 x y el cambio a Unicode para todos los textos strings El tipado dinamico de Python combinado con los planes para cambiar la semantica de ciertos metodos de los diccionarios por ejemplo hacen que convertir perfectamente de Python 2 x a Python 3 0 sea muy dificil de manera automatica Sin embargo una herramiento llamada 2to3 puede hacer la mayoria del trabajo de traduccion senalando areas que confusas para ella usando comentarios o alertas Incluso en la etapa alpha 2to3 se mostraba claramente satisfactoria para ejecutar las traducciones del codigo 28 Para proyectos que requerian compatibilidad de ambas versiones 2 x y 3 x el equipo de Python recomendo guardar el codigo fuente de las versiones 2 x y generar versiones a Python 3 x usando 2to3 Se desaconsejo esta forma de conversion a Python 3 x si el codigo realmente necesitase ejecutarse en Python 2 x Caracteristicas Editar Algunos de los mayores cambios anunciados para Python 3 0 fueron Cambiar la instruccion print de modo que sea una funcion built in no una instruccion Esto ha hecho que sea mas facil cambiar un modulo para usar una funcion print diferente asi como hacer la sintaxis mas regular En Python 2 6 y 2 7 esta caracteristica puede ser habilitada usando from future import print function 29 Moviendo reduce pero no map o filter fuera del espacio de nombres built in dentro de functools 30 Adicionar soporte para anotacion opcional en funciones que pueda ser usar para la declaracion informal de tipos u otros propositos 31 Unificar los tipos str unicode representando texto e introduciendo un tipo immutable bytes y un mas correspondiente tipo mutable bytearray ambos de los cuales representas arrays de bytes 32 Eliminar compatibilidad hacia atras incluidas clases old style excepciones string e implicitos imports relativos Las subsecuentes publicaciones de la serie Python 3 x han incluido sustanciales nuevas caracteristicas todas al corriente del desarrollo que el lenguaje ha tenido en la serie 3 x Vease tambien EditarPython Django FlaskReferencias Editar a b c The Making of Python Artima Developer Consultado el 22 de marzo de 2007 A Brief Timeline of Python Guido Van Rossum Consultado el 5 de enero de 2015 a b c Why was Python created in the first place Python FAQ Consultado el 5 de enero de 2015 The ABC Programming Language Consultado el 5 de enero de 2015 The History of Python Consultado el 5 de enero de 2015 Interview with Guido Van Rossum julio de 1998 Archivado desde el original el 1 de mayo de 2007 Consultado el 29 2007 https docs python org library re html PEP 282 A Logging System Python org Consultado el 24 de noviembre de 2008 8 PEP 282 The logging Package Python org Archivado desde el original el 20 de diciembre de 2008 Consultado el 24 de noviembre de 2008 https docs python org library threading html PEP 318 Decorators for Functions and Methods Python org Consultado el 24 de noviembre de 2008 5 PEP 318 Decorators for Functions and Methods Python org Archivado desde el original el 10 de diciembre de 2008 Consultado el 24 de noviembre de 2008 Copia archivada Archivado desde el original el 22 de diciembre de 2015 Consultado el 6 de enero de 2015 http python history blogspot com 2009 01 brief timeline of python html a b van Rossum Guido 20 de enero de 2009 A Brief Timeline of Python The History of Python en ingles Consultado el 14 de febrero de 2021 Guido Van Rossum The fate of reduce in Python 3000 Artima Developer Consultado el 22 de marzo de 2007 Computer Programming for Everybody Computer Programming for Everybody Python Software Foundation Archivado desde el original el 29 de marzo de 2007 Consultado el 22 de marzo de 2007 What s New in Python 2 0 a b History of the software Python Library Reference Archivado desde el original el 29 de marzo de 2007 Consultado el 22 de marzo de 2007 PEP 227 Statically Nested Scopes PEPs 252 and 253 Type and Class Changes PEP 255 Simple Generators Python 3 0 release Neal Norwitz Barry Warsaw 29 de junio de 2006 PEP 361 Python 2 6 and 3 0 Release Schedule Consultado el 7 de octubre de 2012 A M Kuchling 3 de julio de 2010 What s New in Python 2 7 Consultado el 7 de octubre de 2012 Much as Python 2 6 incorporated features from Python 3 0 version 2 7 incorporates some of the new features in Python 3 1 The 2 x series continues to provide tools for migrating to the 3 x series Barry Warsaw 9 de noviembre de 2011 PEP 404 Python 2 8 Un release Schedule Consultado el 7 de octubre de 2012 Sam Ruby 2to3 September 1 2007 PEP 3105 Thread on Artima programmer blog PEP 3197 PEP 3137 Immutable Bytes and Mutable BufferEnlaces externos EditarGuido Van Rossum blog on Python s History Datos Q4205080 Obtenido de https es wikipedia org w index php title Historia de Python amp oldid 142863858, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos