Hay muchos programadores sueltos que han tenido una formación similar a la mía, y que aún no descubren lo enriquecedor que es el mundo de la programación funcional. A esos colegas les estoy escribiendo. Por que si bien, es muy probable que yo nunca use de verdad un lenguaje realmente funcional, las ideas que me va implantando el aprender sobre este paradigma sí repercuten en mi forma de pensar los problemas y analizar las implementaciones. Creo que todo informático debería tener una formación básica en programación funcional, con el solo objetivo de abrirle la cabeza a otra forma de analizar un programa y de entender la programación.
"Lisp is worth learning for the profound enlightenment
experience you will have when you finally get it; that
experience will make you a better programmer for the rest
of your days, even if you never actually use Lisp itself a lot."
(Eric Raymond, "How to Become a Hacker")
Tomado de http://xkcd.com/297/
A lisp, lo han definido como "un lenguaje de programación programable", "un instrumento de la razón humana", "el lenguaje que Dios habría usado para implementar el universo mismo", y hasta como "el Chuck Norris de los lenguajes de programación". Esto se debe a que no solo permite hacer programas, sino que permite construir sobre el mismo y fácilmente nuevos lenguajes, ya sean generales o específicos para resolver un problema. Esto es algo mucho más abstracto, complejo, útil y por sobre todo interesante. Y lo logra con elegancia, a partir de muy pocas reglas. Recomiendo a cualquiera ver el curso completo ya que, además de la claridad de los docentes, está lleno de perlas imperdibles, y el contenido no pierde vigencia con los años. Ya dije en otro post que la primer clase, de Abelson, era todo un ejemplo en sus definiciones. Y como para terminar de convencerlos, les adelanto que en la lección 7a, Sussman demuestra lo maravilloso que es el paradigma y su lenguaje de una forma tan pero tan reveladora, que se viste especialmente como una mago para la ocasión. En los primeros 30 minutos de esta lección, llega a escribir todo un intérprete de lisp (sí, así de complejo es el ejemplo), escrito en lisp (sí, así de potente es el lenguaje), cuyo código fuente entra en nada más que 4 pizarrones (sí, así de elegante es el paradigma). Sin duda una de las clases de programación más memorables que he visto.
Capturas de la lección 7a del curso de Sussman y Abelson, disponible aqui. Una ilustración muy bien traída al
caso del genial M. C. Escher, un Sussman vestido de mago, y una música de revelación ochentosa ambientan el
momento en que los los alumnos contemplan a lisp implementándose a si mismo, en una epifanía colectiva.
Aunque, como dije antes, nunca use directamente casi nada de lo que vi en ese curso, sí digo que me abrió la cabeza, me dejó impresionado, y me mostró una forma de pensar muy diferente e interesante. Pero esto es solo el comienzo, como adelanté en la introducción, el auge paralelismo le ha dado nueva vida al paradigma, y más utilidad y aplicaciones aún en lenguajes basados en otros paradigmas. Pero para evitar aburrirlos, dejo eso para la segunda parte.
Estudie en la universidad de Lujan, Bs As, alla por 1998, bachillerato en sistemas. La primer materia de programacion es "Metodos de Programacion". el docente era Jorge Scucimarri, un capo total, que no lo volverias a ver hasta el ultimo año de Licenciatura.
ResponderEliminarEn esa materia vimos (de entrada, como para atragantarnos y plantearnos si de verdad estabamos dispuestos a cursar la carrera) PROGRAMACION LOGICA, FUNCIONAL Y ALGORITMICA. Ja! Muchos salieron correindo despues del pront de prolog:
>?
Y el dolor de cabeza de 2 horas y media de programacion logica no te haces idea...
Y LISP..., despues de prolog, era mucho mas accesible, te lo puedo jurar.
si... corria los interpretes en una Casio!!
ResponderEliminar