I met with Miguel de Icaza and Federico Mena on January 21st 1998.
LF: How did you get started with Linux?
Miguel: That is not really important. I downloaded Linux from the net
like everyone else, and as everyone I installed it and that's it.
LF: How long ago?
Miguel: I don't remember. It was 93, maybe... 94. The first kernel
I compiled was 0.985. How old is it? I must be already 3 or 4 years old.
So it was 93.
LF: What is your official occupation?
Miguel: I work at the Institute of Nuclear Sciences (at the UNAM).
I am a system administrator, network administrator and in my many hours of
free time, which is all day, I write software, talk or read news or read email.
Listen man, I am convinced I will die reading email.
LF: What was the first program you wrote
for Linux, the Midnight Commander?
Miguel: Some patches for Wine, they worked like a library,
but I didn't have a PC so I had to compile Wine on the Sun station.
There started the project of making Wine a library, I didn't finished it.
It was completed a year later. No, like two years after someone took over the
project.
LF: Did you study at the School of Sciences
of the UNAM?
Miguel: Yes. Physics and then mathematics.
LF: Did you finished any?
Miguel: No. Ummm... lets say they are on hold.
LF: How old are you?
Miguel: 27, no 25. I was borned in 72. Listen I remembered now,
I wrote the Midnight Commander when I was 20. That was 94 o 93? I beleive so.
I remember that I wrote the Midnight commander for Linux. I developed it on the
Sun because it was faster than the shity PC, but it was for Linux. Shit! when was it?
I don't remember, I must be in the MC.
LF: Are you still working on it?
Miguel: Yes.
LF: It is going to be used in the Gnome, Isn't it?
Miguel:Well I keep mantaining it because someone has to mantain it.
In other words, I am still in charge of its development but I am not working
much on it right now. Most of the changes are patches provided by people. I don't
know, every two or three days comes a new version. Well not every two days,
most likely once a week. But besides that.... I have been working on it mostly
because of the Gnome issue, MC is going to be the file manager for Gnome.
LF: When did you get started with Linux/Sparc?
Miguel: I don't remember. Can you beleive I dont remember!. I think it
was in the mids of 95 (Check the date).
LF: What did you do?
Miguel: Well I contacted David Miller, he is who started the port.
Then we both started the port originally and then came to join us
Eddie2, no Peter...., then Eddie2, after Paul something. Initially
the first things I did was an Ethernet driver, then I did several things,
I don't know... a driver for X Window, I wrote all those in about two weeks,
those that existed at the time. Umm mostly work on the X port...What took
the most time was the C library. To this date I am still haunted by the C
library. We first ported libc4.
LF: Are you still working on the Sparc?
Miguel:Yesterday I fixed a bug. First we fixed the libc4 to the Sparc,
once it worked we ported libc5, then libc6. And they are three different libraries. They
are almost three ports. There is nothing more frustrating than porting those
monsters. Even worse, porting them three times!.
LF: How was started the Linux/SGI port?
Miguel: Ah, when I was working on the Sparc the people from
SGI Mexico mentioned to me that there was a chance to start it. Then
I got into the negotiations but I took time and time and time, and David Miller
went there to write Linux Silicon, he came back and it took one more year until
they gave me a Silicon.
Basically I like free software like any sane person does.
But really the head of the proyect is David Miller, of Linux Sparc.
Eddie2 was the mantainer of the port for a long time. Richard Henderson has worked
a lot on the C library too. Jacob J... who is as of today the only developer.
LF:What work did you do on the kernel?
I worked on the Sparc, I also worked on the RAID with
Ingo Molnar and Gadi
Oxman, where Gadi is the guru, I mean Gadi is who should take all the
credits. Ingo wrote the faster checksum in the world, he had the original
idea of how to implement the RAID correctly. And Gadi is really amazing,
he is who make that thing to compete with commercial RAID. My name ended up
there, but who really did most of the work on the code were that pair of
monsters.
LF: What are you doing on Gimp?
Miguel: Nothing.
LF: But your name shows up on the page for
The Gimp
Miguel: It must be related with Gnome. A pair of micro-patches.
What actually happened was one day KDE suddenly showed up, it was a project
to make Linux friendly, and at the beginning it was not too good, but it
started to gain strength and it got prettier, ... beautifull and stable, no?
Then it seemed that KDE was a wonderful thing so I wrote to all my friends
of the distributions and adviced them to include KDE. It was then when they
made me see the problem of KDE, I didn't pay attention before. KDE depends
on a library that is not free, a library that is free only for non-commercial
usage. But is not free. And it is not free for a very important reason;
free software gives you the right to see the source code, modify it, learn it,
use it. But the most important issue is that you can modify it, improve it
and fix bugs. Qt comes with a license that specificaly forbids modifications
and changes. It comes from a company that sells the product. Therefore and
unfortunately KDE is very beatiful, but we you start to yield, for example
consider a free OS: Linux. Say you are going to install KDE and now it has
a component that is not free. When do you decide to stop adding components that
are not free? The system is not free, it has a commercial piece. Then we give a
step backwords. We have advanced a great deal since 85 when Stallman started
the ideal and suddenly we come to a moment when we give a step back! Are we
going to go back here now? Accept strange licenses?
LF: Was is the reason for Gnome?
Miguel: There was a lot of discussion. Actually Gnome involved a
large number of things. First I learned how Active X works, it is not a bad idea.
And then with Federico, we tried to generate a bunch of components a la Active X
for Linux. We started on a wrong foot, we thought it wrong and never did
anything. Everything was ill-concieved from the beginning. The idea was that
several applications tk, gtk could dialog like a system of components.
We never implemented it and I forgot the idea. Then I wanted to unify
various API's of UNIX. But these are ideas that come and you say
"we have to do this" but you never do it. We chose the name of Gnome
because it sounded nice for our project. When we saw KDE and the problem
it had, we said "No, We have to write one". At the beginning was unusable,
it had too many bugs, it requiered too much memory, it had close to cero inertia.
That was near June or July. A good day we wrote a proposal, in fact I wrote the
proposal and sent it to a bunch of people: Stallman, the RedHat people, the gtk group
and the people working on The Gimp. Because what is really interesting is that
I designed its own toolkit. Then we wanted to involved that people, use all the
momentum that had that project, small compared with KDE. Originally it was
going to be called "GNU Desktop Environment, GDE". In the IRC we discused the issue
and said "Gnome is an old name that we already have, but it applies here. Lets see
what is G, and N....".
LF: What differentiates Gnome from other
window managers, like for example Enlightenment?
Miguel: Enlightenment is a window manager, that is, it takes care of setting
your background, decorating your windows and defining the behavior of the windows,
that is all. But it doesn't say what an application is. The applications are of
chili and lard. So much of this, and so much of that; a bit of everything,
and some mixing. Then the idea with Gnome and KDE is that they are not
windows managers, they are interfaces for applications. In fact KDE depends on
is windows manager. Now I believe that is not the case anymore. The point here is
that Gnome runs with any windows manager. If you like Enlightenment, use it;
if you prefer fv, then use fv; or if you like KDE well go ahead. It is worth
notting that the guy who designed Enlightement (Rasterman), is part of the
Gnome team. In fact he is hired to work on Gnome. RedHat pays him, and RedHat
will officially support Gnome.
There are zillions of things that are not been used in Linux yet.
Then Gnome has several goals, one of them is to provide a friendly
desktop. And I beleive that this is the biggest merit of KDE. The KDE
team showed that a small group of people in one year can create an incredible
desktop, that it can compete with Windows 95. When I saw Windows 95 for the first
time I thought "We are lost, we have lost the edge! We completely neglected
the interface and the have beatem us up". I doubted we would ever got close to that.
And KDE demonstrated the contrary, that it was possible to get it done, and that
I could be done by a small team of programmers. Therefore, Gnome mixes those
elements, that is, producing a friendly and convinient environment. All the
applications use the same toolkit, all use the same libraries, all should look
and feel the same, all should be easy to use and all should look attractive.
This is the same KDE does, but we want to go beyond, we want to use CORBA.
The idea behind CORBA is that, like pipelines which are fantastic for mixing
your programs with other programs, in CORBA you can have programs that implement
a certain specification, an interface. Say, for example what we are discussing
right now is this, your phone list and email list need a little database. So now,
What program shall we use? You have a program for mailing, so you have to let it
now the mailing list, Right? Usually we have a program for email, book of addresses,
HTML editor, etc.. Programs grow like beasts. So the idea is to do everything
with small components. You will have a mailer program that will send requests
to a addresses mantainer program. It is not a simple command line program, is a
full graphical interface. That program provides an interface to a number of people,
this is the format for the registers, etc.. So the idea here is that you can even
replace the components. If I want a component to handle my little database, yo can
replace it by a version of GNOME, a version that will link with the database in
your company, or Oracle or with whatever. The important thing is that there is an
interface, a well-defined API. This is one of the roles of CORBA in GNOME.
The filemanager is the same...editors the same. You can interchange editors
as long as you implement the interface. Applications will be able to dialog
among themselves through this interface. The debugger is going to be able to
talk with any editor and it wont be necessary to write a horrible patch.
There are people out there with a database for their phone numbers under emacs.
Then we can tell it "listen, give me the data about this fellow"; some people
like graphical versions with little icons. But everything is going to interoperate,
this is one of the goals that was thought out in previous projects.
Federico: The next step to that is, applying the components, having
a system of documents so that we can take a word-processor, paste to it something
you created on a spreadsheet, or perhaps send to it an image you created under Gimp
or under any other application, that you can edit it right there. Like OLE in Windows.
LF: What is the role of Red Hat?
Miguel: The code the RedHat writes is going to carry Redhat's copyright,
the code I write will carry my copyright. But since everything is GPL it doesn't matter.
This is the interesting thing about free software. Our goal is that it would be
free and RedHat is playing with us under those rules, publishing everything under GPL.
Under this circumstances I am not sure what Redhat interference could be, I mean,
if they are providing code and tell us "look, we would like the code to do this"
and they implement it, great. All the developers have voice and vote. With free software,
if at any moment someone doesn't like something, they are free to take it and develop
their own version starting from our current code.
LF: Who is in the project?
Miguel: We have people like Bruce Perris from Debian, who is in our
list of developers writing the interface COA for Gnome. Michael Johnson from Red Hat is
working on the configurator of linuxconf, Rasterman is working on images,
themes for GNOME. Our guru of themes is gooing to be Rasterman. He is going to
use themes for the applications to make them look....
Federico: have you seen something from the mac called kaleidoscope?
Miguel: Rasterman works for Gnome and also his is developing Enlightenment,
then he wants Gnome to interoperate with what he is doing. Obviously
Enlightenment is going to have many things to look better or to work well with Gnome.
By default. It is also going to collaborate with other things, but it is fact
that there is a special emphasis on Gnome.
There is another window manager named XEWM, one of the hackers from GNOME
is working on it also, this is another of the window managers that is going to
take a lot of advantage to GNOME. Now there is another big difference between
GNOME and KDE, that is in GNOME we do not beleive that C++ is the best language
in the world, and Qt in a certain way forces you to use C++. There are bindings
for other languages, but as far as I have seen, you must program in C++ if you
want to use Qt. Then, we basically believe that C++ is a language of bad taste
that happens to have a lot of publicity, but besides that is one of the worse
mistakes made in the history of programming languages. We use more C, Objective C
and Scheme. Amongst the developers there is who likes C++ and we have some C++ code.
But right now the distribution of Gnome has code in Schemem in C, C++ and in
Objective C. If anyone wants to work in Ada, go ahead. It botthered me a lot about KDE,
that one had to program in that garbage of language. The other thing is that
we beleive on using scripts, in other words, having a functionality in the programs
that permit you manipulate them. Then we are using Scheme, possibly we will
use Perl or Python for other things, but for the moment we are using Scheme in some
applications that will let it run faster and let is do more things. This is the basic
idea. We are reaching the moment were this thing can be actually used. Gnom is a
GNU project supported by Debian and Red Hat.
LF: When will it be possible to release a stable version?
Miguel: Well, that is going to depend on how many people help.
LF: How else is in the project?
Miguel: Bitch! It is a tribe: 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 is providing hard disk and is providing the CVS depository, that is what
we use to coordinate the work of all the developers around the world, all the developers
have access to this machine. It has a very good connection. If someone proofs he
can write good code and is good, we give him account in this machine. Then
he can actualize the code. Usually we discuss things, and if the code is fine it
goes inside.
Alan Cox, wrote the TCP/IP for Linux. He also ported Doom, the one was just
released for the public domain to Gnome. It cost him a great deal, but he did it.
We will also have GnomeVision.
|