Este perfil de Quanta sobre Leslie Lamport (1941-) nos presenta a un personaje importante de informática, aunque su nombre no resulte tan familiar como otros. Además del Premio Turing de 2013, este matemático tiene entre sus logros haber puesto las bases de los sistemas distribuidos, tan omnipresentes y cruciales hoy en día. Como bonus, fue quien creó la primera versión del software de composición de textos LaTeX allá por 1984.
Su trabajo en la también llamada «ciencia de la computación» ha sido matemático, en el campo de los algoritmos y las demostraciones, lo cual es algo diferente de la programación, que a su vez poco tiene que ver con «picar código» en algún lenguaje. Para él son mundos distintos, algo que resume en una frase:
La gente confunde programar con picar código. En realidad, picar código es a la programación lo que mecanografiar es a saber escribir una novela.
Es interesante escuchar de boca de su descubridor la forma en que surgieron algunos de sus algoritmos y proyectos, como el TLA+. Se trata de un lenguaje para diseñar, documentar y verificar programas en sistemas concurrentes y distribuidos.
Sobre estos últimos, explica el paralelismo que tienen con algunos aspectos de la teoría de la relatividad de Einstein. A mí se me escapan los detalles, pero lo que he entendido es que en este tipo de sistemas hay muchos datos repartidos en diversos sitios y los ordenadores tienen que ponerse de acuerdo sobre lo que están procesando y en qué momento. Pero, al igual que en la teoría de la relatividad, las percepciones del tiempo y el estado de los datos pueden ser distintas, lo que complica las cosas.
La aportación de Lamport fue aplicar algo similar a la causalidad física (una causa precede a sus efectos) a esos entornos. De esta forma, los diferentes procesos en distintos lugares pudieran ponerse de acuerdo mediante mensajes acerca de lo que estaba sucediendo o, dicho de otro modo, sincronizándose.
Utilizando una máquina de estados estos sistemas pueden cooperar y producir «consistencia secuencial», algo que resulta muy útil. Hoy en día se emplea en todo tipo de sistemas distribuidos, en especial en los servicios en la nube, donde nunca se sabe cuántas copias hay de los datos y los accesos pueden ser muchos o pocos en cada instante.
Lamport también cuenta que uno de sus favoritos es el algoritmo de la panadería (bakery) que sirve para «implementar la exclusión mutua de N procesos o hilos de ejecución». En palabras más llanas, se refiere al modo mediante la cual los diferentes hilos o procesos de un sistema esperan turno para acceder a un recurso, por ejemplo una impresora. El paralelismo con la panadería es que en el algoritmo también se «coge un ticket con un número», lo que permite al proceso ir haciendo otras cosas mientras espera a que el turno coincida con el que indica la pantalla.
Relacionado: