Home Index Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  Noticias   Archivos   Compañías   Consejos 

Entrevista con Miguel de Icaza

por Omar Andres Armas Aleman


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.


Entrevista original en Castellano

 

© 1998 Omar Andres Armas Aleman
Páginas web mantenidas por Miguel A Sepulveda.