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.
- ¿Cuál es la diferencia entre un proceso y un hilo?
- ¿Puede una máquina de Turing operar con un conjunto de instrucciones para todas las entradas y mostrar la respuesta correcta?
- ¿Cuáles son los desafíos con el procesamiento del lenguaje natural en el contexto de la inteligencia artificial?
- ¿Cuál es la mejor manera de aprender / enseñar AP Computer Science?
- ¿Es posible comenzar con el aprendizaje automático sin conocimientos previos en IA, o la IA debería estudiarse primero en general?
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.