¿Quién es el Einstein de la informática?

Dennis Frailey y Eli Adler sugirieron que Alan Turing era el Einstein de la informática. Tengo una opinión diferente

Alan Turing esencialmente creó la informática donde antes no existía tal ciencia. Por eso, lo considero más el Isaac Newton de la informática, y como tal probablemente se encuentra en un pedestal aún más alto que un Einstein .

Einstein fue un cambiador de paradigmas. En un año milagroso, produjo cuatro documentos de calidad de premio Nobel, uno que demuestra la existencia de átomos, dos que introducen conceptos de relatividad especial y el último, el más sorprendente de todos, que propone que la luz tiene una naturaleza particulada. Este concepto fue tan revolucionario que el mismo Planck se negó a creerlo durante muchos años.

Para el papel de cambio de paradigma, nomino a Edsger Dijkstra. Antes de su trabajo, la programación de computadoras no era reconocida como una ciencia o disciplina académica. No había reglas en la programación. Dijkstra fue posiblemente el primero en llegar a la idea contraintuitiva de que la imposición deliberada de limitaciones agudas en lo que uno se permitía hacer al escribir un programa daría lugar a una mayor productividad, legibilidad y facilidad de mantenimiento. Dijkstra, en otras palabras, fue el fundador de la “programación estructurada”.

Dijkstra fue el primero en resolver el problema de exclusión mutua, y así abrió el camino a la computación concurrente. Introdujo el uso de mutexes y semáforos, identificó y encontró soluciones al problema del punto muerto, realizó un trabajo fundamental en la teoría de grafos, diseñó sistemas tolerantes a fallas, introdujo otros conceptos esenciales para la programación distribuida, etc.

Soy lo suficientemente mayor como para recordar su artículo seminal “Ir a la declaración considerada perjudicial”. Al igual que el artículo de Einstein sobre el efecto fotoeléctrico, el artículo de Dijkstra creó un alboroto entre los defensores del uso del Goto. Finalmente, por supuesto, las opiniones de Dijkstra han ganado. Goto solo se usa cuando se programa en lenguajes de riqueza semántica insuficiente para permitir construcciones de programación más limpias y lógicas.

Estoy de acuerdo en que Alan Turing es la mejor respuesta. Inventó algo llamado Turing Machine, que es un modelo matemático de una computadora donde el programa estaba contenido en la memoria de la máquina y podía modificarse por sí mismo. En otras palabras, inventó lo que hoy llamamos software. Antes de ese momento, los programas estaban conectados a la computadora (por ejemplo, la computadora podría estar conectada para realizar un tipo particular de cálculo). También se le ocurrieron las ideas que condujeron al concepto de una subrutina. Y, por cierto, también construyó una gran cantidad de computadoras reales y las usó para descifrar los códigos secretos alemanes durante la Segunda Guerra Mundial, lo que permitió que los barcos estadounidenses que enviaban equipos y suministros y personas a Inglaterra pudieran hacer el viaje de manera más segura. En resumen, salvó a Inglaterra de perder la guerra.

Pero en un ejemplo clásico del triunfo de la ideología y la costumbre sobre el sentido común y la decencia, los ingleses hicieron la vida miserable para Turing después de la guerra porque era homosexual.

Alan Turing: el padre de la informática moderna