18 de junio de 2008

La venganza de los nerds (4 de 11)

De repente, en cosa de semanas creo, McCarthy se encontró con su ejercicio teórico transformado en un verdadero lenguaje de programación-- y uno más poderoso de lo que había pensado.

Entonces la explicación corta de porqué este lenguaje de los 50 no está obsoleto es poruqe no era tecnología sino matemáticas, y las matemáticas no caducan. La cosa correcta con la que comparar a Lisp no es el hardware de los 50, sino, digamos, el algoritmo Quicksort, que fue descubierto en 1960 y todavía es el mecanismo más rápido de clasificación de propósito general.

Existe aún otro lenguaje que todavía sobrevive de los 50, Fortran, y representa el enfoque opuesto en el diseño de lenguajes. Lisp era un trozo de teoría que inesperadamente fue convertido en un lenguaje de programación. Fortran fue intencionalmente desarrollado como un lenguaje de programación, pero uno que ahora consideraríamos de muy bajo nivel.

Fortran I, el lenguaje que fue desarrollado en 1956, era un animal muy diferente del Fortran de hoy en día. Fortran I era bastante de ensamblador con matemáticas. De muchos modos era menos potente que los lenguajes de ensamblador más recientes; no había subrutinas, por ejemplo, sólo ramas. El Fortran de la actualidad es arguiblemente más cercano a Lisp que a Fortran I.

Lisp y Fortran fueron los troncos de dos árboles evolutivos separados, uno enraizado en las matemáticas y el otro enraizado en la arquitectura de las máquinas. Estos dos árboles han ido convergiendo desde entonces. Lisp empezó potente, y en los siguientes veinte años se volvió rápido. Los lenguajes dizque predominantes empezaron siendo rápidos, y durante los siguientes cuarenta años fueron haciéndose gradualmente potentes, hasta hoy los más avanzados de entre ellos están bastante cerca de Lisp. Cerca, pero todavía les faltan algunas cosas...

Lo que hizo a Lisp diferente


Cuando fue inicialmente desarrollado, Lisp encarnaba nueve ideas nuevas. Algunas dellas hoy las damos por sentadas, otras sólo se encuentran en lenguajes más avanzados, y dos son aún únicas de Lisp. las nueve ideas son, en orden de adopción por la corriente dominante:

No hay comentarios.: