Entrevista con Dennis M. Ritchie

ArticleCategory: [Categoría del Artículo]

Interviews

AuthorImage:[Fotografía del Autor]

[Foto del Autor]

TranslationInfo:[Nombre del Autor]

original in es Manuel Benet

AboutTheAuthor:[Sobre el Autor]

Abstract:[Resumen]

ArticleIllustration:[Ilustraci'on de Cabecera]

[Ilustracion]

ArticleBody:[El Contenido del Articulo]

¿Quién es Dennis M. Ritchie?:

Algunas personas adquieren importancia porque cambian la historia, otras hacen la historia. Dennis Ritchie pertenece al segundo grupo de personas. Cuando la mayoría de nosotros estábamos todavía aprendiendo a andar, él desarrolló el lenguaje "C", el lenguaje de programación más usado. No es necesario acentuar la relevancia de esta contribución a la humanidad.

Pero no era suficiente para él. Dennis Ritchie y Ken Thompson desarrollaron el sistema operativo Unix, es decir, El Sistema Operativo. sí, el hizo el UNIX.

No ha parado de trabajar con ordenadores y sistemas operativos y como resultado se han desarrollado "Plan 9" e "Inferno" por parte del grupo de investigadores que dirige.

Su trabajo ha sido reconocido por todas las organizaciones relacionadas con el mundo de la informática: Premio ACM de 1974 por el papel destacado en sistemas y lenguajes, premio IEEE Emmanuel Piore (1982), Bell Laboratories Fellow (1983), Premio Turing de la "Association for Computing Machinery" (1983), premio fundación C&C de NEC (1989), medalla IEEE Hamming (1990), etc.

En la actualidad, Dennis M. Ritchie es director del departamento de investigación de sistemas de software en el centro de investigación de ciencias de computación de Bell Labs/Lucent Technologies en Murray Hill, Nueva Jersey.

LF: De la misma manera que muchos niños quieren ser Superman, tú eres el ídolo de muchos programadores de C y fans de UNIX (entre otros) de todo el mundo. ¿Cómo te sientes siendo adorado por miles de programadores de C y UNIX?. Es completamente imposible imaginarnos a nosotros mismos sin UNIX ni C. Cuando creaste el C y empezaste a trabajar en el UNIX, ¿Esperabas que sería "EL FUTURO" de la informática?

Dennis: Estas dos preguntas son casi lo mismo, y además se formulan frecuentemente. Obviamente la gratificación y apreciación que mis colegas y yo hemos recibido son muy agradables, y sentimos que hemos ayudado a crear algo de auténtico valor. Pero no, no esperábamos realmente que esto sería "el futuro", ni siquiera anticipábamos la influencia eventual del trabajo. Fue llevado a cabo bajo el espíritu de "Vamos a construir algo útil" y al mismo tiempo hacer el trabajo que se necesitaba para ayudar a que otros participaran. Es importante tener en cuenta que aunque el segmento completo de Unix y C o C++ es significante, el mundo de las ciencias de computación, tecnología y productos reales es mucho mayor. Esto es verdadero tanto en la dirección académica del estudio de lenguajes de programación como en el área de software donde se mueve el dinero.

LF: Si el UNIX es el presente y el pasado de los Sistemas Operativos, el C podría considerarse sin duda "EL LENGUAJE", a pesar de todos los lenguajes Orientados a Objetos que ha aparecido en los últimos años. ¿Cómo ves al C++ y al Java, y las guerras dialécticas que se dan a menudo entre programadores de C y C++ ?.

El C ha sido calificado (tanto en tono admirativo como despectivo) como un lenguaje ensamblador portable, y C++ intenta elevar su nivel a la orientación a objetos y a una aproximación más abstracta a la programación.

Dennis: El C++ se benefició enormemente del C, porque el C disfrutaba de una gran aceptación incluso antes del crecimiento del C++, así el C++ pudo utilizar el C como una base sobre la que construir el nuevo lenguaje y al mismo tiempo como una herramienta para crear sus compiladores. El C ha sido calificado (tanto en tono admirativo como despectivo) como un lenguaje ensamblador portable, y C++ intenta elevar su nivel a la orientación a objetos y a una aproximación más abstracta a la programación. Los fallos de los dos (en los estándares aparecidos últimamente) parecen ser una excesiva ornamentación y la acumulación de parafernalia. Ambos tienen un cierto espíritu de pragmatismo, de intentar entender lo que realmente se necesita. Java es, de forma manifiesta, un descendiente del C++, eliminando algunas características heredadas del C relacionadas con los punteros y, al mismo tiempo, añadiendo la idea (no tan nueva, pero ahora quizás realmente viable) de los ficheros objeto independientes de la máquina. Ahora que se ha visto envuelto en intrigas entre Sun y Microsoft (y también tiene sus propios problemas con la ornamentación) es difícil predecir hacia donde van a ir las cosas.

LF: Ahora una pregunta hipotética: desde la perspectiva de hoy y después de tantos años de experiencia con el C, ¿Hay alguna cosa que hubieras hecho de manera diferente si tuvieras que diseñar el C desde el principio?

Dennis: Buscaría la forma (dadas las limitaciones de tiempo) de insistir en algo que ha estado en el estándar ANSI/ISO durante algún tiempo: declaración completa de tipos en los argumentos de las funciones, lo que el estándar de C de 1989 llama prototipos de funciones. Hay muchos pequeños detalles que son más confusos de lo que debieran haber sido. Por ejemplo, el significado de la palabra "static", que es utilizada de forma confusa para diversos fines. Todavía estoy indeciso en cuanto a la sintaxis de las declaraciones en el lenguaje, donde se utiliza una sintaxis que imita el uso de las variables que son declaradas. Es una de las cosas que provoca fuertes críticas, pero hay cierta lógica en ello.

LF: Mientras que el C es un lenguaje establecido y completamente definido, los sistemas operativos todavía están evolucionando bastante. Surgen nuevas ideas conforme se hace más rápido y barato el hardware. ¿Cuáles son los aspectos clave en los que se basará el diseño de sistemas operativos en el futuro?. En particular, ¿Cuál es tu opinión en cuanto a los micro-nano-kernels frente a los diseños monolíticos?.

Dennis: No creo que este sea un aspecto importante visto desde esa perspectiva. Prefiero por encima de todo los entornos para aplicaciones que proporcionan un "espacio de nombres" común y mecanismos para el acceso a los recursos de forma estructurada en la linea del Unix (aquí incluyo a Linux), Plan 9 o Inferno. A mi me parece que la idea de micro o nano-kernels no es realmente importante en el uso real, al menos como base de un sistema de propósito general. En la práctica, parece ser que lo que sucede es que el micro-kernel se especializa para el macro-sistema que trabaja por encima suyo. Puede seguir siendo una herramienta útil para la estructuración interna del sistema, pero no vive por si mismo. Por supuesto (siendo el mundo complicado) hay casos en los que sistemas operativos muy sencillos son útiles para pequeños aparatos que no están orientados a un uso general ya sean para el escritorio o para una sala de ordenadores.

LF: El UNIX es un sistema operativo con una larga historia. Además fue creado hace muchos años y desde entonces han evolucionado enormemente las capacidades y requerimientos de las redes, el hardware, los servicios y las aplicaciones. ¿Cuáles son las limitaciones actuales o problemas del UNIX de cara a las demandas del usuario en el presente y en un futuro próximo?.

Dennis: No veo ninguna limitación tecnológica fundamental, en términos del API básico del sistema. Hay, por supuesto, un enorme aspecto comercial/político en términos de lucha entre los vendedores de Unix comerciales y ahora entre los distintos suministradores de Unix "libres", incluyendo a Linux y *BSD.

LF: Se ha generado recientemente una gran preocupación con el año 2000 que se nos acerca y el desastre potencial en Internet debido al famoso error del Y2K (año 2000). ¿Piensas que hay algún fundamento en las predicciones apocalípticas hechas por algunos expertos?.

Dennis: Ningún comentario inteligente sobre el tema, de verdad. Personalmente no estaré volando a las 23:59 del 31 de Diciembre de 1999, pero porque no he estado cerca de un avión en año nuevo nunca en mi vida; este hecho tiene, probablemente, poco que ver con el Y2K.

LF: Ésta no sería una entrevista completa sin mencionár a Inferno, el sistema operativo en el que estás trabajando actualmente. ¿Cuáles fueron las razones principales para diseñar un sistema operativo totalmente nuevo, junto con Limbo, su propio lenguaje de programación?. También ¿por qué Inferno/Limbo si ya existe JavaVM/Java?, en otras palabras ¿Qué puede ofrecer Inferno que no tenga Java?

Dennis: El proyecto de Inferno fue idea de Phil Winterbottom y Rob Pike, y empezó justo antes de que se pusiera en marcha el tren (máquina publicitaria) de Java. Java tuvo su propio predecesor (llamado internamente Oak), pero en el momento en que Inferno se estaba gestando no había todavía ninguna razón para pensar que surgiría el fenómeno y, a pesar de que permanecíamos atentos al desarrollo de Java, era algo que todavía no había tomado forma. Pienso que es una de esas extrañas convergencias el hecho de que una venerable idea tecnológica (un lenguaje implementado por una máquina virtual portable) fuera revivida tanto por Sun como por nosotros. No obstante, la idea de Inferno era, desde su comienzo, más interesante en términos de tecnología de Sistemas Operativos (un lenguaje y un S.O. que trabajarían con hardware mínimo muy barato y simple y también como una aplicación bajo Windows, Unix o Linux). Al mismo tiempo uno tiene que reconocer su mérito a Sun por conectar mejor con el vasto y dinámico mercado de los navegadores de WWW.

LF: Nos parece que el futuro de Limbo como lenguaje de programación está ligado a la expansión y popularidad de Inferno como sistema operativo. ¿Tendría sentido portar Limbo a otros sistemas operativos? ¿O son su diseño y objetivos demasiado dependientes de Inferno?.

Dennis: Tecnológicamente, Limbo no es particularmente dependiente de Inferno. En la práctica si lo es, simplemente porque un nuevo lenguaje depende del entorno en que se utiliza.

LF: Observando tu carrera en Bell Labs, parece que hubieras trabajado en todo momento en los proyectos que realmente te gustaban, y presumo que esto también es verdad con Inferno. ¿Me equivoco si digo que realmente disfrutaste de tu trabajo con el diseño de UNIX y C?.

Dennis: Es cierto, he disfrutado con mi carrera en Bell Labs (que todavía continúa).

LF: No puedo evitar hacer una comparación entre ti y toda la gente que está trabajando actualmente en proyectos sin ánimo de lucro, tan solo porque les gusta, aunque estoy seguro de que no rechazarían dinero por el trabajo que hacen gratis. ¿Te imaginarías a ti mismo involucrado en proyectos como Linux o similares si no estuvieras en Bell Labs? ¿Cómo ves a toda esta gente desde la perspectiva de un laboratorio innovativo de investigación con muchos años de experiencia sobre tus hombros? Puesto que nuestra revista es principalmente para usuarios de Linux no podemos olvidarnos de hacerte una pregunta sobre Linux. Lo primero, ¿Cuál es tu opinión sobre el impulso de Linux y la decisión de muchas compañías de empezar a desarrollar software para él (Bell Labs, por ejemplo: Inferno tiene su propia versión para Linux)?

Dennis: Permíteme que ponga juntas estas cuestiones. Pienso que el fenómeno Linux es muy agradable, porque se aprovecha fuertemente sobre la base que proporcionó Unix. Linux parece estar entre los descendientes directos de Unix con mejor salud, aunque también están los distintos sistemas BSD así como los productos más oficiales de los fabricantes de estaciones de trabajo y mainframes. No puedo evitar observar, por supuesto, que el mundo de los derivados del Unix con "código fuente libre" parece estar sufriendo de exactamente el mismo tipo de fragmentación y luchas que tuvieron y están todavía teniendo lugar en el mundo comercial.

LF: Y la Gran pregunta sobre Linux ¿Has utilizado alguna vez Linux? Bien, si es así, ¿Qué opinión te merece?

Admiro mucho el crecimiento y el vigor de Linux.

Dennis: De momento no lo he utilizado de verdad -- en el sentido de depender de él para mi propio trabajo del día a día --, me temo que tengo que admitirlo. Mi propio mundo informático es una extraña mezcla de Plan 9, Windows e Inferno. Admiro mucho el crecimiento y el vigor de Linux. Ocasionalmente, la gente me hace la misma pregunta, pero planteada de manera que parecen esperar una respuesta que muestre celos o irritación acerca de Linux contra Unix tal y como se nos presenta bajo la marca de las empresas tradicionales. En absoluto; veo a ambos como la continuación de las ideas que pusimos en marcha Ken, yo y muchos otros hace muchos años.

LF: Y Microsoft... ¿Qué opinas sobre el monopolio que tiene esta compañía sobre la informática de escritorio?. Antiguamente, las películas de ciencia ficción retrataban un mundo dominado por macro-computadoras que dominaban todos los aspectos de la vida diaria. La realidad actual nos ha mostrado un cuadro distinto. Los ordenadores, en muchos aspectos, han sido relegados a ser un simple electrodoméstico. Tú, que desarrollaste un sistema operativo pensado para programadores, que viviste ese ambiente de ciencia ficción y que imaginaste la situación actual de la informática, ¿Cómo te imaginas el futuro de la informática?, ¿Qué papel piensas que tienen en él Inferno y Linux?.

Dennis: Eso son dos cuestiones. Microsoft tiene cierto tipo de monopolio sobre la informática de escritorio, pero esa no es la única informática interesante en el mundo. Tanto las formas alternativas de suministrar software (como Linux) como las partes del mundo que no salen en las noticias tanto como Windows o las guerras de navegadores (como computación de altas prestaciones, computación muy fiable, computación muy pequeña) tendrán todas un espacio. Confío en que tanto Linux como Inferno van a prosperar.