27 de mayo de 2010

GW-Python??

No, no se confundan por el titulo. En realidad, no creo que python y gwbasic se parezcan o sean incluso comparables. Me explico:

Como muchos otros programadores, my primer contacto con la programación fue con el humilde interprete de basic. Y como muchos otros, una vez que aprendí lo básico, rápidamente me di de frente con las limitaciones del mismo: sin verdaderas sub-rutinas, todas las variables globales, GOTOs como la forma casi exclusiva de control de flujo, las variables se crean al vuelo y se les puede asignar cualquier cosa, etc.

En esas condiciones, resultaba casi imposible escribir algo mas grande y complejo que los programitas de muestra de los libros de Joyanes sin perder la razón en el intento.

Debido a la cultura que prevalece en la comunidad de python en la que hacen mucho énfasis en la legibilidad, fue para mi una sorpresa toparme con una base de código "legacy" que me hizo recordar aquellos lejanos dias de gw-basic. Increíblemente, algunos "programadores" hoy en dia siguen pensando que TODO el código del sistema ha de estar en un solo ENORME programa sin sub-rutinas (o casi), variables globales y creadas al vuelo sin ton ni son, etc. De hecho, en este codigo he encotrado ejemplos de todas y cada una de la peores practicas del libro y creo que incluso otras nuevas. Todo excepto los GOTOs endémicos de basic...

Pero acaso encontramos algo aun peor: encerrar en bloques try...except casi una linea de código si y otra no, con el fin de que el programa no "truene"... No, que va, solamente se limita a hacer pedasitos los datos del cliente, en silencio y bajo la mesa, arrojando ceros como resultado de forma semi-aleatoria en lugares que hacen parecer que los resultados son validos a simple vista (y milagrosamente, ¡A veces lo son!)

En conclusión, ya antes he hablado aqui de las bondades de los lenguajes como python o ruby. Por la enorme comunidad de desarrolladores que se ha formado a su alrededor y por las muestras de verdadero orgullo, ética y cultura que abundan en dichas comunidades y por el software increíble que ha salido de las mismas (resultado de código de muy alta calidad), me había hecho yo a la idea de un mundo de ensueño en donde no existe el viejo adagio de programación: "se puede escribir en fortran usando cualquier lenguaje".

Python es un lenguaje muy flexible y poderoso que nos permite hacer en cuestion de dias lo que en java o C# nos tomaría semanas. Sin embargo, no debemos olvidar las sabias palabras de Stan Lee, en boca de Peter Parker: "con un gran poder viene una gran responsabilidad"--claro, a menos que te guste trabajar con código que haga que te tome semanas lo que pudo bien llevarte unos días.

Saludos