Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ir a la navegaci�nIr a la b�squeda
Logo de Python
Art�culo principal: Python
Python es uno de los lenguajes de programaci�n din�micos m�s populares que existen
entre los que se encuentran Perl, Tcl, PHP y Ruby. 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 24x7. 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.
La historia del lenguaje de programaci�n Python se remonta hacia finales de los 80s
y principio de los 90s1?, 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.
�ndice
1 Principales influencias de otros lenguajes
2 Cronolog�a de Python
3 Primera publicaci�n
4 Versi�n 1.0
4.1 BeOpen
5 Versi�n 2.0
6 Versi�n 3.0
6.1 Filosof�a
6.2 Cronolog�a y compatibilidad
6.3 Caracter�sticas
7 V�ase tambi�n
8 Referencias
9 Enlaces externos
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:
Las principales ideas de ABC que influyeron o se incluyeron en Python fueron seg�n
el propio Guido:5?
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
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() and 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.
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".
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.