jueves, 28 de enero de 2010

Hablemos un poco de Python

Python es un lenguaje de programación de alto nivel, o de muy alto nivel. Es software libre, puedes escribir o realizar cualquier trabajo con él sin pagar licencias ni nada por el estilo. Es multiplataforma, es decir, lo que hagas te valdrá para sistemas Linux, Windows, Mac, etc. Es multiparadigma, esto es, se puede utilizar programación orientada a objetos, programación imperativa e incluso funcional. Y lo mejor de todo es que se pueden mezclar los tipos de programación. Su sintaxis es muy sencilla. Las estructuras de datos que se utilizan son de muy alto nivel, como diccionarios, listas ó tuplas.

En Python todo es un objeto, por tanto todos los elementos en Python tienen métodos, y heredan de la clase correspondiente. Esto da mucho juego, ya que nos ahorra código y tiempo.

Python es muy recomendable para empezar en el mundo de la programación, para aprender a programar. Sin embargo también es muy buena herramienta para desarrollo web y para creación de aplicaciones de escritorio. Con el paquete básico de Python se instala un framework de desarrollo gráfico, llamado Tkinter, para crear interfaces gráficas. No es de los mejores, pero tenerlo lo tiene. Hay varios, como QT, PyGTK ó wxPython, que no vienen con Python y que hay que instalarlo por separado.

Yo recomiendo wxPython para crear interfaces gráficos, por varias razones. La primera de ellas es que es muy fácil crear aplicaciones gráficas con el framework wxPython. En segundo lugar, es multiplataforma, es decir, funciona en un Linux ó en un Windows sin hacer cambios. Bueno, esto es lógico si estamos comentando que Python también lo es. Lo bueno reside en que wxPython hace que los objetos que se muestran sean nativos de la plataforma, esto es, que cuando se dibuja un frame (una ventana) en Windows, tenga la forma y las características de Windows, y cuando estamos en Linux, su apariencia sea la de dicha plataforma. En este caso concreto Tkinter tiene una apariencia "marciana", tanto en Linux como en Windows. Una tercera razón para usar wxPython es la disponibilidad de los últimos y mas avanzados widgets (objetos gráficos), tal como grids, combos con gráficos, MDI's avanzados, y un largo etcétera. Además, wxPython dispone de mas de 50 ejemplos de uso y utilización de estos widgets. Un cuarto apartado sería la rapidez de este framework a la hora de crear widgets. Cosas negativas de wxPython hay varias. En primer lugar wxPython proviene de wxWidgets, un proyecto para hacer interfaces grácias en C++, y es por ello que como viene de este lenguaje, hay ciertos aspectos que lo hacen poco pitónico. También cabe señalar que wxPython no viene "de serie" con las distribuciones Python, por lo que primero habría que descargarlo de su página web (http://www.wxpython.org/). Hay sin duda, muchas mas cosas negativas, pero ahora no se me ocurren ninguna.

Como ha dicho Guido Van Rossum (el creador de Python), wxPython no va "de serie" en Python porque Tkinter estaba antes.

Para trabajar con Python solo es necesario descargar el software desde su página web (http://www.python.org/). Python incluye su propio editor, llamado IDLE, para empezar a escribir programas desde el primer momento, además de abundante información sobre los módulos instalados en formato html. Evidentemente incluye el compilador Python.

Aunque IDLE es un GUI para escribir aplicaciones, existen otros entornos de trabajo. Algunos son de pago, como Komodo. Sin embargo yo prefiero lo gratuito, así que aquí hay varias opciones. Si estás en plataforma Linux, lo tienes todo a tu favor para elegir de lo mejor. Kdevelop es una buena opción. Si estás en Windows, como yo ahora mismo, he descubierto una plataforma de desarrollo, gratuita, que aunque está en fase beta, parece que pinta bien. Para la gente que viene del mundo Java le sonará. Es NetBeans para Python. Estamos hablando de un IDE bastante bueno, serio, y que soporta Python, con las características deseadas de completitud de código mientras escribimos, depurador, y un largo etcétera. Más información en http://wiki.netbeans.org/Python.

Manuales para empezar a programar en Python hay muchos, y de todo lo que he podido evaluar en Internet y en libros que he adquirido me quedo con los siguientes:

- Python para todos: Manual en español para empezar a saber qué es Python y comenzar a programar desde el primer momento. Esencial para iniciarse. Se puede encontrar en http://mundogeek.net/.

- Dive into Python (Inmersión en Python): Manual esencial de Python. Muy bueno. Está en inglés, pero he visto en Internet que lo han traducido en español una de sus versiones. Aquí se tocan temas como el procesamiento de documentos XML, redes y temas muy interesantes para usar con Python. Fundamental.

- wxPython in Action: Manual de uso del framework wxPython para crear aplicaciones gráficas. Está en inglés, pero se entiende (si lo entiendo yo, lo puede entender cualquiera!!!). Para entender wxPython este manual es imprescindible.

Estos manuales se pueden encontrar en Internet, con nuestro amigo Google, en foros y en blogs especializados en Python y demás cosas de software libre.

Si por el contrario lo que te gusta es el papel de toda la vida, o sea libros, te recomiendo dos lecturas:

- Python Crear - Modificar - Reutilizar: Jim Knowlton. Editorial Anaya. Este libro, de la serie "De programadores, para Programadores" tiene una serie de ejemplos, todos mega comentados de aplicaciones reales escritas en Python. Excelente para entender sin saber mucho. Es un libro corto, pero intenso. No es necesario saber Python. En español. Muy bueno.

- Python Guía de referencia: Alex Martelli. Editorial Analla - O'Reilly. Este libro es un tochazo, bastante gordo, en donde se cuenta Python a fondo. Si no te quieres agobiar, no te lo compres a lo primero. Sin embargo, aquí te cuenta el tema de clases y métodos predefinidos en objetos bastante bien. Intenta abarcar todos los temas, sin especificar o meterse a fondo en ninguno. Lo mejor de todo, que está en español. Bueno.

Sin duda hay muchos manuales mejores que estos que acabo de presentar, pero por aquí se puede empezar bastante bien.

1 comentario:

  1. Hola estoy buscando el Libro wxPyhon in Action traducido al español pero no lo consigo ... saben donde lo pueo conseguir?

    ResponderEliminar