
- Paradigma: Multiparadigma: orientado a objetos, imperativo, funcional
- Apareció en:1991
- Diseñado por: Guido van Rossum
- Última versión: 3.1.1 (17 de agosto de 2009)
- Tipo de dato: Fuertemente tipado, dinámico
- Implementaciones: CPython, Jython, IronPython, PyPy
- Dialectos: Stackless Python, RPython
- Influido por: ABC, Tcl, Perl, Modula-3, Smalltalk, ALGOL 68, C, Haskell, Icon, Lisp, Java
- Ha influido a: Ruby, Boo, Groovy, Cobra, D
- Sistema operativo: Multiplataforma
- Licencia de software: Python Software Foundation License
- Web: http://www.python.org/
Queremos presentar un lenguaje de programación de propósito general, cuya expansión y popularidad es relativamente reciente. Se trata de Python, una apuesta por la simplicidad, versatilidad y rapidez de desarrollo. A continuación veremos unas notas imprescindibles del lenguaje, extractadas básicamente de la página de inicio del lenguaje que se puede ver en http://www.python.org/ Python es un lenguaje de scripting independiente de plataforma y orientado a objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad.
En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:
- La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.
- La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a 5 líneas de código menos que su equivalente en Java o C.
- La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac, Amiga y otros.
- Además, Python es gratuito, incluso para propósitos empresariales.
De dónde viene Python
El creador del lenguaje es un europeo llamado Guido Van Rossum. Hace ya más de una década que diseño Python, ayudado y motivado por su experiencia en la creación de otro lenguaje llamado ABC. El objetivo de Guido era cubrir la necesidad de un lenguaje orientado a objetos de sencillo uso que sirviese para tratar diversas tareas dentro de la programación que habitualmente se hacía en Unix usando C. El desarrollo de Python duró varios años, durante los que trabajó en diversas compañías de Estados Unidos. En el 2000 ya disponía de un producto bastante completo y un equipo de desarrollo con el que se había asociado incluso en proyectos empresariales. Actualmente trabaja en Zope, una plataforma de gestión de contenidos y servidor de aplicaciones para el web, por supuesto, programada por completo en Python.
Ventajas
Desarrollo más rápido : Puedes escribir un programa, salvarlo y ejecutarlo. En un lenguaje compilado tienes que pasar por los pasos de compilar y ligar el software, lo cual puede ser un proceso lento.
Multiplataforma : El mismo código funciona en cualquier arquitectura, la única condición es que disponga del intérprete del lenguaje. No es necesario compilar el código una vez para cada arquitectura.
Inconvenientes
Lentitud : Los programas interpretados son más lentos que los compilados. Sin embargo los programas interpretados suelen ser cortos, en los que la diferencia es inapreciable.
Propósito general
Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas.
Multiplataforma
Hay versiones disponibles de Python en muchos sistemas informáticos distintos. Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el lenguaje siempre y cuando exista un intérprete programado para él.
Interpretado
Quiere decir que no se debe compilar el código antes de su ejecución. En realidad sí que se realiza una compilación, pero esta se realiza de manera transparente para el programador. En ciertos casos, cuando se ejecuta por primera vez un código, se producen unos bytecodes que se guardan en el sistema y que sirven para acelerar la compilación implícita que realiza el intérprete cada vez que se ejecuta el mismo código.
Interactivo
Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias. Cada sentencia se ejecuta y produce un resultado visible, que puede ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de porciones de código rápidamente.
Orientado a Objetos
La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear programas con componentes reutilizables.
Funciones y librerías
Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que podemos importar en los programas para tratar temas específicos como la programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip.
Sintaxis clara
Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación identada (con márgenes) de obligado cumplimiento. En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras clave begin y end. Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas notaciones y que los programas de cualquier persona tengan un aspecto muy similar.
Aplicaciones (conocidas) estan hechas en Python
Las siguientes aplicaciones se pueden ver/probar/evaluar para conocer el lenguaje y ver su capacidad/rendimiento:
· BitTorrent (original): programa para compartir archivos p2p (interfaz wx)
· ClamWin: el antivirus libre, frontend de clamav (interfaz wx)
· OpenErp (ex TinyErp): completo sistema de gestión empresarial en tres capas (interfaz gtk)
· Meld: visor de diferencias (interfaz gtk)
· Trac: sistema de gestión de proyectos (interfaz web)
En el ambito local:
· Sistema Fierro: sistema de gestión para librerias y editoriales (interfaz wx)
Nota: la lista no pretende ser completa, solo se presentan algunas de las aplicaciones más conocidas, relevantes y/o utilizadas por gran número de personas.
Sitios Web (conocidos) que estén hechos en Python
· YouTube (http://youtube.com/) está programado en Python. Es actualmente el segundo sitio de búsqueda en Internet luego de google.com.
· Reddit (http://reddit.com/) está programado en Python.
· FriendFeed (http://friendfeed.com/) (adquirido por Facebook en Agosto 2009) está programado en Python.
· La NASA usa Python en el frontend de su plataforma de cloud computing NEBULA.
Conclusión