![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Y ahora, \textquestiondown hacia d\'onde ir desde aqu\'i? Hay muchas direcciones en las que seguir, ampliando sus conocimientos de Python specíficamente y de inform\'atica en general.
Los ejemplos en este libro han sido deliberadamente simples, por lo que pueden no haber mostrado las capacidades m\'as excitantes de Python. A continuación exponemos una muestra de las extensiones de Python y sugerencias sobre sus usos.
Otra plataforma popular es wxPython, que es esencialmente un {\Large venner 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 IGUs le llevará a programación basada en eventos, donde es el usuario y no el programador quien determina el flujo de la execución. Este estilo de programación requiere de algo de tiempo para acostumbrarse, y a veces le forzar\'a a replantearse toda la estructura del programa. \item La programación web integra el Python en la Internet. Por ejemplo, puede construir programas de cliente web que abran y lean una p\'agina remota (casi) tan f\'acilmente como si fuera un fichero en disco. También hay m\'odulos de Python que le permiten acceder a ficheros remotamente v\'ia ftl, y m\'odulos que le permiten enviar y recibir correos electr\'onicos. Python también es ampliamente utilizado en el lado del servidor de la programaci\'on web para manejar los datos de entrada de los formularios. \item Las bases de datos son un poco como super ficheros en donde los datos est\'an almacenados en esquemas predefinidos, y las relaciones entre los datos le permiten acceder a ellos de varias maneras. Python tiene varios m\'odulos para permitir a los usuarios conectarse a varios motores de bases de datos, tanto Open Source como comerciales. \item La programaci\'on multi-procesos (multi-hilos) le permite ejecutar varios procesos (hilos) de ejecuci\'on dentro de un \'unico programa. Si ha tenido la experiencia de usar un navegador web para desplazarse por una p\'agina web mientras el navegador contin\'ua cargando el resto de la misma, entonces tiene una idea de lo que los hilos pueden hacer. \item Cuando la velocidad es m\'as importante se pueden escribir extensiones para Python en un lenguaje compilado como C o C++. Tales extensiones forman la base de la mayor\'ia de m\'odulos en la librer\'ia de Python. El mecanismo de enlacar funciones y datos es un poco complejo. SWIG (Simplified Wrapper and Interface Generator) es una herramienta para hacer este proceso mucho m\'as sencillo. \end{itemize} \section{Libros y sitios web sobre Python} Aqu\'{\i} tiene las recomendaciones de los autores sobre recursos para Python en la web: \begin{itemize} \item La p\'agina de inicio de Python en {\tt www.python.org} es el lugar para empezar su b\'usqueda de material sobre Python. Encontrar\'a ayuda, documentaci\'on, enlaces a otros libros y SIGs listas de correo de (Special Interest Group) a las que se puede unir. \item El proyecto Open Book Project {\tt www.ibiblio.com/obp} contiene no s\'olo este libro en l\'inea sino tambi\'en otros libros similares para Java y C++ de Allen Downey. Adem\'as hay {\em Lessons in Electric Circuits} de Tony R. Kuphaldt, {\em Getting down with ...}, un conjunto de tutoriales de varios temas sobre inform\'atica, escritos y editados por estudiantes de institulo, {\em Python for Fun}, un conjuto de estudios de casos en Python de Chris Meyers, y {\em The Linux Cookbook} de Michael Stultz, con 300 p\'aginas de trucos y t\'ecnicas. \item Finalmente si acude a Google y busca con la cadena ``python -snake -monty'' obtendr\'a cerca de 750.000 resultados. \end{itemize} \adjustpage{-1} \pagebreak Y aqu\'{\i} algunos libros que contienen m\'as material sobre el lenguaje Python: \begin{itemize} \item {\em Core Python Programming} de Wesley Chun es un libro largo, sobre 750 p\'aginas. La primera parte del libro cubre las caracter\'{\i}sticas b\'asicas del lenguaje Python. La segunda parte proporciona una introducci\'on paso a paso a temas m\'as avanzados incluyendo muchos de los mencionados anteriormente. \item {\em Python Essential Reference} de David M. Beazley es un libro peque~no, pero contiene informaci\'on sobre el lenguaje en s\'{\i} mismo y los m\'odulos de la librer\'ia est\'andar. Tambi\'en est\'a muy bien indexado. \item {\em Python Pocket Reference} de Mark Lutz realmente cabe en el bolsillo. Aunque no es tan extensivo como {\em Python Essential Reference} es una referencia h\'abil para los m\'odulos y funciones m\'as comunmente usadas. Mark Lutz tambi\'en es autor de {\em Programming Python}, uno de los primeros (y m\'as largos) libros de Python y no est\'a dirigido al programador principiante. Su siguiente libro {\em Learning Python} es m\'as peque~no y m\'as accesible. \item {\em 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\'on de Python y COM, construye una peque~na aplicaci\'on con wxPython, e incluso utiliza Python para escribir scripts para aplicaciones tales como Word y Excel. \end{itemize} \section{Libros recomendados sobre inform\'atica en general} Las siguientes sugerencias sobre lecturas adicionales incluyen muchos de los libros favoritos de los autores. Estos tratan sobre buenas pr\'acticas de programaci\'on e inform\'atica en general. \begin{itemize} \item {\em The Practice of Programming} de Kernighan y Pike cubre no s\'olo el dise~no y dodificaci\'on de algoritmos y estructuras de datos, sino tambi\'en depuraci\'on, testeo y mejora de rendimiento de los programas. Los ejemplos est\'an principalmente en C++ y Java, sin nada de Python. \item {\em The Elements of Java Style} editado por Al Vermeulen es otro libro peque~no que discute algunos de los puntos m\'as sutiles de la buena programaci\'on, tales como el buen uso de las convenciones de nombres, comentarios e indentaci\'on (un poco irrelevante en Python). El libro tambi\'en cubre la programaci\'on por contrato, usando asercciones para coger los errores probando precondiciones y postcondiciones, y programaci\'on correcta con hilos y su sincronizaci\'on. \item {\em Programming Pearls} de Jon Bentley es un libro cl\'asico. Consiste en estudios de caso que aparecieron originalmente en la columna del autor en {\em Communications of the ACM}. Los estudios tratan sobre toma y daca en programaci\'on y por qu\'e suele ser mala idea desarrollar con la primera idea de un programa. El libro es un poco m\'as antiguo que los anteriores (1986), por lo que los ejemplos est\'an en lenguajes m\'as antiguos. Hay muchos problemas para resolver, algunos son soluciones y otros con pistas. Este libro fue muy popular y lo sigui\'o un segundo volumen. \item {\em The New Turing Omnibus} de A.K Dewdney proporciona una introducci\'on gentil a 66 temas de inform\'atica desde computaci\'on en parelelo hasta viruses inform\'aticos, desde CAT scans (tomografías computerizadas) hasta algoritmos gen\'eticos. Todos los temas son cortos y entretenidos. Un libro anterior de Dewdney {\em The Armchair Universe} es una colecci\'on de su columna {\em Computer Recreations} en {\em Scientific American}. Ambos libros son ricas fuentes de ideas para proyectos. \item {\em Turtles, Termites and Traffic Jams} de Mitchel Resnick trata sobre el poder de la descentralizaci\'on 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\'aficos e hilos. \item {\em G\"{o}del, Escher and Bach} de Douglas Hofstadter. P\'ongalo simplemente, si encuentra magia en la recursi\'on tambi\'en la encontrar\'a en este libro superventas. Uno de los temas de Hofstadter concierne a ``lazos extra~nos'' donde los patrones se desenvuelven y ascienden hasta que se encuentran a s\'{\i} mismos de nuevo. Es una disputa de Hofstadter que tales ``lazos extra~nos'' son una parte esencial de lo que separa lo animado de lo no animado. \'El demuestra tales patrones en la m\'usica de Bach, las ilustraciones de Escher y el teorema de incompletitud de G\"{o}del. \end{itemize}
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |