Esta entrevista fue originalmente realizada en inglés por email. Por tanto, primero se ofrece una traducción al español, y al final, se encuentra la versión original.
This interview was originally conducted in English by email. The Spanish translation is provided first, followed by the original version.
William J. Rapaport es un destacado filósofo estadounidense de la Universidad de Buffalo. Actualmente ocupa el puesto de profesor emérito distinguido del departamento de ciencia de la computación e ingeniería. Ha publicado más de ciento treinta artículos de investigación, y ha sido galardonado con premios tales como el Barwise Award y el Covey Award. Aunque se jubiló el 12 de enero de 2012, sigue investigando y escribiendo.
Este año publicó su libro Philosophy of Computer Science: An Introduction to the Issues and the Literature (editorial Wiley, 2023), una obra que reúne todas sus enseñanzas en filosofía de la ciencia de la computación.
¡Así que la entrevista no podía ocurrir en un momento más oportuno!
¡Espero la disfruten!1

Versión traducida
Camilo: (1) Has dedicado gran parte de tu vida académica a investigar la Filosofía de la ciencia de la computación. Además, fuiste uno de los primeros en crear un curso titulado Philosophy of Computer Science: An Introductory Course (2005). Dado que muchos lectores de este newsletter son desarrolladores de software y no están familiarizados con la filosofía, ¿qué es la filosofía de la ciencia de la computación y cómo se relaciona con la ciencia de la computación y el desarrollo de software?
William: En filosofía se dice que, para cualquier X, existe una filosofía de X, es decir, que se puede filosofar sobre cualquier cosa, ¡incluida, por supuesto, la ciencia de la computación! En mi libro (Philosophy of Computer Science: An Introduction to the Issues and the Literature (Wiley, 2023)), caracterizo la filosofía como la búsqueda personal de la verdad, en cualquier campo, por medios racionales. Así, la filosofía de la ciencia de la computación es la búsqueda personal de la verdad sobre la ciencia de la computación por medios racionales.
Es una rama de la filosofía de la ciencia (¡y eso es cierto tanto si la ciencia de la computación es una «ciencia» como si no!), que es la investigación filosófica de la naturaleza de la ciencia en general (incluyendo campos científicos como la ingeniería, las matemáticas y, por supuesto, la ciencia de la computación) y de las ciencias individuales en particular.
Considero que las cuestiones fundamentales de la filosofía de la ciencia de la computación son las siguientes:
¿Qué es la ciencia de la computación? ¿Es una ciencia? ¿O es una rama de la ingeniería? ¿O es una combinación de ambas? ¿O es algo totalmente distinto? (Y para responder a estas preguntas, debemos preguntarnos qué es la ciencia y qué es la ingeniería).
¿Qué estudia la ciencia de la computación? ¿Los ordenadores? ¿La ciencia de la computación? Y estas preguntas llevan a otras: ¿Qué es un ordenador? ¿Qué es la computación? ¿Qué es un algoritmo? ¿Qué es una máquina de Turing?
Una de las propuestas fundamentales de la ciencia de la computación es la tesis de Church-Turing sobre la computabilidad,2 según la cual nuestra noción intuitiva de computación queda totalmente recogida en la noción matemática de máquina de Turing. ¿Ésta es verdadera? Está bastante claro que todos los cálculos de una máquina de Turing son cálculos en el sentido intuitivo. Pero, ¿podría haber computaciones que no sean computables por una Máquina de Turing, como recetas, hipercomputaciones3, computaciones interactivas, computaciones neuronales, etc.?
La filosofía también puede investigar el desarrollo de software. Algunas preguntas relevantes en este sentido son:
¿Qué es un programa informático? ¿Qué relación tiene con una especificación?
¿Qué es una implementación?
¿Cómo se relacionan los programas y la computación con el mundo físico real?
¿Pueden (¿algunos? ¿todos?) los programas considerarse teorías (científicas)?
¿Cuál es la diferencia entre software y hardware?
¿Pueden (y deben) verificarse lógicamente los programas antes de ejecutarlos?
Camilo: (2) ¿Qué despertó tu interés por la filosofía de la ciencia de la computación? Lo pregunto porque mucha gente la confunde con la filosofía de la inteligencia artificial (que es, por un lado, más antigua y, por otro, trata el problema de si el software puede alcanzar la singularidad [AGI]). Y además, como sabemos, la filosofía de la inteligencia artificial es más popular que la filosofía de la ciencia de la computación.
William: Considero que la filosofía de la IA es una parte propia de la filosofía de la ciencia de la computación, aunque también se solapa con otras ramas de la filosofía, como la filosofía de la mente y la filosofía del lenguaje. Podría decirse que la filosofía de la IA es más antigua que la filosofía de la ciencia de la computación, pues se remonta al menos al artículo de Turing de 1950, Computing Machinery and Intelligence, publicado en la revista británica de filosofía Mind.
Yo impartí un curso de filosofía de la IA en 1983, cuando estaba en el departamento de filosofía del State University of New York College at Fredonia (véase mi artículo Philosophy of Artificial Intelligence: A Course Outline, Teaching Philosophy 9 (2) (junio de 1986): 103-120; https://cse.buffalo.edu/~rapaport/Papers/rapaport1986-PhilAI-TchgPhil.pdf). En 2004, mucho después de incorporarme al departamento de ciencia de la computación de la Universidad Estatal de Nueva York en Buffalo (donde investigaba sobre IA simbólica a la antigua usanza), buscaba un tema para un seminario y decidí que sería divertido impartir un curso sobre filosofía de la ciencia de la computación.
Me sorprendió un poco comprobar que prácticamente no había cursos ni libros de texto sobre ese tema. (Había algunos, pero no cubrían realmente los temas que me interesaban). Así que decidí crear mi propio curso desde cero. Lo impartí varias veces y decidí que un buen proyecto de jubilación sería escribir mis apuntes como libro de texto. Ahora, por supuesto, la filosofía de la ciencia de la computación es un área reconocida, y me complace haber podido hacer una pequeña contribución a ella.
Camilo: (3) En cuanto a la filosofía, se centra en hacer grandes preguntas más que en dar respuestas. ¿Cuáles son algunas de las preguntas sobre la filosofía de la ciencia de la computación que te han intrigado en tu carrera, y por qué?
William: Véase mi respuesta a la primera pregunta más arriba :-) Supongo que las dos cuestiones que más me interesan son la naturaleza de la computación y la relación de la computación abstracta y matemática con el mundo real, en particular, si todas las computaciones deben tener objetivos o propósitos (prácticos). Como digo en mi libro, ¿tiene una computación la forma «Haz A» (donde A es un algoritmo) o la forma «Para lograr el objetivo G, haz A»?4
Camilo: (4) En el artículo de 2009 The Profession of IT Computing's Paradigm, Peter J. Denning y Peter A. Freeman sostienen que la ciencia de la computación es un nuevo paradigma que engloba las matemáticas, la ciencia y la ingeniería. ¿Es esta perspectiva más valiosa que la simple categorización de la ciencia de la computación como ciencia? ¿Deberíamos defender el término «ciencia de la computación»?
William: No estoy seguro de que sea un «paradigma» totalmente nuevo, ni tengo ningún problema con el nombre. En mi libro, lo llamo «CS», entendido como una abreviatura de la frase de una sola palabra «computerscience»,5 para no plantear ninguna pregunta sobre si es «realmente» una ciencia. (Es concebible que «ciencia» no tenga más que ver con «ciencia de la computación» de lo que «gato» tiene que ver con el ganado).
Después de investigar varios argumentos sobre la naturaleza de la ciencia de la computación, concluyo al final del libro que la mejor manera de pensar en ella es en términos de las cinco grandes preguntas a las que intenta dar respuesta:
¿Qué es el cálculo, qué se puede calcular y cómo?
¿Qué se puede calcular eficazmente y cómo?
¿Qué se puede calcular en la práctica y cómo?
¿Qué se puede calcular físicamente y cómo?
¿Qué se puede calcular éticamente y cómo?
(La filosofía de la IA entra dentro de la pregunta 1: ¿Puede computarse la cognición?).
Creo que la pregunta que más se pasa por alto, pero que cada vez cobra más importancia, sobre todo a la luz de programas como ChatGPT, es la pregunta 5: la computación ética.
Camilo: (5) Los programadores a menudo se centran únicamente en la utilidad, lo que conduce a un pensamiento centrado en la tecnología. ¿Puede la filosofía de la ciencia de la computación ampliar nuestras perspectivas? Esto queda en evidencia cuando usamos conceptos como «algoritmo», «software» y «programas» sin comprenderlos plenamente.
William: Espero que la investigación filosófica sobre la naturaleza de los algoritmos, el software y los programas nos ayude a entenderlos mejor. Creo que la filosofía en general (y, por supuesto, la filosofía de la ciencia de la computación en particular) puede ayudarnos a ampliar nuestras perspectivas al permitirnos ver la forma en que muchas cuestiones están interconectadas.
Siempre me ha parecido fascinante que la mayoría de los comentarios positivos que recibí de los lectores de los primeros borradores de mi libro procedieran de ingenieros de software y programadores, ¡justo esas personas que usted caracteriza como centradas en la utilidad!
Camilo: (6) Recientemente has publicado tu libro Philosophy of Computer Science: An Introduction to the Issues and the Literature (2023), que es uno de los pocos sobre el tema. ¿En qué se diferencia de Computational Artifacts: Towards a Philosophy of Computer Science (2018) y The Science of Computing: Shaping a Discipline (2014), de Raymond Turner y Matti Tedre, respectivamente?
William: Me he beneficiado mucho tanto del trabajo de Turner como el de Tedre.
El libro de Turner es una monografía profesional, mientras que el mío está pensado principalmente como libro de texto. Por lo tanto, el mío está dirigido a un público distinto del de los filósofos o informáticos profesionales (excepto, quizás, para aquellos filósofos e informáticos que estén interesados en aprender sobre la otra disciplina y no sepan por dónde empezar). Además, el mío pretende ser un libro «de entrada» para quienes estén interesados en seguir con libros más técnicos. Para mis comentarios detallados sobre el libro de Turner, véase mi Syntax, Semantics, and Computer Programs: Comments on Turner's Computational Artifacts, Philosophy and Technology 33: 309-321, preprint en http://www.cse.buffalo.edu/~rapaport/Papers/turner-20190329.pdf (la versión publicada está disponible bajo petición).
Tedre ha escrito mucho sobre filosofía de la ciencia de la computación, y mantenemos una frecuente comunicación. Su libro de texto basado en sus conferencias es excelente. Sin embargo, se centra principalmente en la relación entre la ciencia de la computación y la ciencia en general, que no es más que uno de los temas de mi libro.
Además, mi libro contiene frecuentes barras laterales que plantean cuestiones sobre las que quiero que el lector reflexione en ese punto del texto, o que proporcionan antecedentes o sugerencias para lecturas adicionales sobre los temas tratados. Muchos de los capítulos incluyen otras preguntas al final. Y los recursos en línea de mi libro (https://cse.buffalo.edu/~rapaport/OR/) incluyen sugerencias de lecturas complementarias, tareas de redacción, temas para trabajos trimestrales, un modelo de examen y un manual del profesor.
Camilo: (7) Finalmente, ¿qué consejo le darías a alguien interesado en estudiar filosofía de la ciencia de la computación?
William: Es sencillo: ¡Lee mi libro! :-)
Si eres estudiante de filosofía, toma algunos cursos introductorios en ciencia de la computación.
Si eres estudiante o profesional de la informática, haz algunos cursos de filosofía, como lógica, filosofía de la ciencia, filosofía de la mente, filosofía de la lógica y ética. (El capítulo 2 de mi libro es una introducción a la filosofía que cubre estos temas, y contiene un apéndice sobre el análisis lógico de los argumentos).
Versión original
Camilo: (1) You have devoted much of your academic life to researching the Philosophy of Computer Science. Moreover, you were among the first to create a course entitled "Philosophy of Computer Science: An Introductory Course" (2005). Since many readers of this newsletter are software developers and do not know about philosophy, what is the philosophy of computer science, and how does it relate to computer science and software development?
William: There is a saying in philosophy that, for any X, there is a philosophy of X, that is, you can philosophize about anything, including, of course, computer science! In my book (Philosophy of Computer Science: An Introduction to the Issues and the Literature (Wiley, 2023)), I characterize philosophy as the personal search for truth, in any field, by rational means. So, the philosophy of computer science is the personal search for truth about computer science by rational means.
It is a branch of the philosophy of science (and that’s true whether or not computer science is a “science”!), which is the philosophical investigation of the nature of science in general (including scientific fields such as engineering, mathematics, and, of course, computer science) and the individual sciences in particular.
I take the fundamental questions of the philosophy of computer science to include these:
What is computer science? Is it a science? Or is it a branch of engineering? Or is it a combination of these? Or is it something else altogether? (And to answer these questions, we must ask what science is and what engineering is.)
What does computer science study? Computers? Computation? And these questions lead to others: What is a computer? What is computation? What is an algorithm? What is a Turing Machine?
One of the fundamental proposals of computer science is the Church-Turing Computability Thesis that our intuitive notion of computation is entirely captured by the mathematical notion of a Turing Machine. Is that true? It’s pretty clear that all Turing Machine computations are computations in the intuitive sense. But could there be computations that are not Turing Machine computations, such as recipes, hypercomputations, interactive computations, neural computations, etc.?
Philosophy can investigate software development, too. Some relevant questions here are:
What is a computer program? And how does it relate to a specification?
What is an implementation?
How are programs and computation related to the real, physical world?
Can (some? all?) programs be considered to be (scientific) theories?
What is the difference between software and hardware?
Can (and should) programs be logically verified before running them?
Camilo: (2) What sparked your interest in the philosophy of computer science? I ask because many people confuse it with the philosophy of artificial intelligence (which is, on the one hand, older and, on the other hand, deals with the problem of whether the software can achieve singularity [AGI]). And also, as we know, the philosophy of artificial intelligence is more popular than the philosophy of computer science.
William: I see the philosophy of AI as a proper part of the philosophy of computer science, although it also overlaps with other branches of philosophy, such as the philosophy of mind and the philosophy of language. The philosophy of AI is arguably older than the philosophy of computer science, dating back at least to Turing’s 1950 paper “Computing Machinery and Intelligence” that appeared in the British philosophy journal Mind.
I had taught a course in the philosophy of AI in 1983 when I was in the philosophy department at the State University of New York College at Fredonia (see my paper “Philosophy of Artificial Intelligence: A Course Outline”, Teaching Philosophy 9 (2) (June 1986): 103–120; http:// www.cse.buffalo.edu/~rapaport/Papers/rapaport1986-PhilAITchgPhil.pdf). In 2004, long after I had joined the computer science department at the State University of New York at Buffalo (where I did research in AI of the Good Old-Fashioned symbolic kind), I was looking for a seminar topic, and decided that a course in the broader area of philosophy of computer science would be fun to teach.
I was somewhat surprised to find that there were virtually no such courses or textbooks on that topic. (There were a few, but they didn’t really cover the topics that I was interested in.) So I decided to create my own course from scratch. I taught it several times, and decided that a good retirement project would be to write up my lecture notes as a textbook. Now, of course, the philosophy of computer science is a recognized area, and I’m pleased to have been able to make a small contribution to it.
Camilo: (3) Regarding philosophy, the focus is on asking big questions rather than giving answers. What are some of the questions about the philosophy of computer science that have intrigued you in your career, and why?
William: See my answer to your first question above :-) I suppose that the two questions that interest me the most are the nature of computation and the relation of abstract, mathematical computation to the real world, in particular, whether all computations must have (practical) goals or purposes. As I put it in my book, does a computation have the form “Do A” (where A is an algorithm) or the form “In order to accomplish goal G, do A”?
Camilo: (4) In their 2009 article "The Profession of IT Computing's Paradigm," Peter J. Denning and Peter A. Freeman argues that computing is a new paradigm encompassing mathematics, science, and engineering. Is this perspective more valuable than simply categorizing computing as a science? Should we defend the term "computer science"?
William: I’m not sure that it’s an entirely new “paradigm”, nor do I have any problem with the name. In my book, I call it “CS”, understood as an abbreviation of a one-word phrase “computerscience”, so as not to beg any questions about whether it is “really” a science. (Conceivably, “science” may not have anything more to do with “computerscience” than “cat” has to do with cattle.)
After investigating various arguments about CS’s nature, I conclude at the end of the book that the best way to think about it is in terms of 5 big questions that it tries to answer:
What is computation, what can be computed, and how?
What can be computed efficiently, and how?
What can be computed practically, and how?
What can be computed physically, and how?
What can be computed ethically, and how?
(The philosophy of AI falls under question 1: Can cognition be computed?)
I think the most overlooked question, but one that is becoming more important, especially in the light of programs like ChatGPT, is question 5: ethical computation.
Camilo: (5) Programmers often focus solely on utility, leading to technology-centric thinking. Can the philosophy of computer science broaden our perspectives? We use terms like "algorithm," "software," and "programs" without fully understanding them.
William: I would hope that philosophical inquiry into the nature of algorithms, software, and programs will help us understand them better. I think that philosophy in general (and, of course, the philosophy of computer science in particular) can help us broaden our perspectives by letting us see the ways in which many issues are interconnected.
I have always found it fascinating that most of the positive feedback I got from readers of early drafts of my book came from software engineers and programmers, just those people whom you characterize as focused on utility!
Camilo: (6) You recently published your book, "Philosophy of Computer Science: An Introduction to the Issues and the Literature" (2023), which is one of the few on the subject. How does it differ from "Computational Artifacts: Towards a Philosophy of Computer Science" (2018) and "The Science of Computing: Shaping a Discipline" (2014) by Raymond Turner and Matti Tedre, respectively?
William: I have benefitted greatly from both Turner’s and Tedre’s work.
Turner’s book is a professional monograph, whereas mine is primarily intended as a textbook. Hence, mine is aimed at a different audience from professional philosophers or computer scientists (except, perhaps, for those philosophers and computer scientists who are interested in learning about the other discipline and might not know where to begin). Moreover, mine is intended to be a “gateway” book for those interested in pursuing such more technical books. For my detailed comments on Turner’s book, see my “Syntax, Semantics, and Computer Programs: Comments on Turner's Computational Artifacts”, Philosophy and Technology 33: 309-321, preprint at http:// www.cse.buffalo.edu/~rapaport/Papers/turner-20190329.pdf (published version available upon request).
Tedre has written extensively on the philosophy of computer science, and we are in frequent communication. His textbook based on his lectures is excellent. However, it focuses primarily on the relationship between computer science and science more generally, which is merely one of the topics of my book.
In addition, my book contains frequent sidebars that raise questions that I want the reader to think about at that point in the text, or that provide background or suggestions for further reading on the topics covered. Many of the chapters have a further set of questions at the end of the chapter. And the Online Resources for my book (https://cse.buffalo.edu/~rapaport/OR/) include suggestions for further reading, writing assignments, term-paper topics, a sample exam, and an instructor’s manual.
Camilo: (7) What advice would you give to someone interested in studying the philosophy of computer science?
William: That’s simple: Read my book! :-)
If you’re a philosophy student, take some introductory courses in CS.
If you’re a CS student or professional, take some philosophy courses such as logic, philosophy of science, philosophy of mind, philosophy of logic, and ethics. (Chapter 2 of my book is an introduction to philosophy that covers these topics, and contains an appendix on the logical analysis of arguments.)
Para mí ha sido realmente especial poder entrevistar a Rapaport, porque fue gracia a su artículo What is Computer Science? (2017) que me interesé y conocí lo qué es la filosofía de la ciencia de la computación. Sin duda, cambio mi vida, pues comencé a entender la computación bajo otras coordenadas, más amplias y menos restringidas.
Las notas a pie de páginas fueron añadidas por mí.
Se dice tesis porque es una hipótesis que establece que cualquier función matemáticamente calculable puede ser calculada por una máquina de Turing (propuesta por Alan Turing) o por un sistema formal basado en el cálculo lambda (propuesto por Alonzo Church). Esto no puede ser probado para «cualquier función» por su naturaleza hipotética, ¿qué sería una función matemáticamente calculable?
Los modelos basados en hipercomputación pueden computar lo que una máquina de Turing no puede. Su naturaleza es especulativa pues no hay ninguna prueba empírica que lo demuestre. Traté este tema en un episodio en el pódcast.
Rapaport nos dice que podría darse el caso de que «Haz A» existe sin un «objetivo G». Eso nos llevaría a preguntarnos, ¿podemos escribir algoritmos sin un objetivo en mente?
Este es un problema que se puede resolver en inglés, porque hay mayor consenso con el nombre del campo. En español es más complicado, porque tenemos arraigada la palabra «ingeniería» junto a «informática», que se diferencia de las carreras llamadas «ciencia de la computación». Sin contar las demás variaciones como «ingeniería de sistemas» presente en algunos países hispanos.