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.
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.
Principales influencias de otros lenguajes
[editar]
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 documento Recuperar las palabras de un documento
en ABC 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 if word not in
collection: collection:
INSERT word IN collection.add(word)
collection 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.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.412
[ ] [ ]
Cronología de Python
[editar]