"An Interview with DONALD E. KNUTH"
Conducted by Philip L. Frana
Charles Babbage Institute
Center for the History of Information Processing
University of Minnesota, Minneapolis
Center for the History of Information Processing
University of Minnesota, Minneapolis
Copyright 2001, Charles Babbage Institute
Oral History
Original file: https://conservancy.umn.edu/bitstream/handle/11299/107413/oh332dk.pdf?sequence=1&isAllowed=y
Entrevista con Donald E. Knuth.
Entrevistador: Philip L. Frana
El dia 8 de Noviembre de 2001
En Stanford, California.
Resumen:
Donald E. Knuth es profesor emérito de El arte de la programación informática en la Universidad de Stanford. En esta historia oral, Knuth abarca una serie de temas en el desarrollo de software.
incluidas las patentes de software, la aritmética verbal, la programación estructural y la colaboración. La historia oral incluye material sobre la escritura de "El arte de la programación informática", así como su educación temprana y herencia luterana.
ENTREVISTA:
Esta es una historia oral con Donald E. Knuth, realizada el 8 de noviembre de 2001 en Stanford, California. La entrevista la lleva a cabo Philip Frana para el "Software History Project" bajo los auspicios de una subvención de la National Science Foundation.
Frana: Muchas gracias Don por aceptar hacer esto. Debo decir que después de leer: "Cosas de las que un informático rara vez habla" ( https://en.wikipedia.org/wiki/Things_a_Computer_Scientist_Rarely_Talks_About ) , tuve la tentación de hacerles preguntas al azar de las 328 historias orales que tenemos en nuestra colección.
Knuth: Buena idea.
Frana: Pero se me ocurrió una lista de preguntas para las que no tenía respuestas. Me reuní con Edsger Dijkstra durante el verano, y tú y él pareceis estar, supongo que junto con un puñado de otros
personas, algunos de los primeros líderes en ciencias de la computación. Me di cuenta, en particular, de que ambos erais consultores de Burroughs.
Knuth: Correcto.
Frana: ¿O los becarios de Burroughs? ¿Eras miembro?
Knuth: No, no. Solo era un consultor de Burroughs. La historia es que fui a la universidad en Cal Tech, comencé la escuela de posgrado en 1960, y durante ese verano escribí un compilador para Burroughs. Podemos hablar más sobre eso si quieres. Era un compilador de Algol que era para su computadora de tambor, la 205. Y cuando vine aquí descubrí que tenían un buen grupo de personas en la sección de Pasadena de Burroughs. Se llamó División de Electrodatos. Y tuve becas de la National Science Foundation y de la Woodrow Wilson Foundation.
Pero las becas tenían la restricción de que no podías hacer nada más que ser un estudiante de posgrado; no podía hacer ninguna consultoría ni tener ningún otro ingreso. Así que rechacé las becas y trabajé para Burroughs como consultor. Esa fue mi conexión con la informática mientras estudiaba matemáticas en Stanford. Y en Burroughs tuve una relación maravillosa con la gente de allí y trabajé con grupos de software y hardware. Y creo que podría haber conocido a Edsger por primera vez cuando vino a visitarnos a principios de los 60, alrededor de los años 62 o 63, tal vez. Y luego lo conocí unas cuantas veces más en viajes a Europa. Pero él también tenía a Burroughs, supongo, como su conexión con el mundo real desde su cátedra en Eindhoven.
Frana: ¿Escribiste una serie de informes técnicos como lo hizo Edsger?
Knuth: No!. Tiene esta serie EWD 1 hasta, no sé, 2500 o lo que sea.
Frana: Infinito ...
Knuth: Sí. Y ahora los tengo en un CD, lo cual es genial.
Frana: Correcto. Y ahora también son accesibles a través de la Web.
Knuth: Correcto. Pero no pone índices en sus libros. Entonces, cuando se publicaron sus Escritos Seleccionados sobre Informática, en los que reimprimió un montón de estos EWD, tuve que leer todo el maldito asunto para averiguar qué había dicho sobre mí. No podía simplemente mirar en el índice y buscar las páginas. Me preguntaba cuál sería su opinión, porque es un crítico ferviente de lo que le gusta y lo que no le gusta, y esa es su gran fortaleza. Yo tiendo a ser un poco más vago en mis opiniones. [risas]
Conocí a Peter Naur en 1967. Lo recuerdo específicamente porque nos conocíamos
sólo a través de publicaciones y correspondencia mientras era editor del Boletín Algol. Y es otro hombre de gustos y aversiones muy fuertes, y opiniones fuertes. Y fue interesante porque había estado trabajando en "El arte de la programación informática" (https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming) y, en ese momento, lo veía como un esquema bastante bueno para un plan de estudios en ciencias de la computación, si alguna vez las ciencias de la computación se establecieran como un disciplina. Pensé que mi libro trataba sobre los temas básicos que deberían incluirse en el trabajo de ciencias de la computación. Y Peter Naur y yo habíamos sido invitados a hablar en Trondheim. La Universidad de Trondheim programó un día cuando estaban tratando de planificar el plan de estudios. Esto fue en la primavera de 1967, y nos habían invitado a los dos a ir allí y hablar durante una hora sobre lo que pensamos que sería un buen bosquejo para sus estudiantes. Y resultó que Peter y yo teníamos el mismo esquema de forma independiente. Entonces llegamos a ser amigos.
Frana: ¿Estabas incluyendo un curso sobre estructuras de datos en ese momento?
Knuth: Correcto, correcto. Publicó estas cosas en un pequeño folleto. Era solo un boceto. Nunca desarrolló cosas en las fronteras como yo traté de hacer. Pero estructuró el campo de la misma manera y tenía esta bonita palabra, que introdujo en el idioma danés, "datologi", un concepto que se llamó "informática" por defecto en Estados Unidos.
Frana: ¿Ahora se opone a ese título "Ciencias del Computador" [Computer Science], con tanta fuerza como lo hace Edsger?
Knuth: De hecho, me gusta. Una rosa es una rosa. Las palabras obtienen su significado por lo que significan, no realmente por etimología. Quiero decir, considere "matemáticas". Probablemente fue muy mal elegido, pero ahora todo el mundo sabe qué son las matemáticas. Así que no importa cómo lo llames, siempre que
a medida que la gente comienza a comprender lo que significa el término. Me opongo de alguna manera a la palabra "informática", porque creo que enfatiza las cosas en las que trabajan los algoritmos, en lugar de los procesos. Eso
Parece que la información es más algo estático que dinámico. ¿Y qué? Yo también estaría feliz con ese término. Y por la misma razón, no pensé que "datalogía" fuera la palabra óptima. En Suecia inventaron la palabra "dator" para una computadora. Y eso creo que fue una elección brillante. Pero la mayoría de las veces las palabras no son óptimas y simplemente ... dejamos de pensar en eso después de un tiempo. Ni siquiera nos damos cuenta de cuál era el significado original.
Frana: Ahora, el departamento de UT Austin se llama "ciencias del computador" [Computer Sciences], en plural.
Knuth: Oh, está bien. Texas tiene que ser más grande.
[risas].
Knuth: Creo que es plural en algunos lugares. Wisconsin tal vez ... Pero solo tenemos uno aquí.
Frana: ¿Te parece extraño?
Knuth: No. Creo que es un capricho de la historia.
Frana: ¿Crees que la gente en Estados Unidos es matemática en general?
Knuth: Bueno, ciertamente parece la forma en que están yendo las cosas. Tomas cualquier tema en particular que
usted está interesado e intenta ver si alguien con una educación secundaria estadounidense lo ha aprendido, y se horrorizará. Jesse Jackson cree que los estudiantes no saben nada de ciencias políticas y estoy seguro de que los químicos piensan que los estudiantes no saben química, etc. Pero de alguna manera lo consiguen cuando tienen que hacerlo más tarde. Pero yo diría que ciertamente los estudiantes ahora han tenido una idea más superficial de las matemáticas de lo que solían. Tenemos que
hacer cosas de recuperación en Stanford que no teníamos que hacer hace treinta años.
Frana: Gio [Wiederhold] me dijo lo mismo.
Knuth: Lo más escandaloso fue que el curso de Stanford en álgebra lineal no pudo llegar a valores propios porque los estudiantes no sabían sobre números complejos. Ahora todos los cursos en
Stanford, que toma el álgebra lineal como prerrequisito, lo hace porque quiere que los estudiantes conozcan los valores propios. Pero aquí en Stanford, con uno de los estándares de admisión más altos que cualquier universidad, nuestros estudiantes no conocen números complejos. Así que tenemos que enseñarles eso cuando lleguen a la universidad. Sí, definitivamente es un problema.
Frana: ¿Tu formación en matemáticas en la escuela secundaria fue particularmente buena o fue que pasaste mucho tiempo resolviendo problemas?
Knuth: No, mi formación en matemáticas en la escuela secundaria no fue buena. Mis profesores no podían responder a mis preguntas, así que decidí dedicarme a la física. Quiero decir, había jugado con las matemáticas en la escuela secundaria. Trabajé mucho dibujando gráficos y trazando puntos y usé pi como la base de un sistema numérico, y exploré cómo sería el mundo si quisieras hacer logaritmos y tuvieras un sistema numérico basado en pi. Y había jugado con cosas así. Pero mis profesores no pudieron responder a las preguntas que tenía. Había probado que 1 = -1; y no pudieron ver nada malo en ello. Y pensé, bueno, si 1 = -1, esto no es tan bueno. Pero amaba a mi profesor de física y decidí especializarme en física.
No fue hasta mi segundo año en la universidad que me cambié y me di cuenta de que las matemáticas eran realmente lo mejor para mí. Y esto fue en parte por egoísmo. Me gustó el hecho de que con las matemáticas se pudiera saber que una respuesta era correcta. Con la física nunca lo sabrías. Podrías pasar toda tu vida y nunca sabrías si algo que hiciste estuvo bien. Con las matemáticas sigues obteniendo esta seguridad. Y así, siendo el tipo de persona que soy, fue agradable. En mi libro sobre ciencia y religión, señalo que no me importan algunos misterios; aún así, me gusta tener como ciertas algunas cosas. Así que eso fue lo que me atrajo hacia las matemáticas. No podía imaginarme cómo un astrónomo podría ser feliz con solo teorizar sobre lo que estaba sucediendo en estrellas muy, muy lejanas. Nunca podrás ir allí.
Frana: ¿Tienes una respuesta? ¿Son diferentes los estudiantes estadounidenses hoy en día? En una de sus entrevistas, analiza el problema de la creatividad frente a la gran absorción de conocimientos.
Knuth: Bueno, eso es parte de eso. Hoy tenemos sobre todo una cultura de frases hechas, esta falta de capacidad de atención y tratar de aprender como aprobar los exámenes.
Frana: Sí, de repente se me ocurrió que has escrito muchas veces que las matemáticas son
tranquilizadoras. Pero en su conferencia del premio de Kioto en 1996, dijo algo como: "Las matemáticas pertenecen a Dios".
Knuth: Bueno, eso fue en un contexto diferente. Fue en un contexto de patentes o algo así.
Frana: Está bien, está bien.
Knuth: Dije que no reclamarías la propiedad sobre el número diez. Pero en realidad he tenido otros pensamientos sobre tales cosas cuando los números crezcan.
Frana: ¿Cuál es su opinión sobre las patentes de software?
Knuth: Estoy en contra de las patentes de software sobre cualquier idea que sea tan obvia que uno esperaría que un estudiante típico la inventara. Tal vez pueda estar persuadido de que está bien tener una patente sobre algo realmente profundo, como algún algoritmo de punto interior o algo así. Pero, ciertamente, si tuviera que escribir el sistema TEX en el entorno actual, nunca comenzaría, porque tendría que preocuparme demasiado por obtener permiso para usar cientos de ideas. Por supuesto, afortunadamente, incorporamos la mayoría de los algoritmos al software antes de que la gente comenzara a tomar esta tonta visión de las patentes. Pero creo que, de todos modos, creo que a los escritores de software se les debería pagar por los servicios, por la personalización, por adaptar los programas, por el conocimiento que tienen sobre cómo mantener las cosas. Pero no por los algoritmos; no para los métodos que se utilizan. El método, eso es algo que suele ser: considere la analogía que hice con la oficina de patentes. Escribí una carta abierta al comisionado de patentes. Dije que los algoritmos son como palabras para un escritor, o como los abogados tienen jurisprudencia. ¿En qué se convertiría la ley si cada vez que los abogados usaran la jurisprudencia cobraran una tarifa a otros abogados por citarla? Eso sería, creo, muy análogo a lo que la gente quiere para el software.
Frana: Pero incluso con notas a pie de página, para que un historiador pague una moneda de veinticinco centavos cuando cita a alguien
el trabajo de los demás. . .
Knuth: O si no los cita, vale un centavo.
Frana: ¿Ha visto el movimiento del desarrollo de software en el extranjero?
Knuth: No, acabo de regresar de Munich y dijeron que la Comisión Europea está
analizando toda la cuestión de las patentes de software. Entonces, una de las preguntas que me hicieron allí fue ¿qué pienso al respecto? Y dije: "Bueno, espero que no lo aceptes". Estoy contento con lo que leí de Gran Bretaña. Creo que su actitud es bastante saludable. Pero no sigo el tema de cerca. No soy un cruzado por esto como Richard Stallman. Descubrí que mi talento radica en escribir libros sobre programación. Puedo hablar con la gente en los cócteles y decir: "Oh, sí, esto me gusta o no me gusta", pero no salgo y doy discursos al respecto, etc. Stallman me animó a escribir una carta abierta a la comisión de patentes, una vez después de una larga conversación telefónica. Me rendí a regañadientes. Él pensó que haría algún bien. Dudo que lo haya hecho, pero de todos modos ahí está.
Frana: Ahora, más allá del entrenamiento en bruto, varios científicos informáticos con los que he hablado han descrito experiencias místicas. ¿Es este un ejemplo de azar que favorece a la mente preparada? ¿De eso se trata realmente?
Knuth: Bueno, probablemente esa sería la mejor explicación desde un punto de vista racional. Me refiero a que Poincaré habla de estas cosas, y de muchas otras personas, Hadamard por ejemplo. Y obtienes este momento Eureka. De alguna manera, de repente, sabes que algo está funcionando. Y normalmente lo es.
Frana: La razón por la que pregunto es que estamos sentados en esta sala; obviamente en la cinta no puedo describir completamente
eso, pero hay una alfombra de pelo largo con patrones interesantes en el piso, y tienes algunas fotos en la pared.
Knuth: Es una especie de habitación psicodélica.
Frana: Sí, es multicolor. Tiene bombillas más que suficientes, por ejemplo, dieciséis en el
techo solo. ¿Es eso inspirador para ti?
Knuth: No, no. En realidad, no hemos usado mucho esta sala, pero queríamos hacer algo
diferente. Nos gusta la idea de tener diferentes tipos de espacios en nuestra casa, no solo habitaciones beige. Entonces, cuando vimos estas grandes alfombras en Noruega, nos enamoramos de ellas y pensamos: "¿Cómo podemos usarlas en casa?" También experimentamos con los paneles de cobre aquí y cosas por el estilo. Pero esta sala nunca ha estado a la altura de sus expectativas. Estas luces que están encendidas, puedes hacerlas más tenues y más brillantes.
Frana: Pensé que tal vez se trataba de una sala de ideas.
Knuth: Sí, bueno, sería bueno tener una sala de ideas. Pero anoche, tuve una idea en otro
habitación - - mientras ponía la mesa del comedor. Fue una idea tonta, pero también podría decírtelo. En la parte de mi libro que estoy escribiendo ahora, uno de los ejemplos que estoy usando para algoritmos es un rompecabezas llamado "alfaméticos" [Criptoalgoritmo: https://es.wikipedia.org/wiki/Criptoaritmo Verbal Arithmetic: https://en.wikipedia.org/wiki/Verbal_arithmetic ] donde tienes palabras, luego las sumas y luego sustituyes las letras por dígitos. , y se comprueba. Así que mientras estaba poniendo la mesa anoche, se me ocurrió que debería probar "CUCHILLO + TENEDOR + CUCHARA = CENA" [KNIFE + FORK + SPOON = SUPPER]. En un instante me di cuenta de que estas palabras solo tienen diez letras, porque, ya sabes, la "K" se usa tanto en "CUCHILLO" [KNIFE] como en "TENEDOR" [FORK], etc. Así que cuentas y solo hay nueve letras diferentes en "CUCHILLO" y "TENEDOR" y "CUCHARA", dejando espacio para una letra adicional. Pero de todos modos, mientras dejo el cuchillo, el tenedor y la cuchara, ya sabes, estoy pensando en alfaméticos. Entonces me acerco a mi computadora y lo pruebo. Desafortunadamente, sin embargo, "CUCHILLO + TENEDOR + CUCHARA = CENA" [KNIFE + FORK + SPOON = SUPPER] no tiene solución. Así que agregué SOPA [SOUP]. Y luego tiene exactamente una solución; ¡es perfecto! Otra variación, "CUCHILLO + TENEDOR + CUCHARA = CENA" [‘KNIFE + FORK + SPOON = DINNER’] tenía dos soluciones, por lo que no era tan buena.
He estado pensando en alfaméticos porque enseñan lecciones interesantes cuando intentas
diferentes algoritmos. Puede hacerlo con la fuerza "bruta" en la que simplemente dispara y pasa por todas las posibles permutaciones de letras versus números lo más rápido que pueda. Hay tres millones y medio de permutaciones, pero si solo gasta cinco instrucciones de máquina en cada una, todavía es mucho menos de un segundo para revisarlas y probarlas todas. Pero luego puede ser más inteligente y puede comenzar a trabajar de derecha a izquierda. Sabes, primero tienes que verificar los dígitos de las unidades, y luego averiguas si hay un acarreo, y luego si los dígitos de las decenas funcionan. Y al trabajar de derecha a izquierda, no tiene que pasar por los 3,5 millones de permutaciones, es posible que solo tenga que pasar por unos pocos miles. Ayer había jugado con otras ideas; durante el día había escrito un programa para un método de izquierda a derecha. Algunas opciones de la izquierda son imposibles, ya sabes, no puedes convertir a este tipo en un nueve porque es demasiado grande. Eso estaba en mi cabeza ayer, alfaméticos. Inventé algunos realmente divertidos que estarán en mi próximo libro, puedes verlo.
Frana: Está bien. Este tipo de resolución de acertijos se remonta a su infancia. Te quedaste
casa a un par de semanas de la escuela. Hubo un concurso, ¿verdad?
Knuth: Sí, cuando estaba en octavo grado. Ciertamente has hecho muchos deberes sobre mí. ¡Eso es impresionante! Me quedé en casa en ese momento porque había un concurso patrocinado por Zeigler's Giant Bar Company y dijeron: '¿Cuántas palabras puedes hacer con las letras del nombre Zeigler's Giant Bar?' Me di cuenta de que si tomaba un diccionario completo había una manera bastante buena de buscar a través de él, sabiendo que solo iba a usar como máximo tres A en una palabra, y cosas así. Pero nunca tendría que mirar la mayor parte del diccionario. Por ejemplo, las palabras no tenían una C, por lo que no tuve que pasar por las C y así sucesivamente. Entonces fue un proyecto de dos semanas. Revisé todas las partes relevantes del diccionario y obtuve una lista completa de estas cosas. Tenía más del doble de palabras que los jueces en su lista maestra. Y olvidé usar el apóstrofe.
Frana: Con el apóstrofe, habrías tenido aún más.
Knuth: Sí, claro, para palabras como "bar's".
Frana: Quiero volver atrás en el tiempo y preguntarte acerca de los lenguajes de programación. ¿Mencionaste que trabajaste en compiladores de Algol para Burroughs?
Knuth: Compiladores de Algol, sí, claro.
Frana: ¿Por qué Algol 60 nunca se puso de moda?
Knuth: Bueno, FORTRAN fue muy fuerte. La gente pensaba que había invertido mucho en ese idioma y no se daban cuenta de que iban a cambiar sus programas una y otra vez todo el tiempo. Pero esa fue solo una de las razones. Probablemente lo más importante fue que FORTRAN era más completo. Algol carecía de una buena forma de obtener una salida agradable y legible. Eso nunca fue parte del estándar. No se consideró una programación real para tratar los problemas de entrada / salida. Y FORTRAN tenía una forma que funcionaba. No era elegante, pero ahí estaba. Y dado que Algol no abordó esto bien, creo que ese fue uno de los principales obstáculos en esos días. Entonces Algol nunca tuvo el impulso suficiente para llevarlo a cabo.
Frana: ¿Algol 68 enfatizó eso?
Knuth: Algol 68 casi nunca se implementó en un buen compilador. Era un idioma enorme. Era
demasiado complicado para dedicarle mucho tiempo.
Frana: ¿Hubo algo en la acusación de que "Demasiados cocineros estropean el caldo"?
Knuth: Tenían un comité grande; pero fue realmente Adriaan van Wijngaarden quien tomó las decisiones sobre Algol 68, así que esa no fue la razón. Era un proyecto demasiado ambicioso, como PL / I. Solo para hacer frente a una descripción de idioma de 300 páginas, quiero decir, simplemente no puede hacerlo. Entonces, Niklaus Wirth salió con Pascal, lo que resultó muy atractivo para las personas que querían un lenguaje limpio y pudieran entenderlo.
Frana: Escucho a mucha gente quejarse de la programación estructurada y, sin embargo, mucha gente piensa que es un tema importante.
Knuth: La programación estructurada es importante, por supuesto. Escribí un artículo extenso sobre programación estructurada. Se llamaba “Programación estructurada con declaraciones Ir a”, y en ese artículo tenía de alguna manera cincuenta coautores, porque incorporé una gran cantidad de comentarios de personas de todo el mundo a quienes había distribuido el artículo antes de su publicación. Y traté de defender las ventajas de la programación estructurada y las ventajas de la programación estructurada.
El debate fue una cuestión de forma sobre fondo. Mucha gente pensó que la programación estructurada solo significaba que restringía su programación a no usar ciertas funciones. Y odiaba eso, del mismo modo que Hilbert odiaba las matemáticas intuicionistas, que dicen que no puedes usar la ley de exclusión cuando estás haciendo una demostración matemática. Bueno, no quería ser esposado con prohibiciones de todas las funciones de las que alguien había podido abusar, porque la gente andaba diciendo que tal o cual es "considerado dañino". Sabes que Edsger dijo que la declaración Ir a se considera dañina; y es dañino, si lo abusa. Pero hice un catálogo de todos los errores que encontré en TEX, y el 3 o 4 por ciento de los errores se debieron al mal uso de las declaraciones Ir a, y el 3 o 4 por ciento de los errores se debieron al mal uso de variables globales, y 2- Entre el 3 y el 4 por ciento de los demás se debieron al uso indebido de declaraciones si / entonces, y así sucesivamente. Entonces, si eliminas todo lo que no usé correctamente en algún momento del programa, tendrías que eliminar todas las funciones del lenguaje.
Mi punto de vista era que la programación estructurada seguía siendo una revolución maravillosa, porque nos enseñó
cómo pensar en un programa como si tuviera alguna estructura y nos dio algunas formas intelectualmente manejables de lidiar con la complejidad. Pero la gente solo atacaba la forma.
Frana: Entonces pedías elegancia.
Knuth: estaba pidiendo comprensión y poder tener una forma de comprender el objetivo,
que los abolidores de Go To tendían a olvidar. Pero realmente una declaración Ir a es análoga a una declaración de asignación. Una instrucción de asignación le da a una variable un nuevo valor y una instrucción Ir a le da al control del programa un nuevo valor. Y ambos conceptos no son triviales y deben entenderse. Creo que fue Menabrea quien le preguntó a Charles Babbage "¿Qué pasa si quieres 'Ir a' esta parte de tu programa?" y Babbage no tenía la menor idea de lo que estaba hablando Menabrea. Por tanto, no es un concepto trivial asignar un nuevo valor al control. Significa lógicamente que tienes una cierta abstracción, que corresponde a lo que significa estar en este punto del control. Si no tiene un buen significado abstracto para eso, entonces es muy probable que sus declaraciones "Ir a" lo meta en problemas porque podría estar yendo a lugares donde las abstracciones chocan entre sí. Por eso era muy peligroso usarlos sin disciplina.
Pero todavía encuentro ciertos lugares donde, cuando se usa correctamente, un Ir a es mejor que fingirlo. El hecho de que alguien considere Ir a un pecado mortal no me convence. Es como el movimiento de crecimiento demográfico cero: el objetivo no es realmente tener un crecimiento demográfico cero; el objetivo es mejorar la calidad de vida de las personas. Pero sustituyen un objetivo cuantitativo por el objetivo cualitativo, y eso es como ver la programación estructurada solo como un tipo de programa que no es "Ir a", lo cual es una tontería, y estoy seguro de que Edsger no lo quiso decir de esa manera en absoluto.
Aunque tengo que contarte una pequeña broma. De hecho, di una conferencia en Eindhoven a principios de los 70, y en ese momento estaba escribiendo un algoritmo en la pizarra; era un algoritmo para la coincidencia de patrones en cadenas. Cuando me acerqué al final, dije: "Oh, Edsger, ¿está permitido decir" Ir a "en esta habitación?". Dijo: "Lo veía venir".
[risa]
Frana: Me olvidé de comprobar esto antes de venir aquí, pero ¿estabas en conferencias sobre ingeniería de software en Garmisch o en Roma? ?
Knuth: No.
Frana: No volví a consultar el índice para verlo.
Knuth: No, dejé de ir a conferencias. Fue demasiado desalentador. La programación de computadoras se vuelve cada vez más difícil porque se descubren más cosas. Puedo lidiar con el aprendizaje de una nueva técnica por día, pero no puedo tomar diez en un día de una sola vez. Así que las conferencias son deprimentes; significa que tengo mucho más trabajo por hacer. Si me escondo de la verdad soy mucho más feliz.
Frana: Estoy muy de acuerdo contigo. A menudo voy a una conferencia. Veo una presentación y luego me voy a trabajar por mi cuenta.
Knuth: Bueno, por cada día que paso en una conferencia, necesito cinco o seis días para ponerme al día después.
Por supuesto que es agradable volver a ver a viejos amigos, pero yo había estado allí y lo había hecho a mediados de
los 70.
Frana: ¿Fue “ingeniería de software” un término desafortunado?
Knuth: Ciertamente, a mucha gente le gusta y lo encuentra inspirador. No sé. Nunca me entusiasmó la idea de las métricas de software, que era uno de los pilares de la ingeniería de software. Porque la gente pensaba que, dado que es una disciplina de ingeniería, necesitamos medir las cosas. Piensas, bueno, todo lo que funciona para una rama de la ingeniería funcionará para las demás y todo lo que tenemos que hacer es actuar juntos y ser más disciplinados al respecto y entonces los problemas serán más fáciles. Pero creo que simplemente no habrá un camino real hacia la programación. Una de las mayores ideas de Edsger es comparar la cantidad de esfuerzo intelectual que se dedica a los programas de computadora, en comparación con otros tipos de actividad humana. En física las cosas fallan, pero fallan lentamente; en cierto modo fallan sin problemas. Pero con la lógica no hay continuidad; simplemente sale mal y todo es un desastre. Es algo muy diferente. Hay muchos grandes logros, ya sabes, construir un avión enorme es un gran logro, hacer una película como Blancanieves y los siete enanitos es un gran logro, todo tipo de cosas, enviar personas a la luna, requieren la cooperación masiva de muchas personas. etcétera. Sin embargo, tales logros son diferentes de lo que sucede cuando tiene diez millones de líneas de programa. Entonces, la ingeniería de software espera cambiar eso haciendo que estas líneas de código se parezcan mucho más a la física, de modo que fallen sin problemas o algo así y haya todo tipo de redundancia. De hecho, ayuda un poco, pero no alcanza la meta.
Frana: ¿Terminas con un conjunto diferente de problemas?
Knuth: Empujas el problema, sí, simplemente empujas el problema al regazo de otra persona. No te da la ... Es muy tentador pensar que si enseñamos a todos a usar sus declaraciones correctamente, podrán idear programas que hagan cosas sutiles. Bueno no. Se necesita un pensamiento duro y hay algunas líneas, hay una declaración, si tuviera que cobrar por el programa TEX, hay una declaración que pasó por doce revisiones, y tuve que pensarlo mucho cada vez. Por esa afirmación, diría: "Está bien, págame por esa". Pero no conocería ninguna técnica de ingeniería de software que me hubiera llevado allí sin una cierta cantidad de angustia. Eso es lo que hay detrás de mis comentarios. No hay fórmulas mágicas.
Frana: Eso suena muy similar a algo que me dijo Duane Whitlow sobre SyncSort. [https://www.computerhistory.org/collections/catalog/102702251] Hay una línea, dijo, que realmente es la línea que importa, y en la que tuvo que trabajar más duro.
Knuth: ¿Entonces lo entrevistó?
Frana: De hecho, participó en Xerox PARC el año pasado cuando teníamos una historia de la
Conferencia de la industria de productos de software. Dio un papel.
Knuth: Oh, está bien. ¿Entonces esta fue una de las patentes? Sí, finalmente me enteré ...
Frana: ¿Estabas en la audiencia allí?
Knuth: No, no, pero tenía que localizarlo. Quiero decir, estaba tratando de averiguar qué significaba la L, Duane L.Whitlow, y supongo que es Leroy, de todos modos, y luego tuve que averiguar si escribes con mayúscula la R. Finalmente me puse en contacto con él, pero nunca lo había conocido, no. Pero me gustó la idea de SyncSort, que puse en el Volumen 3 hace un par de años.
Frana: ¿Qué opinas de la “física del software”?
Knuth: No sé qué es eso.
Frana: Es de Ken Kolence ...
Knuth: No sé nada al respecto. Pero creo que está buscando una solución mágica.
Frana: ¿Simplemente no existe?
Knuth: No, podría existir, pero no existe en mi universo. Sé en lo que soy bueno en mi
dominio estrecho. No estoy diciendo que todos en el mundo deberían ser como yo. Solo se que
sea lo que sea que me guste, se correlaciona bien con conseguir que las computadoras hagan cosas buenas.
Pero hay muchas personas que no son como yo y no les gustan las analogías que a mí me gustan. Y si trato de explicarles algo, dirán: "Oh, es mucho más fácil si me entendieras y
haz esto en términos de la ley de la termodinámica "o algo similar. Está bien, pero eso entra por un oído y me sale por el otro. Entonces, cuando dices "física del software", me parece que este tipo viene de otro mundo y tiene su forma de verlo. Su manera puede ser mejor que la mía, pero no es la mía, y dudo que pueda contribuir de una forma u otra.
Frana: Para cambiar un poco de dirección, y perdóname si me equivoco, porque o leo esto
o escuché esto, que en Stanford, durante la guerra de Vietnam, te uniste a los manifestantes. ¿Es así?
Knuth: Bueno, un día Bob Floyd y yo nos sentamos frente al edificio de ciencias de la computación, uniéndonos a los estudiantes que estaban haciendo piquetes. Fue cuando Nixon invadió Camboya. Dijimos: 'Bueno, esto es como el colmo. No podemos seguir trabajando como de costumbre ”. Aunque, en realidad, estábamos hablando entre nosotros sobre algoritmos de clasificación. Y Bob y yo estábamos, de hecho, inventando algunos
clasificando redes mientras estábamos sentados allí. Pero estábamos fuera del edificio porque queríamos ser contados en las estadísticas de personas que decían que tal y tal gente protestó hoy. Y nos pareció que las acciones del gobierno eran simplemente escandalosas.
En general, rara vez tomo una posición en algo, pero lo trabajo para que cuando hago algo, mi
la acción excepcional es significativa. No es que simplemente vaya con cada soplo de viento.
Frana: También habló en contra de SDI [Strategic Defense Initiative (SDI) ] en los años de Reagan, ¿es así?
Knuth: No lo hice. Solo en privado. No creo que alguna vez tomara una posición pública al respecto.
Frana: Debe haber sido una conversación que tuve con alguien entonces.
Knuth: Creo que cualquiera que supiera algo sobre los programas de fiabilidad estaba en contra de SDI. No fui excepcional en este sentido, fue simplemente un despilfarro.
Frana: ¿Sabes que Gio [Wiederhold] en Stanford ha hecho mucha investigación espacial?
Knuth: Nunca supe eso.
Frana: Oh, ¿no sabías eso? Ese fue su primer trabajo. Pasó muchos años en el problema.
Knuth: Solo sabía que se dedicó a la medicina.
Frana: Cohetes de combustible líquido, supongo.
Knuth: Oh, está bien.
Frana: ¿Eso es un problema? ¿Le parece preocupante, en retrospectiva, la investigación de la Guerra Fría que hicieron los científicos informáticos?
Knuth: Bueno, tengo una experiencia muy limitada con eso. Pasé un año trabajando en el IDA* en criptografía y todos los que conocí allí estaban comprometidos con un buen trabajo. No tuve ningún reparo en la parte del servicio gubernamental que vi en mis colegas allí. También sabía que no era natural para mí guardar secretos. Yo era el tipo de persona que quiere ser profesor y contarle todo a los estudiantes, pero trabajando para ellos no podía decirle ni a mi esposa en qué estaba trabajando. Sabes, todavía no le he hablado de eso. No me gustaba ser así. Así que pensé que era un
año de servicio nacional, y me iría, no porque no me gustara, era solo porque
Sabía que mi propia contribución sería mejor en algo donde no tendría que mantener mi
boca cerrada.
Frana: Bueno, pasemos a algo más divertido. Usted, John von Neumann, Leo Szilard y varias otras personas asistieron a la escuela secundaria luterana.
Knuth: Espere un minuto. No puedo creer esto. ¿John von Neumann? Eres tú ...
Frana: John von Neumann fue a una escuela secundaria luterana.
Knuth: No. Pensé que era ... está bien, ¿no es judío? Sabes, conocí a su hermano Nicholas.
Frana: No, no es luterano, pero sí asistió a la escuela secundaria luterana de Budapest.
Knuth: Oh, eso nunca lo supe.
Frana: Y me pregunto si hay algo luterano en la informática.
Knuth: Esta es una pregunta muy difícil de responder. Esto sería como decir, oh, cierta cantidad de personas beben leche pasteurizada cuando son jóvenes, no lo sé. Dudo que la haya. Lutero defendió la idea de actividad intelectual independiente. En religión, quería que tanto su cabeza como su corazón estuvieran allí y no, no quería separarse de la lógica y luego simplemente convertirse en, solo decir que merece ser salvo porque puede creer las cosas más imposibles. Dijo, no, vamos
sigue cuestionando cosas. Y tan seguro, eso correlacionaría. Pero no diría que los luteranos están por delante
de presbiterianos, o musulmanes, ni nada.
Frana: Yo también me crié como luterano, y esa fue mi impresión también, que Lutero era un erudito y eso era algo bueno.
Knuth: Sí, vengo de una tradición en la que puedes cuestionar las cosas. Pero luego, también tienes esto, "Aquí estoy", y tu conciencia, y así sucesivamente. Y eso está bien. Pero yo diría que la forma en que afecta principalmente en mi trabajo científico es el modelo de que Dios sabe lo que estoy pensando. Así que no siento la necesidad de privacidad como lo hace mucha gente. En cierto sentido, creo que nunca tendré privacidad. Desafortunadamente, Edsger tuvo muy malas experiencias con la religión al principio; llegó a ser muy sensible al respecto en sentido negativo.
Frana: Nunca hablamos de eso.
Knuth: Bueno, bien. Una vez insultó a uno de mis estudiantes porque el tipo estaba hablando de programación y Edsger dijo: "¿Te criaron como católico?"
Frana: Vaya. ¿Estaba él en lo cierto?
Knuth: Sí, pero claro que lo era, el tipo era francés. Pero Edsger pensó de alguna manera que había algo católico en su ciencia, lo que no tenía ningún sentido.
Cuando escribí el libro 3:16, descubrí para mi sorpresa que algunas personas tienen sentimientos muy amargos hacia la Iglesia debido a algo que sucedió con sus padres, o algo más. Y este era un aspecto del que simplemente no había sido consciente antes.
Varias docenas de personas con diferentes antecedentes se ofrecieron como voluntarias para leer el primer borrador de ese libro. Entonces tuve ateos, que escribirían cartas de diez páginas, harían comentarios sobre el trabajo, porque también estaban interesados en las ideas, pero también me contaron su historia y yo aprendería de ellos. Y Edsger definitivamente reacciona contra la religión; contra la religión organizada de todos modos.
Pero estoy tratando de explicarles de qué formas realmente interactuó mi educación religiosa con mi vida científica. Y creo que no es que tuviera los mejores profesores de ciencias, o cosas así. Me dio esta sensación de ser parte de un universo impulsado por Dios; sí afectó los modelos que tengo sobre mi propia vida de formas que probablemente tengan algún efecto. Dudo que eso me convierta en un mejor programador o en un peor programador. Solo afecta a qué tipo; ya sabes, no creo que sea adecuado para hacer un trabajo destacado en criptografía porque no soy tan astuto para entender los ataques que alguien podría hacer, y también porque no estoy tan convencido de que necesito mantener el secreto.
Frana: ¿Aceptas la bondad fundamental de la mayoría de los seres humanos?
Knuth: Bueno, sí.
Frana: Tienes esperanza o fe, supongo.
Knuth: Puedo ver la necesidad de un bajo nivel de seguridad, pero no puedo convencerme fácilmente de que la criptografía sólida sea importante. Y tal vez podría, tal vez no, pero de todos modos, debido a mi naturaleza básica, simplemente no creo que yo sea adecuado para ser una persona destacada en ese tipo de trabajo.
Frana: Ahora, la razón por la que le pregunté sobre Lutero y la informática es que hay una larga historia de los oficios de la imprenta en la fe luterana. Así es como comunicaron la Reforma a la gente.
Knuth: Sí, es cierto.
Frana: ¿Eso tuvo algún efecto en tu decisión de hacer tipografía digital?
Knuth: Pudo haber sido implícito porque mi padre trabajaba mucho con la imprenta.
Frana: Oh, ¿lo hizo?
Knuth: Trabajó mucho para todas las iglesias de Milwaukee. Mi padre tenía un mimeógrafo en casa y hacía programas para eventos especiales y ese tipo de cosas.
Frana: ¿Te refieres a programas tipo folletos, no programas de computadora?
Knuth: Correcto. Eso es correcto. Debo tener cuidado. De acuerdo. Y música, especialmente para coros, y cosas así; pasaba mucho tiempo haciendo posibles materiales de bajo costo para el coro. Y no se trataba de una impresión de alta tecnología en absoluto. Era muy del tipo que haces por unos centavos para ayudar. Para él era una misión; no era una forma de ganar dinero. Tenía una empresa, pero no obtenía ganancias con ella. Lo hizo como un servicio. De hecho, lo llamó "sERVice", el servicio de Erv. Su nombre era Ervin.
Frana: ¿Cómo era tu padre? Nunca he leído ningún relato sobre él, aparte de que era organista.
Knuth: Oh, era un buen maestro de ceremonias, una especie de maestro carismático, un director de coro y tenía un buen sentido del humor. Asumió mucha responsabilidad personal por todo lo que hizo y trabajó duro para hacer muchas cosas diferentes. Era tesorero de Lutheran High School, y pagaría a los profesores de su propio bolsillo si no contaba con el dinero del presupuesto. Y se tomó la responsabilidad muy en serio.
Sintió un llamado a la gente local, donde yo siento un llamado a la gente global. No hago tanto por mis propios amigos como él. Hizo todo por sus amigos. Pero tengo gente en Rusia, Polonia y China escribiéndome todo el tiempo para decirme gracias por lo que hiciste. Y esa es una vida completamente diferente a la de mi padre, porque él era el tipo de persona que nunca quiso hacerse un nombre. Estaba muy feliz de saber que había cien personas, amigos cercanos, que estaba mejorando sus vidas y demás. Pero yo, estoy obteniendo gloria por cosas que no toman más tiempo, pero que simplemente están conectadas de una manera diferente.
Frana: Sin embargo, el área de Palo Alto tampoco es como Milwaukee.
Knuth: No. Era el tipo de persona que hace funcionar a Estados Unidos. Él era realmente el lubricante que hacía que las cosas funcionaran. Lo que fuera necesario hacer, lo haría. Y mi mamá es muy similar.
Frana: ¿Sigue viva?
Knuth: Ahora tiene 89 años.
Frana: ¿Tu padre también vivió hasta una edad avanzada?
Knuth: No. Creo que era más joven que yo ahora, 63 tal vez, creo, 62. Murió muy repentinamente. Pero mi mamá aún no está jubilada. Ella trabaja en bienes raíces en el centro de Milwaukee. Y ambos siempre estaban haciendo trabajo voluntario y varias cosas. No es el tipo de cosas que alguna vez sean aclamadas. La educación luterana era realmente el principal objetivo en la vida de mi padre. Y había ido a la universidad en River Forest en Chicago, y luego se convirtió en maestro de primaria en Milwaukee, y luego fue a la escuela secundaria allí. Veía la educación como una misión que podía cumplirse en un ambiente de amor.
Frana: Sí. Ahora eligió compartimentar su fe luterana, al menos al principio. Fue eso por
¿elección?
Knuth: No estoy seguro de a qué te refieres.
Frana: Eras "luterano" el domingo por la mañana.
Knuth: Oh, en ese libro dije ...
Frana: Creo que esa fue la palabra que usaste, "compartimentado".
Pero dije eso porque era, ya sabes, esa era una palabra de moda.
Diría que cuando era joven era bastante mecánico en todos los aspectos. Yo era una máquina para hacer exámenes. Aprendí las materias para poder aprobar los exámenes. Pero solo me interesaban las cosas cuantitativas; cuestiones de elegancia y belleza, y gran literatura, y cosas por el estilo, yo no. . . Yo estaba ... ¿cómo lo llamarías? Tuve problemas de desarrollo en esas áreas hasta que cumplí unos 30 años. Y luego comencé a leer algunos libros geniales, a comprender y a apreciar realmente la buena música. Antes de eso, sabía cómo complacer a mi maestra y podía hacer las frases correctas, pero no tenía esa alma. Pero luego me pasó algo a medida que crecía.
Frana: ¿Qué pasó?
Knuth: No tengo ni idea. Quizás estaba demasiado ocupado o algo así. De todos modos, en todos los aspectos de mi vida traté de obedecer las reglas. Y creo que siempre tuve un complejo de inferioridad. De alguna manera diría bien, tal vez tenga que demostrar que puedo hacer esto. En el fondo de mi mente sabía que era mucho más inteligente de lo que la gente pensaba, pero aun así seguí tratando de demostrar mi valía todo el tiempo, y no estaba haciendo cosas porque quería hacerlo, lo estaba haciendo. porque se suponía que debía hacerlo. No es que odiara hacer el trabajo; Simplemente estaba siendo obediente. Entonces, si fuera el momento de estudiar matemáticas, estudiaría matemáticas o lo que sea. Así que era un poco mecánico en ese sentido. Y fue más tarde cuando comencé a ver más la parte emocional de la vida. ¿Quién sabe cuál es la razón? Probablemente mi esposa me dio eso.
Frana: ¿Dónde la conociste?
Knuth: Ambos éramos estudiantes. Yo estaba en Case y ella en Reserve, y yo salía con su compañera de cuarto y a veces salíamos en citas dobles. Y descubrí que era una persona muy agradable. Así que fui y hablé con ella una vez sobre algunos problemas que estaba teniendo con su compañera de cuarto. Y dio tan buenas respuestas que decidí que me gustaba más.
Frana: La historia más antigua del mundo. Sal con el compañero de cuarto y luego encuentra al otro más atractivo.
Knuth: Sí. Ella estaba un año detrás de mí en la escuela. Pero luego pasamos mucho tiempo en bibliotecas estudiando juntos porque descubrimos que teníamos mucho de lo que nos gustaba hablar.
Frana: Me gustaría hacerle un par de preguntas más sobre la tipografía digital antes de que nos alejemos demasiado de eso. Hay este tentador comentario que haces en uno de tus libros, que una buena tipografía te ayuda a hacer buenos programas, o mejores programas. ¿Que quieres decir con eso?
Knuth: No estoy seguro de haber dicho eso sobre los programas. ... [pausa] Pero, ciertamente, una de las ideas de la programación estructurada y la programación alfabetizada es que tienes que ser capaz de comprender su complicado conjunto: '¿Qué es el programa?'. Entonces necesitas algunas ayudas para esta comprensión, y la tipografía es una de esas ayudas. Con una buena tipografía puedes percibir la estructura, en lugar de imaginar el texto como una cadena caótica de caracteres. Es mucho mejor cuando esos personajes están organizados en una página de una manera razonable. Entonces, la tipografía es en parte la disposición de las cosas, ya sabes, como la sangría. Cosas que están en negrita o cosas que están, ya sabes, en letra pequeña o en cursiva. Y de esa manera, sin esa tipografía, impactará negativamente en la forma en que puedo percibir lo que está pasando.
Frana: La totalidad de eso.
Knuth: Pero tampoco estoy diciendo que la tipografía vaya a ser una fórmula mágica. Solo digo que ayuda mucho. Trabajé, de hecho, con el Journal of the ACM en los años 60, en parte para ayudar a mejorar sus estándares de composición tipográfica de programas de computadora porque era algo nuevo. No se había enfrentado antes. Entonces dije: 'Pensemos seriamente en cuál es la tipografía adecuada para los programas, para la comprensión de las ideas, para hacer entender lo que significa el programa. En esta nueva área deberíamos buscar cuestiones de presentación ".
Frana: Aquí hay una pregunta que es mucho más específica: sé mucho más sobre el algoritmo de Dijkstra que sobre muchos otros algoritmos, porque tuvimos una extensa discusión al respecto. Pero, ¿es muy similar a su algoritmo para encontrar el camino más corto desde la parte superior a la inferior de un párrafo de texto?
Knuth: Es lo mismo. La forma en que utilicé el método es equivalente al algoritmo de Dijkstra, excepto que tengo que construir el gráfico sobre la marcha. Convierto el párrafo en un problema de gráfico, pero descubro algunas partes del gráfico a medida que avanzo, para ahorrar tiempo. Es su algoritmo, pero luego ahorro tiempo al no incluir cosas que lo ralentizarían. Por ejemplo, no tiene sentido explorar lo que sucedería si detuvieras el párrafo partiendo una línea después de la primera palabra. Claro. Así que solo busco los puntos de ruptura factibles. Y aprendo cuáles son los puntos de interrupción factibles aplicando el algoritmo de Dijkstra, y mientras lo estoy aplicando sé que algunas cosas no son factibles, así que ni siquiera las considero. Por tanto, es una extensión del método de Dijkstra.
Pero también lo es, también puede verlo como lo que ellos llaman programación dinámica, porque la programación dinámica discreta es esencialmente idéntica a encontrar el camino más corto. Entonces, hay muchos puntos de vista que se reducen al mismo problema subyacente.
Frana: Está bien. Hace unos años, en una entrevista, dijo que la informática, como la mayoría de las otras ciencias, crece principalmente a través de muchos pequeños pasos en lugar de gigantes.
Knuth: Oh, ¿lo hice? Si claro.
[risa]
Frana: Creo que usaste la palabra "principalmente" como calificativo. ¿Ha habido algunos pasos gigantes?
Knuth: Sí, la idea de la programación estructurada es un paso gigantesco, pero esos son pocos y distantes entre sí. Así que mírelo esta noche durante la sesión de preguntas y respuestas. Alguien dirá: "¿Cuáles crees que son los cinco algoritmos principales?", Ya sabes, o algo similar. Odio ese tipo de preguntas, porque esa no es realmente la forma en que la ciencia crece. Lo importante no son los cinco primeros; son los cinco últimos. Es solo que siempre hay cinco más. Y toda la estructura se junta con pequeños pasos. Desafortunadamente, no puede explicarle eso a un congresista que va a financiar la NSF. Hay que decirle al congresista que tenemos este gran proyecto, y vamos a poner estos objetivos y todo esto. Pero, en realidad, si se toma a todos los científicos y se les dice: "Haz lo que creas que es interesante", obtendrás la mejor ciencia.
Frana: Supongo que sabes un poco más que la mayoría de los científicos sobre la historia de la ciencia.
Knuth: Algunas partes.
Frana: ¿Ve esto como un proceso acumulativo? ¿Que estamos todos sobre los hombros de gigantes? ¿O existen paradigmas kuhnianos?
Knuth: Creo que aprendemos mejor al estudiar el pasado y ver cómo otras personas tuvieron sus ideas, y aprender el proceso de aprendizaje por ósmosis después de ver todos estos ejemplos. Y ciertamente lo más sorprendente para mí es que los seres humanos pueden volver a su historia y ver lo que los humanos anteriores han hecho y cambiar debido a eso. Los animales no lo hacen ... o lo hacen muy lentamente. Y esto es clave para mí, mirar los materiales originales y ver cómo eran las ideas cuando estaban en bruto. No podría haber sido tan eficaz si no hubiera leído muchísimo cosas de muchos siglos anteriores. Si es necesario, conseguiré un amigo para que me ayude con el chino, el japonés, el húngaro o lo que sea, pero siempre estoy mirando escritos de épocas anteriores que están relacionados con lo que estoy persiguiendo ahora. Porque para mí, la forma en que evolucionaron los humanos es fundamental para la historia. Tal vez sea solo porque soy tan egoísta que quiero que la gente lea mis cosas en el futuro, así que leo las cosas de otras personas para pagar mis deudas.
Frana: Bueno, sabes muy bien, sin embargo, que el pasado puede ser un lugar extraño. En astronomía, por ejemplo, tenemos el universo geocéntrico.
Knuth: Tienes que ponerte en la mente de los antiguos. Durante dos semanas en 1972, escribí un artículo sobre los algoritmos babilónicos. Y me rodeé de textos babilónicos durante dos semanas. Me sumergí en la lectura de tantas tabletas como pude para poder decir: "Oh, sí, esto es inusual" o "esto es lo mismo de siempre, lo mismo de siempre", cuando estaba mirando otra tableta. Y podría empezar a intentar meterme en la mente de esos autores. Tenían una cierta forma de expresar las cosas. No usarían álgebra, pero tenían un equivalente. Así que trato de aprender qué significan sus símbolos e interpretar su lenguaje. Esto es lo que impide que mucha gente lea las fuentes. Es porque no quieren, o no pueden, ver o volver a aprender las notaciones. Eso significa que, al igual que con la música, tienes que decidir si vas a aprender la otra notación o convertirla en la tuya propia. Con las matemáticas, normalmente puedo hacerlo sin demasiado esfuerzo. Pero se necesitan algunas horas de adaptación. Con un poco de experiencia, eso también se vuelve más fácil para usted. La música, creo, sería más difícil. Ciertamente, algunas de las notaciones en la música son tan ilógicas que solo se pueden aprender después de años de entrenamiento.
Frana: Ha comentado varias veces que tal vez 1 de cada 50 personas tiene la "mente del científico informático".
Knuth: Sí.
Frana: Me pregunto si una gran cantidad de esas personas son bibliotecarios profesionales capacitados. [risas] Hay algo de extrañeza ahí. Pero, ¿puede precisar qué hay en la mente del científico informático que es ...
Knuth: ¿Eso es diferente?
Frana: ¿Cuáles son las características?
Knuth: Dos cosas: una es la capacidad de lidiar con una estructura no uniforme, donde tienes el caso uno, el caso dos, el caso tres, el caso cuatro. O que tiene un modelo de algo donde el primer componente es un número entero, el siguiente componente es un booleano y el siguiente componente es un número real, o algo así, ya sabe, una estructura no uniforme. Es fundamental tratar con fluidez ese tipo de entidades, lo que no es típico en otras ramas de las matemáticas. Y la otra habilidad característica es cambiar de nivel rápidamente, de mirar algo en lo grande a mirar algo en lo pequeño, y muchos niveles intermedios, saltando de un nivel de abstracción a otro. Sabes que, cuando estás sumando uno a algún número, en realidad te estás acercando a algún objetivo general. Me parece que estas habilidades, poder tratar con objetos no uniformes y ver a través de las cosas desde el nivel superior hasta el nivel inferior, son muy esenciales para la programación de computadoras. Pero tal vez me estoy engañando porque estoy demasiado cerca de eso.
Frana: Lo más difícil es comprender realmente aquello en lo que estás dentro.
Knuth: Sí.
Frana: Tenía una pregunta de seguimiento allí, pero ahora la he perdido.
Knuth: ¿Se trata del 2 por ciento? Estoy pensando que tenemos que darnos cuenta de que hay personas a las que no podemos entender muy bien el otro 98 por ciento, y no nos pueden entender muy bien. Pero construimos puentes. Podemos hacernos amigos de alguien que esté más cerca de nosotros y formar una red de personas que unan las cosas. Estoy seguro de que no puedo escribir el manual de usuario adecuado para mi madre; pero podría colaborar con alguien que pudiera hacerlo de la manera correcta. Algunas personas tienen esta otra noción de que puedes cambiarte a ti mismo para pensar de otra manera. Pero eso solo es cierto hasta cierto punto. Aquí hay un ejemplo que surgió en una discusión reciente en Alemania: ¿Qué pasa si la computación cuántica se hace cargo? ¿Qué pasa si de repente la gente puede fabricar estas cosas, que requieren una forma completamente diferente de escribir programas? Bien, bien podría ser cierto que no soy nada bueno en la computación cuántica y que no voy a poder cambiar. (Y sería fácil para mí escribir El arte de la programación informática si nadie estuviera haciendo programas a la antigua, así no tendría que seguir el ritmo de la literatura). Pero tengo una cierta forma de pulir las cosas que soy bueno y no es solo que lo estudié en la universidad; es que tengo esta peculiar forma de pensar.
Frana: Como algunas personas tienen dificultades con la arquitectura cliente / servidor. Los viejos tipos de mainframe que simplemente, me dicen, simplemente no lo entienden.
Knuth: Sí. Puedo entender. También es como su tipo de física del software. Pero ya sabes, necesitan "conseguirlo" de alguna otra manera, así que déjalos ser felices y ponerlo en su camino. Y tal vez la nueva forma sea mejor, pero nunca podré hacerlo porque soy diferente. Creo que en informática no hay un enfoque limitado. Es bastante diferente de muchos otros campos, porque somos seleccionados por nuestras habilidades, por nuestro perfil de habilidades, no por nuestra misión de computación. La gente ingresa a la medicina con diferentes tipos de habilidades y cosas; su carrera se basa en el objetivo de salvar vidas, hacer vidas más saludables, lo que sea. Pero mi carrera es diferente. Es algo en lo que soy bueno y otras personas están felices de que sea bueno en eso, así que lo haré. Pero no estoy promoviendo una causa, como la medicina.
Frana: ¿Sientes ahora que hay más, -odio esta palabra-, pero más ciencia "normal" en la actualidad en la informática? Quiero decir, computación cuántica, quién sabe si funcionará, todavía está en el futuro.
Knuth: Bueno, hay todo tipo de colaboraciones. Y es que, a medida que los campos se vuelven más especializados, creo que la tendencia va a ser más que la gente se defina a sí misma por tener dos sub-especialidades. Es decir, creo que dije esto antes, donde vas a ser una persona que resulta ser buena en una cosa: eso podría estar relacionado con la informática, y algo más: eso podría estar relacionado con la química.
Frana: ¿Entonces estará definido por dos sub-subespecialidades?
Knuth: Sí, claro, y esto hará una especie de red de disciplinas. Y va a ser difícil para el control de calidad porque no habrá tantas personas con las mismas dos sub-especialidades que podrán revisarse entre sí. Será más difícil estar en los comités de tenencia en esos días. Pero parece inevitable que el mundo vaya a tener que ir a ese tipo de modelo en el que las personas tienen dos focos, una combinación de habilidades que las hace únicas; se darán cuenta de que es por eso que nacieron, porque pueden ayudar a cerrar esta brecha. Y hay tantas cosas diferentes para tender un puente en la ciencia. Encuentro que hay muchas partes de la ciencia en las que puedo estar interesado desde un punto de vista externo, pero nunca puedo sentir que podría hacerlo yo mismo. Y hay otras partes en las que siento que es mi misión hacerlo y soy parte de ello. Seguimos volviendo a Dijkstra porque es una de las personas más universales que conozco. Casi cualquier tema del que habláramos sabría muchísimo al respecto.
Frana: Pero si se me permite, tendría que decir que existes en el otro mundo, entre el otro 98 por ciento de nosotros, mucho mejor que él.
Knuth: Bueno, es interesante que digas eso. Los escritos de Dijkstra pueden ser más especializados, pero no sus conversaciones informales.
Frana: Parece que eres capaz de dar ese salto.
Knuth: Bueno, no estoy seguro. Como estudiante descubrí que todo lo que hacía en esos días, me parecía, era una mezcla de matemáticas y escritura. Que una vez que tuve esas habilidades, las estaba aplicando en diferentes proporciones.
Frana: Dijiste en tu conferencia de Turing que, "La ciencia es lo que entendemos lo suficientemente bien como para explicarle a la computadora, el arte es todo lo demás".
Knuth: Sí, sí.
Frana: Pero entonces, ¿por qué llamar a la serie “El arte de la programación informática”?
Knuth: Como no lo entendemos, no lo hemos convertido en automático. Todavía no tenemos un algoritmo para escribir los programas. Estamos tratando de convertir la programación en una ciencia, pero a medida que lo hacemos, el arte sigue adelante. A medida que avanza la ciencia, el arte se mantiene tal vez un par de saltos por delante, hasta ahora. Y luego también creo que estoy describiendo el arte de la programación de computadoras por su elegancia, su belleza, su estética.
Frana: ¿Así que lo consideras realmente una ciencia y un arte?
Knuth: Existe el arte, en el sentido de bellas artes, y luego está el arte en el sentido de artificial, no en la naturaleza. En mi conferencia de Turing traté de meditar sobre por qué lo llamo El arte de la programación informática y qué significa. Fui a la biblioteca y encontré cincuenta libros que tenían tanto la palabra arte como la ciencia en sus títulos. Y miré la palabra en la historia para saber cómo se usaba. Y llegué a la conclusión de que la forma correcta de entenderlo es que el arte se convierte en ciencia cuando llegamos a un nivel en el que ya no necesitamos pensar en ello, podemos programarlo. Y ese es el mayor misterio, al menos en la ciencia actual, es lo que significa saber algo, tener cognición. Es un misterio qué es la conciencia, pero si supiéramos qué es la conciencia, entonces mi definición no funcionaría. Estoy diciendo que una vez que cruzamos la brecha desde el punto de necesitar un cerebro para entenderlo, una vez que la computadora lo entendería, entonces se convierte en ciencia.
Frana: No sería muy divertido si realmente entendiéramos la conciencia, ¿verdad?
Knuth: Bueno, ¿quién sabe? [risa]
Frana: Creo que tal vez pasemos a un nivel diferente de conciencia.
Knuth: Sí, claro, tal vez saltemos adelante de nuevo.
Frana: No sé si ha leído El hombre de Turing de Bolter o alguna de estas críticas a la visión cibernética de la sociedad. ¿Nos hemos convertido en nuestras máquinas?
Knuth: Ese tipo de cosas, lo más que he pensado en ellas está en mi libro, en las conferencias del MIT. La intuición que obtuve al estudiar el juego de la vida fue lo más cercano que llegué a
comprender algunos de estos problemas. Y otras personas están muy por delante de mí en esas cosas. Pero vale la pena explorar todo esto. Una vez más, es como la astronomía, nunca se puede "salir". Así que estoy más feliz de tener la mayoría de mis preguntas en términos en los que sé que tengo las respuestas.
Frana: ¿Pero no ves que la sociedad se ha vuelto digital?
Knuth: Ciertamente, el mundo ha cambiado mucho más rápido en algunos aspectos de lo que jamás pensé, y las computadoras se han vuelto mucho más relevantes para el mundo de lo que hubiera creído posible. Sigue siendo un oxímoron hablar de un "científico informático famoso", pero creo que estamos recibiendo demasiada atención; demasiado crédito por cosas en comparación con otras ciencias. Pero eso desaparecerá.
Frana: Esta es una pregunta terriblemente injusta, pero estuve en el Valle hace un año en esta epoca, y luego nuevamente este año. Y a juzgar por la cantidad de escaparates vacíos, las cosas realmente han cambiado aquí desde esta época el año pasado. ¿Qué sucedió?
Knuth: Bueno, ciertamente el año pasado fue la cima del boom. Pero si miras a Iowa, o en cualquier otro lugar, encontrarás que hay mucha rotación dondequiera que vayas y que la economía se reinventa todo el tiempo. Hay ciclos. Así que ha habido, durante mucho tiempo, y ahora toda la economía mundial está pasando por un ajuste. Los historiadores del futuro podrían pensar que el año pasado fue el momento en que el auge estaba en su apogeo. En otras palabras, había tal escasez de mano de obra calificada, donde cualquier cosa que quisieras tenías más ideas para hacer que personas para hacerlas. Así que este tipo se construye sobre sí mismo.
Frana: ¿Pero luego nos quedamos sin ideas?
Knuth: No. No. Tienes que llegar al punto en el que tienes que conseguir las personas de calidad, en lugar de a las que solo están en el camino. Pero soy escritor y no sé mucho sobre dinero.
Frana: Sé que esta es una pregunta terriblemente injusta. Dicen que ha habido ocho ciclos de auge y caída desde la Segunda Guerra Mundial solo en esta industria, y este es solo otro. Pero luego hay personas que dicen que realmente es diferente, y hemos construido algo durante los 90 que era una especie de esquema piramidal.
Knuth: No. No creo eso. El mundo es diferente en cierto modo, es decir, no se vuelve a la época anterior a Internet. Se debe juzgar cuánto y de qué manera la gente va a pagar por este nuevo mundo donde son posibles algunas cosas que nunca antes fueron posibles. Así que ahora tienes que pensar cuál es una forma justa de compensar esto, qué podemos manejar y cómo hacerlo. Nadie tiene una buena manera de decidir eso, excepto por ensayo y error. Es como si dentro de nuestro cuerpo hubiera todo tipo de células que atacan a otras células todo el tiempo y luchan contra ellas, y esa parece ser la mejor manera de hacer frente a cambios complejos. Es caótico, estos corpúsculos van tras otras cosas y hay una guerra allí, y no es solo alguien que aplica el algoritmo de Dijkstra para encontrar el camino más corto. Compites.
Frana: ¿Estamos restaurando el equilibrio y recuperando la homeostasis?
Knuth: Sí, algo así. Pero el hecho es que existe un gran potencial, que llevará años de trabajo, que las máquinas que tenemos ahora no han logrado. Y es difícil hacer esos trabajos y requiere mucho trabajo. Pero nunca voy a decir que es una idea estúpida hacer este trabajo y todos deberíamos dejar de trabajar en él porque nadie lo va a comprar. Eso sería lo más tonto posible. Todas estas habilidades que tiene la gente aquí son vitales y, de hecho, vamos a necesitar millones más de personas así, y mi regla del 2 por ciento predice que no habrá suficientes. Siempre habrá una escasez de habilidades orientadas a la informática, y estamos lejos de explotar estas computadoras como son hoy para lo que podrían estar haciendo por nosotros.
Frana: Ahora tengo que comprobarlo aquí, pero ¿supervisaste veintiocho doctores?
Knuth: Sí.
Frana: Entiendo cómo Stanford proporciona capital inicial a los estudiantes que tienen ideas. Pero, ¿alguno de sus estudiantes recibió ese tipo de ayuda para comenzar y la mayoría de ellos son universitarios hoy en día, o algunos de ellos están en la industria privada?
Knuth: Creo que son la mitad y la mitad entre la industria y los académicos. Mi estudiante brasileño, creo, hizo una especie de construcción de empresa. He perdido el contacto con uno o dos de ellos, pero creo que en la industria, en su mayoría, han estado trabajando en laboratorios de investigación, no fundando nada ellos mismos, sino formando parte de un equipo que alguien más está administrando. En la universidad han estado presidiendo algunos departamentos y cosas así, ¡pero eso no es lo mismo que iniciar Yahoo !. Pero yo diría que esos veintiocho estudiantes eran veintiocho chicos completamente diferentes. Es como demostrar mi punto de vista de que los informáticos saben cómo tratar diferentes casos.
Frana: Ese es un buen ejemplo del mundo real. Entiendo que la gente es impredecible de esa manera. ¿Algunos de ellos se han convertido en sus confidentes más cercanos?
Knuth: Estamos cerca de diferentes maneras. Así que diría que he perdido el rastro de algunos de ellos, pero con otros nos ayudamos cuando nuestra computadora falla, o trabajamos juntos en proyectos editoriales, o lo que sea.
Frana: Solo para repetir la pregunta, con la informática en su conjunto, o la academia en su conjunto, ¿puede nombrar a las personas que son sus confidentes más cercanos? ¿Personas a las que sientes que puedes llamar y compartir una idea?
Knuth: Mi esposa. Además, mientras escribo borradores, independientemente de las personas que sean expertos en la sección en la que estoy trabajando, siempre les envío materiales para que los revisen. Por ejemplo, la semana pasada le propuse una idea a la profesora Carla Savage en Carolina del Norte. La conocí solo una vez, y no la llamaría mi confidente más cercana; pero de alguna manera, sobre el tema en el que estoy trabajando ahora, es algo en lo que ella tiene muchas publicaciones. Entonces le dije: 'Carla, ¿qué piensas de este problema? Trabajé en ello durante cuatro horas. No puedo conseguirlo, pero no quiero simplemente tirarlo a la papelera, así que incluso podría tener tiempo para ponerlo en mi libro. 'Entonces ella dijo,' Oye Don, es un buen problema y yo creo que puedo hacerlo '. Al día siguiente, ella me envió una respuesta y yo miré la respuesta y dije:' Sí, solo lo adapto de esta manera y ahora creo que está bien, y lo pondré en mi libro. Es elegante y hermoso ”. Ese es solo un ejemplo de la forma en que estoy trabajando ahora. Ya ves, trabajo por lotes. Cada seis semanas estoy en una subcultura diferente de la informática mientras escribo una parte diferente de los materiales para El arte de la programación informática. Y durante esas seis semanas tengo un grupo diferente de confidentes más cercanos.
Frana: Te entiendo. Entonces, ¿realmente tienes un grupo muy amplio de colaboradores?
Knuth: Sí. Es fantástico la cantidad de personas que me han ayudado con esto. Y luego puse cosas nuevas en Internet, y en una semana recibo cien cartas. Un niño de catorce años en Alemania señaló recientemente que escribí mal Nuremberg. (Dije Nuremburg.) Estoy recibiendo
tremenda ayuda.
Frana: ¿Y esta es una de las razones por las que ya no usa tanto el correo electrónico?
Knuth: Oh, nunca haría nada.
Frana: De esta manera, aún puede enviar tantos mensajes como desee.
Knuth: Puedo usar la Web, donde las personas interesadas pueden encontrar este material. No se los envío, pero lo encuentran si lo buscan. Pero con Carla, le envié el mensaje porque sabía que ella era una experta en este tema y que no le importaría que la interrumpieran.
Frana: Esta es la última pregunta que tengo, pero puede haber otras cosas que le gustaría contribuir a esta entrevista. Y tal vez encuentre la respuesta esta noche en Xerox PARC: ¿Qué le parecería ser el portavoz principal de la informática?
Knuth: No sé si lo soy.
Frana: Otros han dicho eso.
Knuth: Puedo ser un escritor que intente organizar las ideas de otras personas en una especie de estructura más coherente para que sea más fácil juntarlas. Puedo ver que podría ser visto como un erudito que hace todo lo posible para verificar las fuentes del material, de modo que la gente obtenga el crédito donde se debe. Y para revisar los hechos, no solo para mirar el resumen de algo, sino para ver cuáles fueron los métodos que lo hicieron y para llenar los huecos si es necesario. Considero que mi función consiste en poder comprender las motivaciones y la terminología de un grupo de especialistas y resumirla hasta cierto punto para que la gente de otras partes del campo pueda utilizarla. Intento escuchar a los teóricos y seleccionar lo que han hecho que es importante para el programador de la calle; eliminar la jerga técnica cuando sea posible.
Pero nunca he sido bueno en ningún tipo de función que fuera la formulación de políticas, o asesorar a la gente sobre estrategias o qué hacer. Siempre he sido el mejor en refinar las cosas que están ahí y poner orden en el caos. A veces planteo nuevas ideas que pueden estimular a la gente, pero no realmente de una manera que controle el flujo. La única vez que he defendido algo enérgicamente fue con la programación alfabetizada; pero hago esto siempre con la advertencia de que funciona para mí, sin saber si funcionaría para alguien más. Cuando trabajo con un sistema que he creado yo mismo, siempre puedo cambiarlo si no me gusta. Pero todos los que trabajan con mi sistema tienen que trabajar con lo que les doy. Así que no puedo juzgar mis propias cosas de manera imparcial.
De todos modos, siempre me he sentido mal si alguien dice: 'Don, pronostica el futuro' o 'Don, vota a favor o en contra de algo'. Pero siempre me he sentido cómodo con 'Don, ¿puedes escribir una exposición? sobre esto, ¿o puede verificar estos hechos? ”Eso es lo que creo que hago razonablemente bien.
Ahora, por supuesto, hay gente que piensa que mis libros son completamente imposibles de entender. Puedo simpatizar con eso. Cuando era estudiante escuchaba a otros estudiantes y decían: "Oh, aquí hay un libro de William Feller sobre probabilidad, es realmente difícil de entender". Así que nunca creí que sería capaz de entender una palabra de lo que dijo Feller y no leí sus libros hasta unos diez años después. Finalmente, cuando tuve el valor de abrirlos, encontré una exposición maravillosa.
Pero aún así, no puedo decir que mis libros sean fáciles de entender. Todo lo que puedo decir es que son mucho más fáciles de entender que con lo que he trabajado. Me he acercado a una presentación simple, pero tal vez no he llegado hasta el final. Trato de no usar la jerga excepto cuando sea necesario. Así que nunca he usado la palabra “biyección” todavía en The Art. Podría, pero ¿por qué? Algún día, si lo necesito, lo haré, pero no uso terminología aterradora. Conozco a algunas personas que piensan que palabras como esas son hipermatemáticas. Así que reduzco las cosas y utilizo un nivel de matemáticas que tengo que hacerlo, cuando es necesario, pero trato de traducir de las diferentes subculturas que mis fuentes estan en otro idioma.
Ayer recibí una carta de un tipo que dijo que no sabía a qué me refería cuando dije "paridad". Y entonces me di cuenta, ya sabes, pensé que todos sabían que la paridad significaba la distinción entre pares o impares. Pero no, este tipo no sabía eso y estaba realmente motivado, así que recibí ayuda de él. Pero lo que estoy tratando de decir es que la redacción técnica es lo que hago bien. ¿Pero como portavoz de la informática? Soy más un portavoz para los informáticos.
Frana: Que por la informática.
Knuth: Sí, tratando de repetir las cosas que han hecho mis colegas de una manera que las haga más memorables o más fáciles de combinar. Entonces, esto significa que debo leer cosas de muchas fuentes, como todas esas carpetas que les mostré arriba, y algunas provienen de físicos, y algunas provienen de ingenieros eléctricos, algunas provienen del trabajo en IA, algunas provienen de la complejidad. teoría, etc. Y aprendo sus palabras de moda, pero no las uso yo mismo a menos que sea necesario. Eso es lo que mejor hago.
Frana: Esperemos que estemos al menos diez mil días más para esto, pero ¿has pensado en un epitafio apropiado?
Knuth: Epitafio. No. No. No. Todavía estoy vivo. [risas] Eso es interesante, gente que escribió su propio epitafio. No, dejaré que alguien más haga eso. Pero tal vez debería ser alfamético.
FIN DE LA ENTREVISTA.