Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Python 3
  3. Presentación de Python
Extrait - Python 3 Los fundamentos del lenguaje (4ª edición)
Extractos del libro
Python 3 Los fundamentos del lenguaje (4ª edición) Volver a la página de compra del libro

Presentación de Python

Filosofía

1. Python en pocas líneas

a. ¿De dónde proviene el nombre «Python»?

Una pitón (del género python) es una serpiente fácilmente reconocible (http://es.wikipedia.org/wiki/Python_(g%C3%A9nero)) que debe su nombre al monstruoso animal de Delfos (http://es.wikipedia.org/wiki/Pit%C3%B3n_(mitolog%C3%ADa)). Esta imagen, fácil de representar por el espíritu humano, ha servido como base para crear un lenguaje que se ha llamado, también, «Python» con un logotipo estilizado, pero que no tiene nada que ver con la elección del nombre para este lenguaje de programación.

Se trata, en realidad, de un homenaje a los célebres «Monty Python» -http://es.wikipedia.org/wiki/Monty_Python-, grupo de cómicos británicos que tras conocer el éxito con el Monty Python’s flying circus grabó una primera película, selección de sus sketches anteriores Se armó la gorda y que encadenaron luego con otras tres películas de referencia, como son Los caballeros de la mesa cuadrada, La vida de Brian y El sentido de la vida.

Para saber cómo los Monty Python seleccionaron su nombre, y en particular la palabra «Python», hay que volver al corazón de la leyenda, lo que sale del ámbito estricto de este libro (aunque nunca está mal poder hablar de televisión, de cine o incluso de dibujos animados en un libro sobre informática).

b. Presentación técnica

Python es un lenguaje de programación interpretado, multiparadigma, de alto nivel con un tipado dinámico fuerte, dotado de una gestión automática de los recursos, de un alto grado de introspección y de un sistema de gestión de excepciones.

Es libre y gratuito, funciona sobre todas las plataformas, apareció en 1990 y posee varias implementaciones, entre ellas CPython, Jython, IronPython y PyPy.

Su licencia es la «Python Software Foundation License». Es relativamente cercana a la licencia BSD y compatible con la licencia GPL.

Su sintaxis es minimalista, explícita, clara, sencilla y lo suficientemente cercana al lenguaje natural como para permitir que un algoritmo se comprenda tras su primera lectura, al menos por un lector que conozca el inglés.

Una de las ventajas de este lenguaje es que la elaboración de una reflexión...

Historia de Python

1. La génesis

Todos los lenguajes tienen un creador emblemático y originalmente tienen un destino específico, que está muy orientado a resolver un problema. Los lenguajes que tienen éxito son aquellos que han sido capaces de diversificarse y permiten responder de manera relevante y eficiente a una multiplicidad de campos de aplicación.

Python encaja exactamente en esta definición. A finales de 1980, Guido Van Rossum trabajaba en Los Países Bajos en CWI (Centrum voor Wiskunde en Informatica) en el equipo del sistema operativo Amoeba. El problema con el que se encontró fue que las llamadas del sistema a este sistema operativo son difíciles de interactuar con Bourne Shell, que era el punto de referencia de la época, utilizado como interfaz de usuario.

Fue en 1989 cuando creó, en su tiempo libre, la primera versión del lenguaje Python, llamada así en honor a los Monty Python de los que era fan. Python está inspirado en los lenguajes ABC (este último está inspirado en Algol y está diseñado para tener éxito en BASIC, Pascal y Awk, pero tiene restricciones que hacen necesaria la creación de una alternativa), Modula-3, que es una mejora de Pascal, integra conceptos interesantes, C que ya es una referencia y herramientas de Unix.

De esta manera, Python cubre un perímetro funcional limitado, pero responde bien al problema para el que fue originalmente diseñado.

Por lo tanto, fue adoptado rápidamente dentro del equipo de Amoeba y Guido van Rossum continuó su desarrollo durante su tiempo libre.

La primera versión hecha pública es la 0.9.0, que se publicó en un foro de Usenet en febrero de 1991.

2. Ampliación del perímetro funcional

Guido van Rossum continuó su trabajo dentro del CWI durante varios años y el lenguaje Python evolucionó en paralelo con las necesidades que va encontrando en su trabajo. La última versión lanzada fue la 1.2.

En 1995, continuó este trabajo en la CNRI (Corporation for National Research Initiatives), una organización sin fines lucrativos con sede en Reston, Virginia, con el objetivo de promover la tecnología de la información.

Esto aceleró aún más el desarrollo de Python y realmente estructuró un equipo en torno al lenguaje, en lugar...

Gobierno

1. Desarrollo

a. Ramas

Python dispone de una única rama activa: la 3, cuya última versión estable, en el momento de escribir este libro, es la 3.11

Desde el comienzo, la filosofía de Python acerca de la rama y su funcionamiento es bien claro: la compatibilidad por encima de todo. En el seno de una misma rama, un código escrito al principio de la existencia de la rama debería poder funcionar con todo lo que se agregue a continuación. Todo puede evolucionar, aunque siempre en direcciones que resulten válidas. De este modo, los desarrolladores deben asegurarse de que escriben código que será funcional hasta que la rama en curso desaparezca.

Aun así cuando un lenguaje evoluciona, algunos aspectos deben remplazarse de forma que mantener la compatibilidad puede suponer un problema. Algunas viejas prácticas pueden querer eliminarse o prohibirse.

A día de hoy, resulta necesario pasar hacia una nueva rama. Es la ocasión de revisar en profundidad todos los aspectos del lenguaje para proponer elementos adecuados, novedosos y sólidos.

Es, precisamente, lo que ocurría hace algunos años durante la migración hacia la rama 3. Esta última necesitó algunos ajustes importantes con las ramas 3.0 y 3.1 que hicieron que estas dos versiones no sean compatibles con las versiones 3.2 y superiores. La complejidad de la migración de Python 2 a Python 3 hizo que la norma se flexibilizara.

Existen varios mecanismos que permiten migrar con facilidad de una versión a otra. Por un lado, hay un mecanismo de devaluación que permite indicar con avisos los elementos del lenguaje que están llamados a desaparecer. Estos últimos permanecen durante un mínimo de dos versiones...

¿Qué contiene Python?

1. Una gramática y una sintaxis

El núcleo del lenguaje es su gramática. Python proporciona una gramática extremadamente original, con posibilidades muy amplias. Se define según la documentación oficial (http://docs.python.org/py3k/reference/grammar.html).

Siendo muy generalista, Python proporciona soporte para varios paradigmas. Todo es un objeto, aunque todo es modificable. El paradigma imperativo sigue utilizándose ampliamente; el paradigma funcional ocupa, a su vez, un lugar importante. Los operadores se pueden sobrecargar.

Existen varias instrucciones que se definen en el mismo documento (http://docs.python.org/py3k/reference/index.html).

Python permite escribir listas, diccionarios y generadores. Dispone de 33 palabras reservadas, lo cual es al mismo tiempo poco y suficiente. Cada palabra clave tiene un significado claro y preciso, y no existen dos palabras clave que se parezcan ni de lejos.

Su gramática y su sintaxis permiten, a su vez, una gran legibilidad y son muy innovadoras en cuanto a las posibilidades algorítmicas que ofrecen a los desarrolladores.

2. Varias implementaciones

Python es un lenguaje abstracto, una teoría. Dispone de varias implementaciones diferentes. La implementación de referencia es CPython.

Por otro lado, la mayoría de las veces, por abuso del lenguaje, cuando se dice que un texto está escrito en Python, lo que se escribe...

Fases de ejecución de un programa Python

1. Carga de la máquina virtual

Cuando se inicia un programa Python, la máquina virtual Python se arranca. Realiza la interfaz entre el programa Python y el sistema operativo.

Su arranque consume, obligatoriamente, cierto tiempo, así como recursos, aunque relativamente limitados.

2. Compilación

Cuando se inicia un programa Python, este último (representado por el módulo principal que es el archivo ejecutado) va a compilarse, así como el conjunto de módulos que utiliza (módulos que importa, y esto de manera recursiva).

Para evitar compilar de nuevo los módulos con cada uso del script, su versión compilada se escribe en un archivo .pyc y, con cada nueva ejecución del script, se verifica si los módulos no se han modificado, en cuyo caso se realiza una nueva compilación. Por el contrario, el propio módulo principal se compila cada vez, sistemáticamente, al vuelo, y no se guarda en ningún archivo.

El hecho de tener estos archivos .pyc permite ahorrar tiempo en el arranque. Contienen el bytecode, que es una versión técnica del código explotable por la máquina virtual, independiente de la plataforma.

Python proporciona módulos que permiten gestionar su propia compilación y personalizar este proceso. Existen habitualmente dos opciones, -O y -OO, que pueden pasarse como parámetro...