# Edsger Dijkstra

Edsger Wybe Dijkstra (AFI: ˈɛtsxər ˈwibə ˈdɛɪkstra) (Róterdam, 11 de mayo de 1930-Nuenen, 6 de agosto de 2002) fue un científico de la computación de los Países Bajos.
Poco después de su muerte en el 2002, recibió la distinción ACM PODC Influential Paper Award en computación distribuida por su trabajo en la autoestabilización en programas computacionales. Este premio fue renombrado a Premio Dijkstra el siguiente año en su honor.

## Biografía
### Primeros años

Edsger W. Dijkstra nació en Róterdam. Su padre, que fue presidente de la Sociedad Neerlandesa de Química, había aprendido química durante la secundaria y más tarde de su superintendente. Su madre era matemática, pero nunca tuvo un trabajo formal.
Dijkstra siempre había considerado emprender una carrera en Derecho y representar a los Países Bajos en las Naciones Unidas. Sin embargo, tras graduarse en la escuela en 1948, bajo la dirección de sus padres estudió Matemáticas y Física. Finalmente pasó a estudiar Física teórica en la Universidad de Leiden. Más tarde trabajó como investigador para Burroughs Corporation a principios de los años 1970. En la Universidad de Texas en Austin, Estados Unidos, ocupó el Schlumberger Centennial Chair in Computer Sciences.

### Mathematisch Centrum, Ámsterdam

Desde 1952 hasta 1962, Dijkstra trabajó en el Mathematisch Centrum en Ámsterdam, donde colaboró con Bram Jan Loopstra y Carel S. Scholten, los cuales habían sido contratados para construir un computador. Su modo de trabajo fue muy disciplinado: en primer lugar, debían escribir un manual de programación. Posteriormente los diseñadores de hardware debían tener fe en que Dijkstra, el programador, escribiera las líneas de códigos para una máquina todavía inexistente. De su experiencia aprendieron la gran importancia que tiene una documentación clara y que una tediosa depuración de un programa puede ser evitada si se ha hecho un diseño cuidadoso. En este centro, Dijkstra y Jaap Zonneveld desarrollaron un compilador para el lenguaje de programación ALGOL, que tuvo una gran influencia en su posterior actividad científica.

### Universidad Tecnológica de Eindhoven

En 1962, Dijkstra se trasladó a Eindhoven, y más tarde a Nuenen, en el sur de los Países Bajos, donde se convirtió en profesor del Departamento de Matemáticas de la Universidad Tecnológica de Eindhoven. La universidad no tenía un departamento de informática separado y la cultura del departamento de matemáticas no le convenía especialmente. Dijkstra intentó crear un grupo de informáticos que pudieran colaborar en la resolución de problemas. Este fue un modelo de investigación inusual para el Departamento de Matemáticas. A finales de la década de 1960 construyó el THE operating system (llamado así por la universidad, entonces conocida como Technische Hogeschool Eindhoven), que ha influido en los diseños de los posteriores sistemas operativos por su uso de la memoria virtual paginada basada en software.

### Burroughs Corporation

Dijkstra se incorporó a Burroughs Corporation, una empresa conocida entonces por producir ordenadores basados en una innovadora arquitectura de hardware, como becario de investigación en agosto de 1973. Sus funciones consistían en visitar algunos de los centros de investigación de la empresa un par de veces al año y llevar a cabo su propia investigación, que realizaba en la instalación de investigación más pequeña de Burroughs, es decir, su estudio en el segundo piso de su casa en Nuenen. De hecho, Dijkstra era el único investigador de Burroughs y trabajaba para ella desde su casa, viajando ocasionalmente a sus sucursales en Estados Unidos. Por ello, redujo su horario en la universidad a un día a la semana. Ese día, el martes, se convirtió pronto en el día del famoso "Club de los Martes por la Tarde", un seminario en el que discutía con sus colegas los artículos científicos, analizando todos los aspectos: notación, organización, presentación, lenguaje, contenido, etc. Poco después de trasladarse en 1984 a la Universidad de Texas en Austin (Estados Unidos), surgió una nueva "rama" del Club de los Martes por la Tarde en Austin, Texas.
Los años de Burroughs fueron los más prolíficos en cuanto a producción de artículos de investigación. Escribió cerca de 500 documentos de la serie EWD (descrita más adelante), la mayoría de ellos informes técnicos, para su circulación privada dentro de un grupo selecto.

### Universidad de Texas en Austin

Dijkstra aceptó la Cátedra del Centenario de Schlumberger en el Departamento de Ciencias de la Computación de la Universidad de Texas en Austin en 1984.

### Programación distribuida

Dijkstra fue uno de los pioneros en el establecimiento de la programación distribuida. Gracias a este tipo de programación, Dijkstra fue el primero en presentar una solución al problema de exclusión mutua.

### Especificación formal y verificación

Desde la década de 1970 el principal interés de Dijkstra fue la verificación formal. La verificación formal es un método de validación estática, en el que, partiendo de un conjunto de axiomas, reglas de inferencia y algún lenguaje lógico, se puede encontrar una demostración de un programa. En 1976 Dijkstra publicó su libro A Discipline of Programming el cual presentó su método de desarrollo sistemático de programas, junto con sus pruebas de corrección.
En su exposición, utilizó su Lenguaje de Comandos Guardados. Este lenguaje, con su dependencia en el no determinismo, la semántica de la precondición más débil y el método de desarrollo propuesto, produjeron un impacto considerable en el campo de las ciencias de ese momento.
En 1984, para añadir mayor apoyo a su enfoque de la programación, publicó junto con Wim Feijen un libro de texto para estudiantes de primer año de informática, llamado Een methode van programmeren. La versión inglesa se publicó en 1988, llamada A Method of Programming.

### Ciencias de la computación y la programación

Dijkstra fue uno de los mayores oponentes de la visión de las ciencias de la computación desde el punto de vista de la ingeniería. Mediante el término "ciencias de la computación", que sustituyó a "ciencias del computador", Dijkstra quería hacer énfasis en los mecanismos abstractos que esta ciencia tiene.
Dijkstra consideraba que el trabajo de un programador no era la realización de programas, sino diseñar las distintas clases de computación para el posterior desarrollo de estos. Este pensamiento queda reflejado en su obra The Humble Programmer (1972).
También, se opuso a que la ingeniería del software estuviera bajo la tutela de la academia de la computación. Sobre esto, Dijkstra argumentó que, «Al igual que a la economía es considerada como "La Ciencia Miserable", a la ingeniería del software debería ser considerada como "La disciplina Condenada", debido a que no se acerca, ni siquiera, a su objetivo, ya que este es contradictorio en sí mismo».

## Vida personal y fallecimiento

Dijkstra llevaba un modesto estilo de vida, hasta el punto de considerasele espartano. Su casa en Nuenen era sencilla, pequeña y sin pretensiones. No tenía ni televisión, ni vídeo, ni teléfono móvil, ni iba al cine. Tocaba el piano y, mientras estaba en Austin, le gustaba ir a conciertos. Entusiasta oyente de música clásica, el compositor favorito de Dijkstra era Mozart.
Dijkstra murió el 6 de agosto de 2002. Según los responsables de la Universidad de Texas, la causa de la muerte fue el cáncer.

## Trabajo y aportaciones

Dijkstra es conocido porque alertó sobre los peligros del comando GOTO en la programación, que culminó en 1968 con la carta al editor que se publicó con el título Go To Statement Considered Harmful (La instrucción Goto considerada perjudicial), visto como un paso importante hacia el rechazo de la expresión GOTO y de su eficaz reemplazo por estructuras de control tales como el bucle while. El famoso título del artículo no era obra de Dijkstra, sino de Niklaus Wirth, entonces redactor de Comunicaciones del ACM. Con su carácter árido y ácido, expresó su oposición a dicho comando afirmando que «mutila la mente más allá de toda recuperación». Dijkstra era un aficionado bien conocido de ALGOL, y trabajó en el equipo que desarrolló el primer compilador para este lenguaje. En ese mismo año creó el primer sistema operativo con estructura jerárquica, de niveles o capas. Fue denominado THE (Technische Hogeschool, Eindhoven) que se utilizó con fines didácticos.
En 1965 dio lugar al primer artículo científico en el campo de la computación concurrente y la programación concurrente. Entre sus contribuciones a las ciencias de la computación está la solución del problema del camino más corto, también conocido como el algoritmo de Dijkstra, la notación polaca inversa y el relacionado algoritmo shunting yard, THE multiprogramming system, el algoritmo del banquero y la construcción del semáforo para coordinar múltiples procesadores y programas. Otro concepto debido a Dijkstra, en el campo de la computación distribuida, es el de la autoestabilización, una vía alternativa para garantizar la confiabilidad del sistema. El algoritmo de Dijkstra es usado en la ruta más corta primero (SPF) que es usado en el protocolo de enrutamiento Open Shortest Path First (OSPF). También se le debe la autoría de la expresión «Crisis del software», aparecida en su libro The Humble Programmer y usada ampliamente en la famosa reunión de la OTAN de 1968 sobre desarrollo del software. Recibió el Premio Turing en 1972.
Desde los años 1970, el principal interés de Dijkstra fue la verificación formal. La opinión que prevalecía entonces era que uno debe primero escribir un programa y seguidamente proporcionar una prueba matemática de su corrección. Dijkstra objetó que las pruebas que resultan son largas e incómodas, y que la prueba no da ninguna comprensión de cómo se desarrolló el programa. Un método alternativo es la derivación de programas, «desarrollar prueba y programa conjuntamente». Uno comienza con una especificación matemática del programa que se supone va a hacer y aplica transformaciones matemáticas a la especificación hasta que se transforma en un programa que pueda ser ejecutado. El programa que resulta entonces es sabido correcto por la construcción. Muchos de los últimos trabajos de Dijkstra tratan sobre las maneras de hacer fluida la argumentación matemática.

## Personalidad y modo de trabajo

Dijkstra es conocido como un personaje en el mundo de las ciencias de la computación. En el prólogo de su libro A Discipline of Programming, escrito en 1976, declaró la siguiente frase: «En cuanto a la ausencia de bibliografía, no ofrezco ni explicaciones ni disculpas». De hecho, gran parte de sus artículos y libros no tienen ninguna referencia. Esta ausencia de referencias fue criticada por muchos investigadores. Sin embargo, Dijkstra eligió esta forma de trabajar para remarcar su autosuficiencia.
Aunque parezca irónico, Dijkstra, uno de los mayores desarrolladores del software de su época, evitó el uso de computadores en su trabajo durante décadas. Cuando, finalmente, sucumbió a la tecnología, únicamente utilizó los ordenadores para enviar correos electrónicos y hacer búsquedas en la red. Dijkstra nunca utilizó un computador para realizar ninguno de sus trabajos, todos ellos fueron realizados a mano.
Desde una edad muy temprana destacó por su ingenio y elocuencia. Cuando era pequeño le aseguró a su madre que no resolvería ningún problema o cuestión que le ocupará más de cinco líneas de un folio.
Dijkstra también destacó como escritor de ensayos. En uno de ellos, en tono humorístico describió una empresa ficticia en la que había trabajado como presidente llamada Mathematics Inc. Esta empresa se había dedicado a comercializar teoremas matemáticos (un paralelismo a lo que estaba ocurriendo con las empresas tecnológicas, las cuales estaban haciendo una abusiva comercialización de los programas que desarrollaban). Al concluir este discurso Dijkstra aseguró que era la empresa más emocionante, y a la vez miserable, jamás concebida.
Alan Kay expuso que en informática, la arrogancia se mide en nanodijkstras.