Edsger Dijkstra llevó la informática sobre sus hombros (2020)

La influencia desproporcionada de Edsger Dijkstra en la informática invita a reflexionar sobre cómo sus ideas moldearon la programación moderna y la pedagogía. Los comentaristas destacan su papel en la popularización de la programación estructurada y el razonamiento sobre la corrección de programas, al tiempo que revisitan sus famosas críticas a GOTO, COBOL y la programación orientada a objetos a la luz de los lenguajes y prácticas actuales. Junto a los debates técnicos, muchos recuerdan sus estándares exigentes, sus hábitos de trabajo distintivos y sus aforismos mordaces, sopesando si su rigor y su aspereza ayudaron o perjudicaron al campo.

Alcance de la influencia de Dijkstra

  • Muchos comentaristas dicen que asociaron inmediatamente el título con él y lo ven como una figura central en la informática, a la altura de gigantes históricos de las matemáticas.
  • Se destacan sus aportes: el algoritmo de caminos más cortos, los semáforos, la programación estructurada y su influencia en la enseñanza y el razonamiento sobre programas.
  • Algunos rechazan la grandeza del título, argumentando que fue uno de varios personajes clave, no “la” persona que llevó la informática.

Programación estructurada, GOTO y corrección

  • Se discute su defensa del flujo de control estructurado y de bloques de “una sola entrada, una sola salida”.
  • Los críticos señalan que la salida única puede forzar código rebuscado y choca con el estilo común de “guard clause” y las devoluciones tempranas.
  • Otros subrayan que el objetivo era la comprensibilidad humana y un razonamiento más fácil, no garantías formales de corrección.
  • Se debate GOTO: las versiones sin restricciones se ven como perjudiciales para el razonamiento; las formas restringidas (break/continue/goto/longjmp) se consideran manejables, aunque siguen siendo arriesgadas.

Paradigmas de programación: FP vs OOP y más allá

  • Algunos vinculan su postura anti-GOTO con los estilos funcionales modernos (sin salidas tempranas, recursión, TCO).
  • Hay debate sobre por qué los lenguajes funcionales son de nicho: un comentarista culpa a su estilo “enrevesado”, otros lo cuestionan y destacan sus sólidos sistemas de tipos y rendimiento.
  • Largo hilo sobre OOP:
    • Críticas: acoplamiento estrecho entre datos y comportamiento; jerarquías de clases frágiles; dificultad para evolucionar sistemas; “infierno de patrones de diseño”.
    • Defensas: la OOP como una herramienta útil más; la tipificación fuerte y la encapsulación como ventajas; composition-over-inheritance como práctica común.
    • Varios señalan que muchas ventajas de la “OOP” (composición, interfaces) no son exclusivas de la OOP.

Citas, filosofía y cultura

  • Se comparten muchas citas favoritas, tanto admiradas como criticadas: sobre COBOL, OOP, conteo de líneas, máquinas pensantes, abstracción y “CS vs computers”.
  • La cita sobre submarinos y “can machines think” provoca debate sobre la antropomorfización, la precisión lingüística y la relevancia práctica de esas preguntas.
  • Algunos ven su estilo incisivo como refrescante y motivador; otros lo ven como un emblema de una cultura arrogante y excluyente que perjudica al campo.

Personalidad, estilo de trabajo y anécdotas

  • Se lo retrata como un escritor intensamente cuidadoso y lento (borradores únicos, casi finales; ~3 palabras por minuto), con un énfasis profundo en pensar más que en teclear.
  • Rechazaba televisores, ordenadores personales y teléfonos móviles; amaba las plumas estilográficas y una autocaravana apodada la “Touring Machine”.
  • Múltiples anécdotas lo describen como exigente con la precisión en el lenguaje y la notación, dejando en algunos colegas un “crítico interior” duradero moldeado por sus estándares.