Entrevista con Miguel de Icaza, realizada el 21 de Enero de 1998.
LF: ¿Como empezaste con Linux?
Miguel: Eso realmente no importa. Bajé Linux de la red como
todo el mundo y como todo el mundo lo instale y ya.
LF: ¿Hace cuánto?
Miguel: No me acuerdo. Fue 93, tal vez... 94. El primer kernel
que yo compilé fue el 0.985. ¿Como estuvo? Ya ha de tener como tres o
cuatro anos. 93.
LF: ¿Cuál es tu trabajo oficial?
Miguel: Mi chamba es en el Instituto de Ciencias Nucleares(de
la UNAM). Soy opereta, administrador de la red y en mi copioso tiempo
libre, que es todo el día, escribo software o tiro grilla o leo news o
leo correo. Oye cabrón, yo estoy convencido, voy a morir leyendo
correo.
LF: ¿Cuál fue tu primer programa que
hiciste para Linux, el Midnight Commander?
Miguel: Fueron unos parches para el Wine, para que funcionara
como librería, pero como no tenía PC, pues compilaba en la Sun el
Wine, que era para PC. Entonces ahí empezó el proyecto para hacer Wine
una librería, que no terminé. Lo terminaron como un año después. No,
como dos años después alguien más empezó a hacerlo.
LF: Estudiaste en la facultad de ciencias
de la UNAM?
Miguel: Si. Física y después matemáticas.
LF: ¿Terminaste alguna?
Miguel: No. Hmmm... digamos que está en hold.
LF: ¿Cuántos años tienes?
Miguel: 27, no 25. Nací en 72. Mira ya me acorde, el
Midnight Commander lo hice cuando tenía 20 años. Eso que fue, ¿94 o 93?
Creo que si. Me acuerdo que el Midnight Commander lo hice para
Linux. Lo desarrollaba en la Sun por que era más rápido que la
pinche PC, pero era para Linux. !Puta! cuando habrá sido, ¿eh? no me
acuerdo. Debe de estar en el MC.
LF: ¿Sigues trabajando en él?
Miguel: Si.
LF: Lo van a usar en Gnome ¿no?
Miguel: Pues le sigo dando mantenimiento, por que alguien tiene
que darle mantenimiento. O sea, yo sigo siendo el encargado de darle
mantenimiento, pero no estoy desarrollando mucho para él ahorita. La
mayor parte son parches que manda la gente. No se, cada dos o tres
días sale una versión nueva. Bueno no cada dos o tres días, igual y es
una vez a la semana. Pero fuera de eso... digo ahorita le he estado
metiendo mano más por la cuestión esta de Gnome, que va a ser el file
manager de Gnome.
LF: ¿Cuándo empezaste con Linux/Sparc?
Miguel: No me acuerdo. Que crees que no me acuerdo. Yo creo que
a mediados del 95.(checar fecha)
LF: ¿Qué fue lo que hiciste?
Miguel: Pues contacte a David Miller, que es quien había
empezado el port. Entonces los dos empezamos el port originalmente y
luego se unió Eddie2, no Peter ... , luego Eddie2, luego Paul no me
acuerdo que cuernos. Inicialmente creo que las primeras cosas que hice
fue el driver de Ethernet, luego hice varias cosas, no se.. un driver
para X Window, que esos me los eche todos como en dos semanas, los que
había. No se, trabajo en el port X,... Lo que más me quitó tiempo
fue la librería de C. A la fecha me sigue persiguiendo la librería
de C. Primero pasamos libc4
LF: ¿Sigues trabajando en Sparc?
Miguel: Ayer arreglé un bug.
Primero portamos libc4 a la Sparc, una vez que jaló portamos
libc5, luego en libc6. Y los tres son distintos. Son casi 3
ports. No hay cosa más frustrante que portar esa chingadera. Y
peor aun portarlo tres veces.
LF: ¿Como empezó Linux/SGI?
Miguel: Ah. Cuando estaba haciendo lo de la Sparc la
gente de Silicon Mexico me habían comentado que había la
posibilidad de hacerlo. Entonces empecé a hacer el tramite pero
tardo y tardo y tardo, y David Miller se fue para allá a hacer
Linux Silicon, regresó y pasó todavía un año más antes de que me
dieran una Silicon a mí.
Prácticamente me gusta el software libre al igual que a toda la
gente sana.
Pero realmente la cabeza del proyecto es David Miller, de Linux
Sparc. Eddie2 fue el mantainer del port durante mucho
tiempo. Richard Henderson ha trabajado muchísimo en la librería
de C también. Jacob J.. que es hoy por hoy el mero petatero.
LF:¿Qué trabajo haces en el kernel?
Trabajé en Sparc, trabajé en el RAID con Ingo Molnar y Gadi
Oxman, donde Gadi es el guru, o sea, Gadi es el que se tiene que
llevar todos los créditos. Ingo hizo el checksum más veloz del
mundo, el que tuvo la idea original de como hacer el RAID
correctamente. Y Gadi es realmente la verga, el que hizo que esa
cosa pudiera competir al RAID comercial. Mi nombre se estampo ahí,
pero realmente quienes escribieron la mayor parte del código es
ese par de cabrones.
LF: ¿En Gimp qué haces?
Miguel: Nada.
LF: Tu nombre aparece en la pagina de
The Gimp
Miguel: Ha de estar relacionado a Gnome. Un par de
microparches. En realidad lo que sucede es un buen día apareció KDE,
que era un proyecto para hacer Linux amigable, y al principio era
medio chafon, pero empezó a agarrar fuerza y empezó a ponerse muy
bonita la cosa esa, bonita y estable ¿no? Entonces apareció que KDE
era una cosa fabulosa y le mande mail a todos mis amigos de las
distribuciones para que incluyeran KDE. Y entonces me hicieron ver
cual era el problema de KDE, no me había fijado bien. KDE depende de
una librería que no es libre, una librería que es gratuita para uso no
comercial. Pero no es libre. Y no es libre por una razón muy
importante, el software libre te da derecho a ver el código fuente, a
modificar el código fuente, a aprender del código fuente, a usar el
código. Pero lo más importante es que puedes modificarlo, lo puedes
mejorar y corregirle bugs. Qt viene con una licencia que
específicamente prohibe las modificaciones y los cambios. Es una
compañía que vende el producto. Entonces desgraciadamente KDE es muy
bonito, pero en el momento que empiezas a concederle, por ejemplo, pon
un sistema libre: Linux. Dices le voy a instalar KDE y ya tiene un
componente que no es libre. ¿En qué momento dejas de añadir componentes
que no son libres? Ese sistema ya no es libre, tiene un trozo
comercial. Entonces das un paso para atrás. Hemos avanzado muchísimo
desde el 85 cuando Stallman arranco el proyecto y de repente llegan un
momento en que no, paso para atrás no, vamos a retroceder un poquito
aquí. ¿Vamos a empezar a aceptar licencias raras?
LF: ¿Por eso fue que empezó Gnome?
Miguel: Hubo mucha discusión. En realidad en Gnome hubo una
bola de cosas. Primero me enteré de como funcionaba en realidad Active
X, que no es mala idea. Y entonces originalmente con Federico tratamos
de generar una bola de componentes a la Active X para
Linux. Empezamos mal, lo pensamos mal y nunca hicimos nada. Todo
estaba mal pensado de entrada. La idea era que varias aplicaciones tk,
gtk pudieran platicar como un sistema de componentes. Nunca lo
implementamos y se me olvidó la idea. Entonces quería unificar
varios api's en UNIX. Pero son ideas que salen y dices "hay que hacer
esto", pero nunca se hace. Entonces habíamos escogido el nombre de
Gnome por que sonaba bonito para nuestro proyecto. Cuando vimos KDE y
la bronca que tenía KDE dijimos "no, hay que hacer uno". Al principio
estaba inusable, tenía muchos bugs, no teníamos para cuando, requería
mucha memoria, tenía cerca de cero inercia. Esto es por ahí de Junio o
Julio. Un buen día escribimos una propuesta, de hecho escribí la
propuesta y la mande a una bola de gentes: Stallman, la gente de Red
Hat, toda la bola de gtk y gente que había trabajado en el Gimp. Por
que lo interesante es que diseño su propio toolkit. Entonces queríamos
involucrar esa gente, utilizar toda la inercia que llevaba ese
proyecto, que es pequeña comparada con KDE. Originalmente se iba a
llamar "GNU Desktop Enviroment, GDE". En el IRC se discutió y dijimos
"Gnome es un nombre viejo que tenemos por ahí, vamos a usar este
nombre viejo, que era para otro proyecto, pero aquí se aplica. A ver,
que quiere decir la G, que la N".
LF: ¿En qué se diferencia Gnome de otros
manejadores de ventanas, por ejemplo Enlight?
Miguel: Enlightenment es un manejador de ventanas, es decir, lo
que pone tu background, decora tus ventanas y define el comportamiento
de las ventanas, eso es todo. Pero no dice qué es una aplicación. Las
aplicaciones son de chile y de manteca. Tantito de esto, tantito de
aquello; un poquito de todo, cuchareado. Entonces la idea con Gnome y
con KDE, es que no son manejadores de ventana, son interfaces para
aplicaciones. De hecho KDE depende de su manejador de
ventanas. Ahorita creo que ya no. La cuestión es que Gnome corre con
cualquier manejador de ventanas. Si tu quieres usar Enlightenment
úsalo; si quieres usar fv, usa fv; si quieres utilizar el manejador de
ventanas que Gnome diseñe, usalo; si quieres usar KDE, usalo. Cabe
mencionar que el cuate que diseñó Enlightenment(Rasterman), es parte
del equipo de Gnome. De hecho está contratado para trabajar en
Gnome. Le paga Red Hat. Red Hat oficialmente va a soportar a Gnome.
Hay un montón de cosas que existen que no se están usando en
Linux ahorita. Entonces Gnome tiene varios objetivos, uno de ellos es
proveer de un desktop amigable. Y creo que ese es uno de los grandes
méritos de KDE. KDE tiene el gran merito de demostrar que un equipo
pequeño de gentes en un año podía crear un desktop increíble, que
competía con Windows 95. Cuando yo vi Windows 95 por primera vez
pensé "ya perdimos, ya perdimos gacho. Se nos fue el patín,
descuidamos la interfaz y nos dieron una golpiza". Yo creía que
nunca nos íbamos a acercar a eso. Y KDE demostró lo que demostró,
que si era posible hacerlo, y que lo podía hacer un equipo de cinco
programadores. Entonces, Gnome mezcla eso, es decir, hacer un ambiente
amigable y consistente. Todas las aplicaciones usan el mismo toolkit,
todas utilizan las mismas librerías, todas se deben de ver igual,
todas deben de ser idealmente fáciles de usar, todas deben de ser
atractivas. Que es lo mismo que hace KDE, pero además de eso queremos
utilizar CORBA. La idea de CORBA es que así como los pipelines son
fabulosos por que puedes mezclar programas con otros programas, la
idea con CORBA es que tú puedes tener programas que implementan una
cierta especificación, una interface. Es decir, por ejemplo ahorita
lo que se está discutiendo es por ejemplo, tu lista de direcciones
telefónicas y de correo, pues está en una basesita de datos. Ahora
¿qu' programa vas a usar? Tienes un programa de correos, pues quieres
decirle dices dame la lista de gente para ver a quien le mando correo
¿No? Usualmente tienes un programa de correo, direcciones, editor de
html, etc. Los programas crecen a lo bestia. La idea es hacerlo todo
con componentes pequeños. Tienes un programas de correos y que le
pregunte a un programa de direcciones. No es un programa de línea de
comandos, es un programa gráfico completamente. Este programa provee
una interfaz de número de gentes, este es el formato de los registros,
etc. La idea es que aquí puedes cambiar incluso los componentes. Si
quiero un componente para manejar mi basesita de datos personal, lo
puedes cambiar por una versión de GNOME, una versión que se ligue
con la base de datos de la empresa, con Oracle o con lo que sea. Lo
importante es que hay una interface, un API definido. Ese es uno de
los papeles que va a hacer CORBA en GNOME. El filemanager lo mismo,
los editores lo mismo. Puedes intercambiar los editores siempre y
cuando implementes tú interface. La idea es que las aplicaciones se
van a poder platicar todas con todas a través de esto. El debuger va
a poder platicar con cualquier editor y ya no va a ser un parche
horrible. Hay gente que tiene su base de datos y de teléfonos en
emacs. Le vas a poder decir "oye, dame los datos de este carnal", hay
gente que quiere la versión gráfica con iconitos. Pero todo va a
interoperar, ese es uno de los objetivos que se había pensado en los
proyectos anteriores.
Federico: Otro paso después de eso es, aplicando los
componentes, tener un sistema de documentos para que tengas un
procesador de palabras, le puedas embarrar algo que creaste en una
hoja de calculo, o si le embarras una imagen que creaste en el Gimp o
en lo que sea, que la puedas editar allí mismo. Como OLE en Windows.
LF: ¿Cuál es el papel de Red Hat?
Miguel: El código que escriba Red Hat va a tener copyright de
Red Hat, el que yo escriba va a tener copyright mio. Pero como todo es
GPL no importa.
Eso es lo interesante del software libre. Aquí el objetivo es que
sea libre y Red Hat está jugando con nosotros bajo esas reglas,
liberar todo bajo el GPL. Entonces, no se que tanta ingerencia tengan,
o sea, si ellos están proveyendo código y dicen "oigan, me
interesaría que el código hiciera esto", y lo implementan,
adelante. Todos los desarrolladores tienen voz y voto. Ahora con todo
esto del software libre, si a alguien no le gusta, tiene la libertad
de tomarlo y crear su propia versión a partir de lo que tenemos.
LF: ¿Quién está en el proyecto?
Miguel: Tenemos gente como Bruce Perris de Debian, que está en
nuestra lista de desarrolladores está haciendo la interfaz de COA para
Gnome. Michael Johnson de Red Hat está trabajando en el configurador
de linuxconf, Rasterman está trabajando en las cuestiones de imagen,
temas para GNOME. Nuestro guru de temas va a ser Rasterman. Le va a
poner temas a las aplicaciones para que parezca...
Federico: ¿Has visto una cosa en las mac que se llama kaleidoscope?
Miguel: Rasterman trabaja para Gnome y además el desarrolla
Enlightenment, entonces él lo que quiere es que Gnome interopere con
lo que el está haciendo. Obvio que E va a tener muchas cosas para
verse mejor o para operar bien con Gnome. Por default. También va a
colaborar con otras cosas, pero es un hecho que hay un énfasis muy
especial en Gnome.
Hay otro manejador de ventanas que se llama XEWM, uno de los
hackers de GNOME está trabajando en eso y también, ese es otro
manejador de ventanas que le va a sacar mucho provecho a GNOME. Ahora,
hay otra diferencia entre GNOME y KDE, y es que en GNOME no creemos
que C++ sea el mejor lenguaje del mundo, y Qt de alguna manera te
obliga a usar Qt. Existen bindings para otros lenguajes, pero hasta
donde hemos visto, tienes que programar en C++ si quieres usar
Qt. Entonces, primero nosotros creemos que C++ es un lenguaje de mal
gusto que lo único que tiene es mucha publicidad, pero fuera de eso
es uno de los peores errores que se han cometido en la historia de los
lenguajes de programación. Nosotros usamos más C, Objective C y
Scheme. Entre los desarrolladores hay a quien le gusta C++ y tenemos
código en C++. Pero ahorita la distribución de GNOME tiene código
en Scheme, en C, C++ y en Objective C. Si alguien quiere trabajar en
Ada, adelante. Nosotros permitimos varios lenguajes por que a la gente
le gusta programar en distintas cosas. A mí eso me molestaba de KDE,
que tenías que programar en esa basura de lenguaje. La otra cosa es
que nosotros creemos que usar scripts para programar es muy
importante, es decir, tener en los programas una funcionalidad que te
permita manipularlos. Entonces, estamos usando Scheme, posiblemente
usemos Perl o Phyton para otras cosas, pero hoy por hoy estamos usando
Scheme en algunas aplicaciones que nos permiten trabajar más rápido
y hacer cosas más rápido. Esa es básicamente la idea. Está
llegando al grado en que se puede usar la cosa. Gnome es un proyecto
GNU apoyado por Debian y por Red Hat.
LF: ¿Para cuándo podría liberarse una
versión estable?
Miguel: Bueno, va a depender mucho de cuanta gente contribuya.
LF: ¿Quíen más está en el proyecto?
Miguel: Puta! Son un chingo: George Lebl, Radek Doulik, Alan
Cox[1], Tom Tromey, Elliot Lee, Raja Harinath,Eckehard Berns, Changwoo
Ryu, Michael K Johnson, Federico Mena, Nathan, Bryant, Horacio Peqa,
etc.
Debian está proveyéndonos de disco duro y esta proveyendo el
deposito CVS, que es lo que se utiliza para coordinar a todos los
desarrolladores en el mundo, todos los desarrolladores tienen acceso a
esa máquina. Tienen una muy buena conexión. Si alguien prueba que
puede escribir buen código y es bueno, le damos cuenta en esa
maquina. Entonces puede actualizar su código. Normalmente se discuten
las cosas y si el código esta bien, va para adentro.
Alan Cox, el que hizo el TPC/IP para Linux. Además portó Doom, el
que acaban de liberar de dominio publico a Gnome. Le costo un huevo,
pero lo hizo. También tendremos GnomeVision.
|