Todavía recuerdo cuando mi mamá me llevó a aquel instituto de computación, creo que tenía 8 o 9 años; el aula tenía unas diez o quince computadoras, grises, Commodore 64. Era mi primer curso de computación, iba a aprender Logo.
Con el tiempo vino el Basic, QuickBasic (compilado), VisualBasic, C, Prolog, Pascal, C++, y finalmente Java. Java, con la promesa incumplida de “programar una vez, y usar el programa en cualquier plataforma”. Un sólo programa útil llegué a implementar en Java (Java Builder) – nunca funcionó bien, fuera de la plataforma original (windows), por un motivo u otro (además de tener un look horrible en todas las plataformas); esto sin mencionar que Java tiene una complejidad similar a la de C. La historia de Java me hizo descreer fundamentalmente de ese tipo de promesas – y de muchos otros lenguajes de programación más modernos que prometían lo mismo, pero que al final resultaban atados por uno u otro motivo (generalmente: debido a su caracter propietario) a una dada plataforma.
Cuando Linux apareció, hacía tiempo que mis habilidades de programación se habían oxidado. Y cuando necesité alguna que otra pequeña aplicación para administrar mis fotos o mi colección de música, mi única herramienta útil fueron rudimentarios scripts de bash (la línea de comandos de linux).
Inevitablemente, hacía ya varios años que venía oyendo acerca de Python – muchos de los proyectos de software libre más interesantes lo usan (Elisa, Blender, GRAMPS, por ejemplo). Con el tiempo iba a aprender que hasta Google lo usa en su homónimo buscador y web-email, sorprendentemente. Sin embargo el mensaje que había recibido hasta el momento era demasiado similar al de Java – motivo suficiente para ignorarlo.
Hasta que me animé a intentar desoxidarme un poco, me puse a investigar qué sería más interesante aprender y finalmente me compré un libro de Python con una gift card que me regalaron y el círculo se completó. Después de todo, todo en Python es opensource, el desarrollo del lenguaje en sí es un proceso completamente abierto similar al que se usa en internet (IETF/RFCs) … no puede ser una mala elección: tengo que aprender Python. Todo, con el objeto de escribir unos simples scripts para ayudarme a organizar mis fotos y mi música. Y quizás después modificar Elisa para que funcione bien con mi maquina híbrida (desktop y media-center a la vez).
Como Logo y el primer Basic, Python es un lenguaje interpretado que no require compilación. Allí se cierra el círculo – pero también hasta ahí llegan las similitudes. Todavía no llegué al primer tercio del libro pero ya soy un converso. Un lenguaje que permite hacer simplemente esto:
a = ['spam', 'eggs', 100, 1234.23, 3 + 4j]
o esto,
a = ['spam', 'eggs', [100, 'bacon', 'hello'], 1234]
o esto,
>>> (1+2j)/(1+1j) (1.5+0.5j
(sí, los números complejos son un tipo de dato nativo en Python!)… o que permite calcular la serie de fibonacci con estas elegantes líneas de código (sin obscuras recursiones de ningún tipo),
def fib(n):
a, b = 0, 1
for i in range(n):
a, b = b, a + b
return a
…es necesariamente interesante.
Por otra parte era inevitable que iba a terminar adoptando Python por motivos mucho mas razonables que cualquier argumento de orden técnico.
abril 20th, 2009 at 11:21 am
Bien por Python y su lenguaje Casero. Me llamó la atención que tu mamá socióloga se haya puesto en esfuerzos para instruirte en informática. Evidentemente rindió sus frutos…
De algún modo su generación intuyó que el futuro estaba entre los chips y los códigos. Mi mamá psicóloga me mandó a la escuela técnica donde nos conocimos porque tenía unos de los centros de cómputos más importantes del país, en ese caso no rindió muy buenos frutos, pero me da de comer y eso ya es bastante.
abril 22nd, 2009 at 3:28 pm
Esto me hizo recordar tu calculadora casio con Basic con la que hacías determinantes de 3×3.
Yo todavía no sé muy bien porque fui a esa escuela pero estuvo bueno…
abril 27th, 2009 at 12:03 am
Me hiciste reir un buen rato! Ahora recuerdo la casio fx850p – se me habia borrado de la memoria. Recuerdo que hacia los backups (?!) con el radiograbador de mi papa. Tambien recuerdo que Martin se compro la misma y el pibe le hizo un estuche de madera con revestido interior de telgopor (telgopor!) que era espectacular.
Pero mi calculadora tenia una ventaja: la expansion de memoria… de 32KB! Ademas tenia el “modulo interfaz” que tenia una interfaz centronics (!!) ademas de la conexion para el radiograbador aka dataset.
La entrada de wikipedia tiene un punch muy gracioso, http://en.wikipedia.org/wiki/Casio_FX-850P
abril 29th, 2009 at 6:57 am
Inolvidable ese equipo y el estuche de Martín, sin duda. Creo recordar que se lo hizo porque alguna vez se le cayó y zafó, entonces no quiso pasar más susto. Era grossísimo, parecía una laptop.