Python es es un lenguaje interpretado, interactivo y orientado a objetos. As铆 es como describen a Python en su web oficial pero Python es algo m谩s que eso: Python es:
Otras caracter铆sticas de Python son:
Aqu铆 ten茅is una lista de organizaciones y empresas que usan Python (Yahoo, Google, NASA, ILM). Es usado mayoritariamente como lenguaje de scripting aunque, por ejemplo, el instalador de Red Hat est谩 hecho con Python.
Tambi茅n desde aqu铆 pod茅is descargar un script Python hecho por la gente de Google para su herramienta Google Sitemaps.
Para terminar un ejemplo de lo que se puede hacer con Python. Una aplicaci贸n P2P cliente/servidor en tan s贸lo 15 l铆neas de c贸digo. Dejo para otro post explicaros c贸mo est谩 hecha porque a priori es complejo entender c贸mo est谩 hecha para los que no conozcan Python.
Si quer茅is saber por qu茅 bautizaron al lenguaje como Python pod茅is consultar este art铆culo que escrib铆 hace tiempo.
Python es muy utilizado como un lenguaje para crear aplicaciones de consola o scripts pero con Python se puede hacer mucho m谩s, por ejemplo, desarrollar aplicaciones visuales complejas.
驴C贸mo se hace esto? De varias formas鈥 Primero os listo las bibliotecas gr谩ficas que se pueden utilizar con Python:
Como podemos ver en Python podemos utilizar multitud de bibliotecas gr谩ficas, ya es elecci贸n de cada uno elegir las que m谩s le guste. Ahora os preguntar茅is 驴Y con qu茅 GUI-IDE podemos dise帽ar los interfaces?
Si quer茅is trabajar con pyqt pod茅is utilizar el qt designer. Los ficheros ui generados por el qt designer pueden ser convertidos a ficheros .py utilizando pyuic que va incluido en las pyqt-tools. Una vez generados los interfaces s贸lo os falta conectar los botones y eventos con vuestras funciones.
Pod茅is utilizar Glade, a diferencia de las pyqt los ficheros generados por glade (.glade) no se convierten a ficheros python (.py) sino que se utiliza libglade. Al igual que en qt el resto es simplemente conectar botones y eventos con funciones.
Tenemos el excelente Boa Constructor que es una maravilla, porque, por ejemplo, para conectar botones o eventos con funciones lo puedes hacer desde el propio ide sin necesidad de teclar c贸digo. Es lo m谩s parecido que puedes encontrar a Delphi o Visual Basic.
Otra alternativa tambi茅n muy buena es la combinaci贸n WxGlade + SPE. WxGlade es un dise帽ador de interfaces al estilo de Glade y SPE es un ide para python que se puede integrar con WxGlade para el desarrollo GUI.
Por 煤ltimo, tenemos PythonCard que nos permite desarrollar aplicaciones sencillas en poco tiempo.
Desconozco si existe alguna herramienta para generar interfaces.
Si quer茅is realizar programas multiplataforma os recomiendo utilizar WxWindows con Boa Constructor. Es lo m谩s pr谩ctico y r谩pido. WxGlade con SPE tambi茅n es otra opci贸n bastante aceptable. Aqu铆 ten茅is un ejemplo de una aplicaci贸n desarrollada con Boa.
Si quer茅is realizar programas destinados s贸lo a Linux, os recomiendo PyGTK con Glade y libglade, adem谩s pod茅is utilizar las gnome-python que es una interfaz de la gnome-libs (adem谩s incluyen las pygtk).
Para saber m谩s sobre el desarrollo GUI pod茅is consultar el Wiki de Python: GUI Programming.
Programaci贸n de aplicaciones web en Python
Otra de las gran virtudes de Python es la cantidad de alternativas existentes para el desarrollo de aplicaciones web, existen servidores de aplicaciones complejos y ligeros, plantillas para el desarrollo web y la posibilidad de usar python embebido en un documento html como si fuese PHP o ASP.
Zope es un servidor de aplicaciones orientado al desarrollo de CMS (content management systems), portales, intranets y aplicaciones web de ese estilo. Zope est谩 compuesto de m贸dulos u objetos y existen multitud de ellos disponibles gratuitamente o de pago que permiten ampliar la funcionalidad del mismo. Adem谩s incluye su propio servidor web, ftp, xml-rpc aunque puede ser utilizado con Apache como servidor web.
Zope permite la creaci贸n de portales en poco tiempo, incluye un buscador, gestor de noticias, gestor de usuarios, etc.. se puede a帽adir funcionalidad a Zope utilizando Python, lenguaje en el que est谩 creado el propio Zope.
Es un conjunto de componentes orientados al desarrollo web, Webware incluye:
- Servidor de aplicaciones
- Servlets
- Middle Kit: Similar a los Java Beans
- Python Server Pages, similares a PHP o ASP
- Gesti贸n de usuarios y autenticaci贸n.
- Un wrapper para los cgi. (Un CGI que hace de conector para scripts CGI en python que ya tengamos hechos)
Webware es similar a Tomcat sin la complejidad del lenguaje Java. Webware se integra muy bien con las Cheetah un sistema de plantillas y generaci贸n de c贸digo para python como las Velocity de Java o Smarty de PHP pero con bastante m谩s funcionalidad.
Las mod_python psp (Python Server Pages) sirven para insertar c贸digo en python entre lenguaje HTML de forma similar a PHP o ASP para crear p谩ginas din谩micas. Para ello hace falta un servidor web Apache con el mod_python instalado, configurar una serie de directivas en el fichero de configuraci贸n de Apache y ya podremos comenzar a mezclar c贸digo HTML con Python. Para comenzar con ellas podemos leer este art铆culo de onlamp donde se nos habla de como utilizar sesiones, depurar etc鈥
Como podemos ver tenemos varias alternativas a la hora de desarrollar un sitio web: con Zope podemos generar en poco tiempo portales orientados a la gesti贸n de contenidos e informaci贸n, con Webware podemos crear aplicaciones web complejas al estilo de las que se pueden hacer utilizando j2ee y mediante las PSP podemos crear aplicaciones web m谩s sencillas tambi茅n en poco tiempo.