0% encontró este documento útil (0 votos)
47 vistas

Historia de Python

Python es un lenguaje de programación dinámico y de propósito general desarrollado originalmente a finales de los 80. Fue creado por Guido van Rossum en 1989 y su nombre proviene del grupo Monty Python. Python ha sido influenciado por lenguajes como ABC, C, Modula-3 e Icon. Ha ganado popularidad para usos que van desde scripts simples hasta grandes aplicaciones web y científicas.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
47 vistas

Historia de Python

Python es un lenguaje de programación dinámico y de propósito general desarrollado originalmente a finales de los 80. Fue creado por Guido van Rossum en 1989 y su nombre proviene del grupo Monty Python. Python ha sido influenciado por lenguajes como ABC, C, Modula-3 e Icon. Ha ganado popularidad para usos que van desde scripts simples hasta grandes aplicaciones web y científicas.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

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.
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
19892 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.

Guía de Python
https://peps.python.org/pep-0008/

Instalación de Python
https://docs.python.org/3/using/index.html

Documentación Anaconda
https://docs.anaconda.com/free/anaconda/

Documentación Jupyter Notebook


https://jupyter-notebook.readthedocs.io/en/stable/
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 ABC4 y en Python:
Recuperar las palabras de un Recuperar las palabras de un
documento en ABC documento en Python

HOW TO RETURN words document: def words(document):


PUT {} IN collection collection = set()
FOR line IN document: for line in document:
FOR word IN split line: for word in line.split():
IF word not.in collection: if word not in collection:
INSERT word IN collection collection.add(word)
RETURN collection 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.13 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.412

Cronología de Python

Las versiones indicadas en rojo se consideran obsoletas.

Las versiones indicadas en rojo se consideran obsoletas.


Fechas de publicación:

 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
o Python 0.9.1 - febrero de 1991
o Python 0.9.2 - otoño de 1991
o Python 0.9.4 - 24 de diciembre de 1991
o Python 0.9.5 - 2 de enero de 1992 (solo para Macintosh)
o Python 0.9.6 - 6 de abril de 1992
o Python 0.9.7 beta - 1992
o Python 0.9.8 - 9 de enero de 1993
o Python 0.9.9 - 29 de julio de 1993
 Python 1.0 - enero de 1994
o Python 1.5 - 31 de diciembre de 1997
o Python 1.6 - 5 de septiembre de 2000
 Python 2.0 - 16 de octubre de 2000
o Python 2.1 - 17 de abril de 2001
o Python 2.2 - 21 de diciembre de 2001
o Python 2.3 - 29 de julio de 2003
o Python 2.4 - 30 de noviembre de 2004
o Python 2.5 - 19 de septiembre de 2006
o Python 2.6 - 1 de octubre de 2008
o Python 2.7 - 3 de julio de 2010
 Python 3.0 - 3 de diciembre de 2008
o Python 3.1 - 27 de junio de 2009
o Python 3.2 - 20 de febrero de 2011
o Python 3.3 - 29 de septiembre de 2012
o Python 3.4 - 16 de marzo de 2014
o Python 3.5 - 8 de febrero de 2015
o Python 3.6 - 23 de diciembre de 2016
o Python 3.7 - 12 de junio de 2018
o Python 3.8 - 14 de octubre de 2019
o 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[editar]
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[editar]
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[editar]
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[editar]
Python 3.0 fue liberado el 3 de diciembre de 2008.24Las 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.25Similarmente, 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[editar]
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 representan "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.

También podría gustarte