Colabora
Daniel Rodríguez Herrera

Recuerdo de un programador

Me llega la triste noticia –siempre lo son– de la muerte del profesor Edsger Dijkstra. Diplomado en Física y Matemáticas, Dijkstra perteneció a la segunda generación de los pioneros informáticos que sentaron las bases de la ciencias de la computación, tal y como las conocemos hoy en día. Sus esfuerzos se unieron a una gran capacidad de divulgación.

Sus contribuciones fueron muy variadas en diversos campos. Su apellido da nombre a uno de los dos algoritmos más empleados para encontrar el camino más corto entre dos nodos de un grafo con costes. Para entenderlo con un ejemplo, supongan ustedes que tienen el plano del metro de una ciudad, en el que cada estación es un punto o nodo, y que entre las estaciones hay líneas que tienen asociado el tiempo que se tarda en ir de una estación a otra. El algoritmo de Dijsktra es el más rápido en decirle cual es la ruta más corta entre dos estaciones cualesquiera.

También concibió uno de los sistemas de programación concurrente más empleados. La programación concurrente es la que se ocupa de los problemas que puede haber cuando existen varios procesos (piense en los programas de su ordenador) ejecutándose a la vez y se necesita que esos procesos accedan a recursos comunes (la impresora, por ejemplo) sin que se interrumpan entre ellos ni ningún proceso se quede esperando hasta el día del juicio a que le concedan permiso para acceder. Dijkstra propuso un mecanismo, denominado semáforo, que sentaba las bases de la solución de estos problemas y que consiste, como su mismo nombre indica, en colocar unas instrucciones especiales que "paraban" a los procesos que iban a acceder a un recurso si éste ya estaba siendo utilizado y les permitían el paso en orden cuando quedaba libre.

Pero su contribución más importante a esta joven ciencia ha sido su cruzada por la programación estructurada. Al principio, todos los programadores se veían obligados a crear código en lenguajes que pensaran en los términos de la máquina. La consecuencia natural fueron miles de líneas de código que resultaban incomprensibles incluso al mismo programador que las escribió, pocos meses después de haberlo hecho. La programación estructurada fue un paso crucial en el camino de la creación de lenguajes informáticos que estuvieran más cerca del modo de pensar de un humano –aunque sea programador– que del idioma de las máquinas.

Si tiene usted algún compañero que le de a esto de la tecla, y le observa contemplando extasiado unas líneas en un extraño lenguaje que él mismo ha escrito, pruebe a preguntarle la razón. Le dirá que le ha quedado muy bien, que es un código elegante, o algo similar. Ese programador, aunque no lo sepa, está influido por las ideas de Dijkstra, ideas que, como las de muchos otros antes y después de él, han permitido que la informática crezca hasta ser lo que es hoy.

Y con esto les dejo. Dicen que escribir un obituario es un buen homenaje. Pero en mi caso, creo que el mejor homenaje que puedo hacerle es programar un rato. Según sus enseñanzas, por supuesto.

Daniel Rodríguez Herrera es editor de Programación en castellano.

Ver los comentarios Ocultar los comentarios

Portada

Suscríbete a nuestro boletín diario