|
Pregunta: 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.
Pregunta: 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++ ?.
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.
Pregunta: 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.
Pregunta:
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.
Pregunta: 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.
Pregunta: 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.
Pregunta: É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.
Pregunta: 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.
Pregunta:
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).
Pregunta: 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.
Pregunta: Y la
Gran pregunta sobre Linux ¿Has utilizado alguna vez
Linux? Bien, si es así, ¿Qué opinión te merece?
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.
Pregunta: 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.
|
Volver |
 |
|