Structure and Interpretation of Computer Programs
Harold Abelson y Gerald Jay Sussman · 1985
¿Preferís escucharlo?
Escuchá «Structure and Interpretation of Computer Programs» gratis con una prueba de Audible.
Conocido en el mundo de la programación simplemente como “SICP”, este libro fue durante más de veinte años el texto con el que el MIT introducía a sus estudiantes de ingeniería y ciencias de la computación al oficio de programar. No enseña un lenguaje ni una sintaxis: enseña una forma de pensar sobre la complejidad, la abstracción y el diseño de programas, usando Lisp como bisturí conceptual.
Por qué lo recomienda Paul Graham
Graham es programador de Lisp de toda la vida —escribió Viaweb, la startup que originó Yahoo Store, en ese lenguaje, y buena parte de sus ensayos técnicos defienden su poder expresivo frente a lenguajes más convencionales—, así que su afinidad con SICP no requiere demasiada explicación. El libro trata a la programación como una disciplina cercana a las matemáticas y a la filosofía del lenguaje, no como un conjunto de recetas: exactamente el tipo de mirada que Graham defiende en ensayos como “Beating the Averages” y en su insistencia de que el lenguaje que uno usa para pensar moldea la calidad de las soluciones que puede imaginar. No hay una cita textual suya sobre el libro, pero aparece en el relevamiento público de sus recomendaciones de lectura, y la coherencia con el resto de su obra es evidente.
De qué trata
El libro está organizado alrededor de ideas centrales de la computación —abstracción procedimental, abstracción de datos, modularidad, estado y mutación, metalingüística— y las desarrolla con ejercicios en Scheme, un dialecto minimalista de Lisp elegido justamente porque no distrae con sintaxis: deja ver la estructura del pensamiento detrás de cada programa. Uno de sus capítulos más célebres construye, desde cero, un intérprete de Lisp escrito en el propio Lisp, un ejercicio que ilustra de forma vertiginosa cómo el lenguaje puede usarse para describirse a sí mismo.
Programar como pensar, no como escribir sintaxis
La idea que atraviesa todo SICP es que un programa es, antes que nada, una forma de expresar un proceso de pensamiento con precisión suficiente como para que una máquina lo ejecute. Esa distinción —entre aprender la sintaxis de un lenguaje y aprender a estructurar el pensamiento computacional— es lo que separó históricamente a SICP de cualquier manual convencional, y explica por qué sigue citándose treinta años después de que el MIT dejara de usarlo como texto de cátedra.
Para quién es
Para programadores que ya escriben código pero quieren entender los fundamentos con más profundidad, y para cualquiera fascinado por Lisp o por la idea de que la programación es, en el fondo, una rama aplicada de la lógica. No es un libro introductorio en el sentido de “fácil”: exige paciencia y ejercicios resueltos con papel y birome antes de tocar el teclado.
Por ahora disponible solo en inglés; el enlace lleva a la edición de MIT Press.