Next Up Previous Hi Index

Prólogo

Por David Beazley

Como educador, investigador, y autor de libros, estoy encantado de ver la finalización de este libro. Python es un lenguaje de programación divertido y extremadamente fácil de usar que en los últimos años se ha hecho muy popular. Desarrollado hace diez años por Guido van Rossum, su sintaxis simple y la sensación general se deriva en gran parte del ABC, un lenguaje desarrollado en los 1980s para la enseñanza. Sin embargo, Python también se creó para resolver problemas reales y presenta una variedad amplia de características de lenguajes de programación como C++, Java, Modula-3 y Scheme. Debido a esto, una de las características notables de Python es su atractivo para los desarrolladores profesionales de progamación, científicos, investigadores, artistas, y educadores.

A pesar del atractivo de Python para muchas comunidades diferentes, puede que aún se pregunte "¿por qué Python?" o "¿por qué enseñar programación con Python?" No es tarea fácil responder a estas preguntas, en especial cuando la opinión popular está del lado de alternativas más masoquistas como C++ y Java. Sin embargo, pienso que la respuesta más directa es que la progrmación en Python es simplemente más divertida y más productiva.

Cuando imparto cursos de informática, quiero cubrir conceptos importantes, hacer el material interesante y enganchar a los estudiantes. Desgraciadamente, hay una tendencia en los cursos de introducción a la programación a prestar demasiada atención a la abstracción matemática que hace que los estudiantes se frustren con problemas farragosos relacionados con detalles nimios de la sintaxis, compilación, y la aplicación de reglas aparentemente arcanas. Aunque tal abstración y formalismo son importantes para ingenieros profesionales de la programación y estudiantes que planean continuar sus estudios de informática, decidirse por este enfoque en un curso introductorio sólo tiene éxito en hacer aburrida la informática. Cuando imparto un curso, no quiero tener un aula de estudiantes sin inspiración. Quisiera verlos intentando resolver problemas interesantes, explorando ideas diferentes, probando enfoques no convencionales, rompiendo las reglas, y aprendiendo de sus errores. Al hacerlo, no quiero perder la mitad del semestre tratando de sortear problemas con una sintaxis abstrusa, mensajes de error del compilador incomprensibles, o los varios cientos de maneras que un programa puede generar un error de proteción general.

Una de las razones por las que me gusta Python es por que proporciona un equilibrio muy bueno entre lo práctico y lo conceptual. Puesto que Python es un lenguaje interpretado, los principiantes pueden tomar el lenguaje y empezar a hacer cosas interesantes casi inmediato, sin perderse el los problemas de compilación y enlazado. Además, Python viene con una gran biblioteca de módulos que se pueden usar para hacer toda clase de tareas que abarcan desde programación para web a gráficos. Este enfoque práctico es una buena manera de enganchar a estudiantes y permite que completen proyectos significativos. Sin embargo, Python también puede servir como una base excelente para intruducir conceptos importantes de informática. Puesto que Python soporta completamente procedimientos y clases, los estudiantes pueden introducirse gradualmente en temas como abstraccián procedural, estructuras de datos, y programación orientada objetos, que son aplicables a cursos posteriores en Java o C++. Python incluso toma prestada cierta cantidad de características de lenguajes de programación funcionales y puede usarse para intruducir conceptos que pudieran ser cubiertos en mas detalle en cursos de Scheme o Lisp.

Leendo, el prefacio de Jeffrey, me sorprenden sus comentarios sobre que Python le permite ver un "más alto nivel de éxito y un bajo nivel de frustración" y que puede "avanzar rápido con mejores resultados". Aunque estos comentarios se refieren a sus cursos introductorios, a veces uso Python por estas mismas razones en cursos de informática avanzada en la Universidad de Chicago. En estos cursos me enfrento constantemente con la desalentadora tarea de cubrir un montón de material difícil en un agotador trimestre de nueve semanas. Aunque es ciertamente posible para mí infligir mucho dolor y sufrimiento usando un lenguaje como C++, he visto a menudo que ese estilo es ineficaz, especialmente cuando el curso se trata de un asunto sin relación apenas con la "programación". Encuentro que usar Python me permite dedicarme más al asunto en cuestión mientras permito a los estudiantes completar proyectos útiles.

Aunque Python es todavía un lenguaje joven y en desarollo, creo que tiene un futuro brillante en la educación. Este libro es un paso importante en esa dirección.

David Beazley
Universidad de Chicago
Autor de Python Essential Reference


Next Up Previous Hi Index