martes, 17 de junio de 2008

Python

Dos son los eventos que han hecho que vuelva a sentir mi antigua fascinación por la informática: La transición definitiva a GNU/Linux y el descubrimiento de Python. Si el hecho de usar Linux me ha devuelto la pasión por explorar y manipular los entresijos del sistema operativo, Python ha hecho que la programación vuelva a ser un placer.

Aprendí mis primeros conceptos de programación con unos doce años, en la época del Spectrum y del Amstrad CPC, leyendo libros de Basic para niños. Después de aqueños primeros pasos he programado muchas líneas en C y C++, unas cuantas más en Pascal, Visual Basic, Matlab y PHP, y unas pocas en Java, Javascript, Bash, y diferentes ensambladores. Quizá no haya llegado a conocer suficientemente bien algunos de estos lenguajes como para poder emitir un juicio de valor, pero en mi opinión ninguno de los anteriores lenguajes puede proporcionar nada parecido a la experiencia de programar en Python.

Python fue creado en 1990 por Guido van Rossum, quien bautizó a su creación en honor al grupo cómico Monty Python. En los últimos años el lenguaje está teniendo cada vez más seguidores, habiendo sido declarado "lenguaje de mayor crecimiento del 2007" según el índice TIOBE. Actualmente, según este índice, Python sigue creciendo en popularidad, mientras los gigantes C, C++ y Java van cayendo mes tras mes.

Python hace fácil y divertido lo difícil y tedioso, algo que Guido refleja en su lema "Computer Programming for Everybody". Pero no menos importantes son otras de sus características: es libre y gratuito, es multiplataforma y cuenta con una enorme cantidad de módulos que simplifican cualquier tarea existente, desde la programación de aplicaciones gráficas a la robótica.

Python tiene algún detalle que puede resultar chocante al principio, como el hecho de que los tabuladores sean significativos, pero uno enseguida se acostumbra y se da cuenta de que la sintaxis de Python es mucho más natural y fácil de recordar que la de la mayoría de lenguajes. Si después de escribir unas cuantas líneas de Python aún no te has quedado completamente prendado, puede ser por alguna de las siguientes razones:

  • Eres un auténtico incondicional de Perl o de Ruby y no piensas cambiar. Punto.

  • Aún no has escrito suficiente código. Prueba a escribir algunas líneas más.

  • Quizá al fin y al cabo la programación no sea lo tuyo. Prueba con Visual Basic.

Vale, quizá sea demasiado categórico en mis afirmaciones. No soy en absoluto un hacker de la programación, mis funciones no suelen funcionar a la primera y tengo que pensarme dos veces qué límites aplicar a un bucle for antes de escribirlo. Después de todo no soy informático, así que quizá los programadores no deban tomarse muy en serio mis palabras. Pero a quien sí deberían tomar en serio es a un hacker tan legendario como Eric S. Raymond, quien habla muy sesudamente de sus impresiones acerca de Python en su artículo Why Python?

De verdad. Si te interesa la programación y aún no lo has probado, hazlo. Si usas GNU/Linux o Mac OS ya lo tendrás instalado. Sólo tienes que abrir un terminal y escribir "python". Si usas Windows tendrás que descargártelo de www.python.org.

3 comentarios:

JLR dijo...

Hola, me ha entrado la curiosidad sobre el Python con el articulo y le estoy echando un ojo,
Mi profesión, y durante mucho tiempo mi hobby, a sido el desarrollo de software, he programado con casi todo, Basic en el Spectrum, Pascal, Modula-2, asp, vbscript, visual basic, c#, c++, c, asembler para 68000, arms, intel, etc,
Lo que más me ha gustado es que oblige a tabular, así la gente no deja "guarrerías" en el código,
Veo que su gran virtud/defecto, como todos los lenguajes de alto nivel, es el alto nivel de abstracción de las instrucciones, por ejemplo, para comprobar si una palabra es palíndroma(simetrica, vaya, por ej: Ana) utiliza una expresión preconstruida: palabra == palabra[::-1], pues o te lo sabes, (lo cual te quita mucho trabajo de programar y te da mucho de aprender), o mejor lo programas al viejo estilo, y para eso nada mejor que el c, y además a pelo sin ++ ;O)... será que a perro viejo le duele soltar el hueso...

juanmb dijo...

Sí es cierto que, como en todo lenguaje, se pueden hacer construcciones algo retorcidas, como en el ejemplo que pones. Pero si te digo la verdad, llevo más de un año usando Python casi a diario y no sabía que se podía hacer eso, jeje. Quiero decir que no te asustes por esas construcciones complejas, siempre hay formas más fáciles de recordar para hacer lo mismo.

Yo usé mucho C y lo sigo usando, ya que es lo único que sirve para programar a bajo nivel (sin contar con el tedioso ensamblador). Como trabajo mucho con microcontroladores, no hay más remedio. Pero Python sirve hasta para eso. Puedes probar algoritmos rápidamente en Python, depurarlos y después pasarlos a C, por ejemplo.

Escribiré más sobre Python en el blog y pondré algunos ejemplos de código. Verás cómo acaba gustándote. Yo ya no puedo vivir sin él :)

Anónimo dijo...

Hola a para los que necesitan libros de python en Español, dejo el enlace a 5 libros de programacion de Python en Espanol
http://micro-bot.blogspot.com/2008/06/5-libros-de-python-en-espaol.html