Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática, en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba. El nombre del lenguaje proviene de la afición de su creador por los humoristas británicos Monty Python.
En
1991, van Rossum publicó el código de la versión 0.9.0
en alt.sources. 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”.El modelo de excepciones en Python
es parecido al de Modula-3, con la adición de una cláusula else
. 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.
Python
alcanzó la versión 1.0 en enero de 1994. Una característica de este lanzamiento
fueron las herramientas de la programación funcional:
lambda
,reduce
, filter
y map
. Van
Rossum explicó que “hace 12 años, Python adquirió lambda, reduce(), filter() y
map(), cortesía de un hacker de Lisp que las extrañaba y que envió
parches”. El donante fue Amrit Prem; no se hace ninguna mención específica
de cualquier herencia de Lisp en las notas de lanzamiento.
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.
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 la alfabetización básica en inglés y habilidades
matemáticas necesarias por muchos trabajadores. 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. En el año 2007, el proyecto CP4E está
inactivo, y mientras Python intenta ser fácil de aprender y no muy arcano en su
sintaxis y semántica, alcanzando a los no-programadores, no es una preocupación
activa.
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
pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó
CNRI; su programa de lanzamiento y el de la versión 2.0 tenían una
significativa cantidad de traslapo. 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 en Digital Creations.
Python
2.0 tomó una característica mayor del lenguaje de programación funcional Haskell:
listas por comprensión. 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
alfabéticas. Python 2.0 introdujo además un sistema de recolección de
basura capaz de recolectar referencias cíclicas.
Posterior
a este doble lanzamiento, y después que van Rossum dejó CNRI para trabajar con
desarrolladores de software comercial, quedó claro que la opción de usar Python
con software disponible bajo GNU GPL era muy deseable. La licencia
usada entonces, la Python License, incluía una cláusula estipulando que la
licencia estaba gobernada por el estado de Virginia, por lo que, bajo la
óptica de los abogados de Free Software Foundation (FSF), se hacía
incompatible con GPL. CNRI y FSF se relacionaron para cambiar la licencia de
software libre de Python para hacerla compatible con GPL. En el año 2001, van
Rossum fue premiado con FSF Award for the Advancement of Free Software.
Python
1.6.1 es esencialmente el mismo que Python 1.6, con unos pocos arreglos de bugs,
y con una nueva licencia compatible con GPL.
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, tiene como dueño 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.Incluido en este
lanzamiento fue una implementación del scoping más parecida a las reglas de static
scoping (del cual Scheme es el originador).
Una
innovación mayor 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 de objetos de Python puro y
consistente. También fueron agregados los generadores que fueron
inspirados por el lenguaje Icon.
Las
adiciones a la biblioteca estándar de Python y las decisiones sintácticas
fueron influenciadas fuertemente porJava en algunos casos: el
package
logging
, introducido en la
versión 2.3, está basado en log4j; el parser SAX, introducido en 2.0;
el package threading
, cuya
clase Thread expone un subconjunto de la interfaz de la clase
homónima en Java.