| 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.
           |