Appendix D
Lecturas recomendadas
Y ahora, �hacia d�nde ir desde aqu�? Hay muchas
direcciones en las que seguir, ampliando sus conocimientos de Python
spec�ficamente y de inform�tica en general.
Los ejemplos en este libro han sido deliberadamente simples, por lo
que pueden no haber mostrado las capacidades m�s excitantes de
Python. A continuaci�n exponemos una muestra de las extensiones de
Python y sugerencias sobre sus usos.
- La programaci�n de GUIs (interfaces gr�ficas de usuario, {\sl graphic
user interface
en ingl�s)
permite que su programa utilice un entorno de ventanas para
interactuar con el usuario y mostrar gr�ficos.
El primer paquete que ha tenido Python para esto es Tkinter, basado en
los lenguajes interpretados Tcl y Tk de Jon Ousterhout. Tkinter est�
incluido en la distribuci�n de Python.
Otra plataforma popular es wxPython, que es esencialmente un
enchapado sobre wxWindows, un paquete de C++ que implementa ventanas
utilizando la interfaces nativas las plataformas Windows y Unix
(incluido Linux). Las ventanas y los controles con wxPython tienen una
apariencia m�s nativa que Tkinter y son un poco m�s sencillos de
programar.
Cualquier tipo de programaci�n de GUIs le llevar� a programaci�n
basada en eventos, donde es el usuario y no el programador quien
determina el flujo de la ejecuci�n. Este estilo de programaci�n
requiere de algo de tiempo para acostumbrarse, y a veces le forzar�
a replantearse toda la estructura del programa.
- La programaci�n web integra Python en la Internet. Por
ejemplo, puede construir programas de cliente web que abran y lean una
p�gina remota (casi) tan f�cilmente como si fuera un fichero en
disco. Tambi�n hay m�dulos de Python que le permiten acceder a
ficheros remotamente v�a ftp, y m�dulos que le permiten enviar
y recibir correos electr�nicos. Python tambi�n es ampliamente
utilizado en el lado del servidor de la programaci�n web para
manejar los datos de entrada de los formularios.
- Las bases de datos son un poco como super ficheros en donde los
datos est�n almacenados en esquemas predefinidos, y las relaciones
entre los datos le permiten acceder a ellos de varias maneras. Python
tiene varios m�dulos para permitir a los usuarios conectarse a
varios motores de bases de datos, tanto Open Source como comerciales.
- La programaci�n multi-procesos (multi-hilos) le permite
ejecutar varios procesos (hilos) de ejecuci�n dentro de un �nico
programa. Si ha tenido la experiencia de usar un navegador web para
desplazarse por una p�gina web mientras el navegador contin�a
cargando el resto de la misma, entonces tiene una idea de lo que los
hilos pueden hacer.
- Cuando la velocidad es m�s importante se pueden escribir
extensiones para Python en un lenguaje compilado como C o C++. Tales
extensiones forman la base de la mayor�a de m�dulos en la
librer�a de Python. El mecanismo de enlazar funciones y datos es un
poco complejo. SWIG (Simplified Wrapper and Interface Generator) es
una herramienta para hacer este proceso mucho m�s sencillo.
Libros y sitios web sobre Python
Aqu� tiene las recomendaciones de los autores sobre recursos para
Python en la web:
- La p�gina de inicio de Python en www.python.org es
el lugar para empezar su b�squeda de material sobre Python.
Encontrar� ayuda, documentaci�n, enlaces a otros libros y
listas de correo de SIGs (Special Interest Group) a las que se puede unir.
- El proyecto Open Book Project www.ibiblio.com/obp contiene
no s�lo este libro en l�nea sino tambi�n otros libros similares
para Java y C++ de Allen Downey. Adem�s est� Lessons in Electric
Circuits de Tony R. Kuphaldt, Getting down with ..., un
conjunto de tutoriales de varios temas sobre inform�tica, escritos y
editados por estudiantes de institulo, Python for Fun, un
conjuto de estudios de casos en Python de Chris Meyers, y The
Linux Cookbook de Michael Stultz, con 300 p�ginas de trucos y
t�cnicas.
- Finalmente si acude a Google y busca con la cadena "python
-snake -monty" obtendr� cerca de 750.000 resultados.
Y aqu� algunos libros que contienen m�s material sobre el
lenguaje Python:
- Core Python Programming de Wesley Chun es un libro
largo, m�s de 750 p�ginas. La primera parte del libro cubre las
caracter�sticas b�sicas del lenguaje Python. La segunda parte
proporciona una introducci�n paso a paso a temas m�s avanzados
incluyendo muchos de los mencionados anteriormente.
- Python Essential Reference de David M. Beazley es un libro
peque�o, pero contiene informaci�n sobre el lenguaje en s�
mismo y los m�dulos de la librer�a est�ndar. Tambi�n est�
muy bien indexado.
- Python Pocket Reference de Mark Lutz realmente cabe en el
bolsillo. Aunque no es tan extensivo como Python Essential
Reference es una referencia �til para los m�dulos y funciones
m�s comunmente usadas. Mark Lutz tambi�n es autor de Programming Python, uno de los primeros (y m�s largos) libros de
Python y no est� dirigido al programador principiante. Su siguiente
libro Learning Python es m�s peque�o y m�s accesible.
- Python Programming on Win32 de Mark Hammond y Andy
Robinson es un libro que "debe tener" cualquiera que que utilice
seriamente Python para desarrollar aplicaciones para Windows. Entre
otras cosas cubre la integraci�n de Python y COM, construye una
peque�a aplicaci�n con wxPython, e incluso utiliza Python para
escribir scripts para aplicaciones tales como Word y Excel.
Libros recomendados sobre inform�tica en general
Las siguientes sugerencias sobre lecturas adicionales incluyen muchos
de los libros favoritos de los autores. Estos tratan sobre buenas
pr�cticas de programaci�n e inform�tica en general.
- The Practice of Programming de Kernighan y Pike cubre no
s�lo el dise�o y dodificaci�n de algoritmos y estructuras de
datos, sino tambi�n depuraci�n, testeo y mejora de rendimiento de
los programas. Los ejemplos est�n principalmente en C++ y Java, sin
nada de Python.
- The Elements of Java Style editado por Al Vermeulen
es otro libro peque�o que discute algunos de los puntos m�s
sutiles de la buena programaci�n, tales como el buen uso de
las convenciones de nombres, comentarios e indentaci�n (un poco
irrelevante en Python). El libro tambi�n cubre la programaci�n
por contrato, usando aserciones para encontrar los errores probando
precondiciones y postcondiciones, y programaci�n correcta con hilos
y su sincronizaci�n.
- Programming Pearls de Jon Bentley es un libro cl�sico.
Consiste en estudios de caso que aparecieron originalmente en la
columna del autor en Communications of the ACM. Los estudios
tratan sobre toma y daca en programaci�n y por qu� suele ser mala
idea desarrollar con la primera idea de un programa. El libro es un
poco m�s antiguo que los anteriores (1986), por lo que los ejemplos
est�n en lenguajes m�s antiguos. Hay muchos problemas para
resolver, algunos con soluciones y otros con pistas. Este libro fue
muy popular y le sigui� un segundo volumen.
- The New Turing Omnibus de A.K Dewdney proporciona una
introducci�n amigable a 66 temas de inform�tica desde computaci�n
en parelelo hasta virus inform�ticos, desde TACs (tomograf�as
computerizadas) hasta algoritmos gen�ticos. Todos los temas son
cortos y entretenidos. Un libro anterior de Dewdney Aventuras
Inform�ticas es una colecci�n de su columna Juegos de ordenador
en Invertigaci�n y Ciencia. Ambos libros son ricas fuentes de ideas
para proyectos.
- Tortugas, Termitas y Atascos de Tr�fico de Mitchel Resnick
trata sobre el poder de la descentralizaci�n y de como pueden
obtenerse comportamientos complejos a partir de las actividades
simples de una multitud de agentes coordinados. Introduce el lenguaje
StarLogo, que permite al usuario escribir programas para agentes. La
ejecuci�n del programa demuestra comportamientos complejos agregados,
que suelen ser intuitivos. La mayor�a de los programas en el libro
fueron desarrollados por estudiantes de colegio e instituto. Programas
similares pueden escribirse en Python usando gr�ficos e hilos.
- G�del, Escher, Bach de Douglas Hofstadter.
Simplemente, si encuentra magia en la recursi�n tambi�n
la encontrar� en este libro superventas. Uno de los temas de
Hofstadter concierne a los "lazos extra�os" donde los patrones se
desenvuelven y ascienden hasta que se encuentran a s� mismos de
nuevo. Es una disputa de Hofstadter que tales "lazos extra�os" son
una parte esencial de lo que separa lo animado de lo no animado. �l
demuestra tales patrones en la m�sica de Bach, las ilustraciones de
Escher y el teorema de incompletitud de G�del.
" + str + "Close window