Interview: The Rasterman|
Posted on Saturday, July 20 @ 02:03:00 EDT by staff
There are a few genuine legends in the Linux community, and among
them is an Aussie named Carsten Haitzler. Who? That's right -- the name
probably means nothing to you. but his nom de code inspires awe
in many. He is The Rasterman, and for many years he has been the symbol
of innovative, uncompromising excellence in pushing the potential of the
Linux desktop to and past its limits. He is the founder, though
"inventor" would not be too strong a word, of the Enlightenment
project, an infinitely configurable window manager that is working its
way toward becoming a desktop, even though he thinks the desktop battle is lost. In an email interview, he
talks about what he's doing, his view of the future of desktop Linux,
the nature of development projects -- commercial, community-based, and
genius-based -- and much more.
Linux and Main: What are you doing nowadays?
The Rasterman: I'm in Sydney now. I'm working for a small
contracting firm here working on Linux embedded-related stuff.
LaM: We saw a report a year or so ago that described a
talk and demonstration you gave. The report was written in awed tones
-- as if the writer could not find the words to describe what he'd seen, but
that it was clearly the future. What new areas have you been exploring?
R: Embedded display systems using a canvas API. Basically... EVAS. :) it was
written at first to help build efm and subsequently e 0.17 (still being worked
on) and it's growing up to be even bigger than I had imagined in its
scope. The new evas codebase is tiny (191kb compiled for arm), handles X
and the Linux framebuffer (more display targets coming) is lean on RAM,
fast, and easy to use... more will come from this - but there's barely
space here to start describing.
LaM: At about the same time, there was a rumor that you and
Daniel M. Duley, known to many as Mosfet, were discussing some kind of
collaborative effort. Anything to it?
R: I'm a bit vague on my memory. Daniel is a good bloke and does lots of good stuff
for KDE & themes. Can't recall though - anything more specific to jog my
[Note: There was nothing beyond the rumor, so no additional
details to provide.]
LaM: As you look at the graphical desktops for Linux other than
Enlightenment, do you think they're growing in the right directions?
What are the best things you find in projects like KDE and GNOME? Where
do they most fall short?
R: KDE, I think, are doing a good job. GNOME are behind but
look a bit nicer (still) thanks a lot to good artwork :). I've stopped
paying attention really to the "desktop war," though. I tend to not keep
much track as I just use my own stuff all the time.
LaM: Where do you think the future lies for desktop Linux?
R: Not on the desktop. Not on the PC. Not on anything that
resembles what you call the desktop. Windows has won. Face it. The
market is not driven by a technically superior kernel, or an OS
that avoids its crashes a few times a day. Users don't (mostly) care.
They just reboot and get on with it. They want apps. If the apps they
want and like aren't there, it's a lose-lose. Windows has the apps. Linux
does not. Its life on the desktop is limited to nice areas (video
production, though Mac is very strong and with a UNIX core now will
probably end up ruling the roost). The only place you are likely to see
Linux is the embedded space. Purpose-built devices to do a few things
well. There is no encumbent app space to catch up with as a lot of the
apps are custom written. It's still a mostly level playing field. This
is where the strengths of Linux can help make it shine.
LaM: Where do you think the future ought to lie for
R: There is none. The future for Linux for anything that isn't
a headless server in a back room tirelessly serving out data and
services all day long is on the device market, from PDA to phone to
LaM: What's the least-tapped area of desktop development, if
there is one > -- a place where there's room for real growth and
R: Again - not much. The device space is where the interesting
stuff is at. :)
LaM: Some projects in Linux -- KDE and GNOME are among them --
have become truly huge, involving hundreds of people. You've worked on
very big projects and on smaller ones, where you have more control,
without the need for a consensus before a feature is added or a direction is
chosen. Is there anything lost when a project grows to a size where
scores of people are involved? Does the model of free software
development that works so well when there are just a few developers
scale well? Does it have advantages over the lone developer or small
group of developers?
R: When projects get too big people spend more time in
politics (talking on mailing lists and waiting for others) than actually
doing something useful. Generally, splitting something up, not autonomous
units, and have them work on their own and just end up working in unison
ends up more efficient, imho. This still means people have to agree how
they interface, but again, imho, the "benevolent dictator" method when
one or a very small number decide the important bits (the glue between
the parts) and then let the rest roll. I also don't see "the more the
better" as better. Too many cooks spoil the broth. Sometimes one or two really
good people will easily beat 10 or 20 average ones only working on something in
their spare time. I personally prefer the "crack troops" style. Get five
or six really good people and they can do a lot. Hundreds of
part-timers, imho, don't work as well.
LaM: You've worked on your own, and in a highly praised
project or two, and you've also worked in a more formal setting with a
Linux company. What are the advantages and disadvantages of each as you've
experienced them? Would you be likely to work for a Linux-based company
again? Would you be likely to start a Linux-based company, as some of
the GNOME people have done with Ximian?
R: Advantages: You can work on stuff full time and get
hardware, bandwidth, support - but more than anything - time, to do things.
Disadvantages: When your company and its projects differ from your personal
goals and projects, things grate. The job isn't just a job. You code insanely -
easily 40, 50, 60, 70+ hours a week. But it's not just a job - it's a life, so
you care very much, and when your company doesn't agree with what you care
about, things get bad.
Would I work for a Linux-based company? Certainly. I don't think of having a
"job". I don't have "working hours". I am always thinking about the code
I'm working on, or working on it, when I get out of bed, at night before
I go to sleep, weekends, on planes. any time. And thinking about
designs, solutions etc., anywhere from walking down the street to being
at dinner or lunch. It's not a job - it's a lifestyle and working for a
Linux company melds in well.
Would I start one? Certainly - if I could get the
venture capital - but who would fund such a thing these days... even if
I could pull some really smart motivated people together - I could, but
who would pay them whilst we busily develop a product to actually sell?
Bring the VC back as it used to be three years ago or so and I wouldn't
even blink before giving it a go.
LaM: If memory serves, there was a time when you didn't think
the GPL was the best of all possible licenses.
R: Still don't.
LaM: What kind of license do you think would be best for
spurring growth of Linux on the desktop while also addressing the
needs and desires of developers themselves?
R: I choose BSD with the advertising clause. Why? It lets
people steal the code. Yes. If someone is smart they can steal any code
they want, GPL, BSD, even commercial code. Dis-assembling to figure out
the smarts of a system isn't new. Any programmer half-smart can take any
GPL code and morph it into something so unrecognizable it would be
impossible to prove legally (beyond reasonable doubt) that they violated
copyright. I'm a realist. I know anyone could steal my code if it was
GPL - so why live in a fantasy? Accept the fact, let them steal it -
just ask them to be nice and tell you they did so you at least get the
satisfaction of knowing your code was of use to someone. That's my view on it.
LaM: Enlightenment was initially the window management system
for GNOME, but now Sawfish is chiefly used. How did that come about? Was that a
disappointment to you, or in retrospection do you see it as a good thing?
R: Actually incorrect. Enlightenment started long before GNOME
existed. It was a window manager that did more than just manage windows.
It was completely themable, handled your desktop background, pagers,
launcher bar, icons and menus and more. It merely was the first (and for
a while the only) window manager to fully support gnome applications.
That is all.
I offered to mould e to be the GNOME wm, but at the time Miguel was convinced
you could do a desktop without a wm. I got quite bored of explaining this wasn't
possible, so by the time he realized he needed wm support I was merrily making e
do its own thing again regardless of GNOME and its goals. Eventually
GNOME got its own wm(s). Good for them. But e never was intended for
GNOME - was around before GNOME, and still does its own merry thing.
Personally, I'm very happy not to have to debate standards for eons and just get
to go on and do interesting things and experiment with freedom. It was that
freedom with experimenting that brought you window managers that could do themes
and pixmaps in their borders, and shaped windows borders, pagers that showed
miniatures of your desktop and more... now everyone does them, but e did most of
them first and broke the ground. I plan on keeping on doing some
LaM: Speaking of Enlightenment -- where is it headed? What
paths is it following that other desktops aren't?
R: It's a really nice way for me to test evas and push it to
do more :)
LaM: For years, Enlightenment has had the reputation of being
unquestionably the most attractive desktop imaginable -- some say for
any platform, Mac included -- but really difficult to configure. Is
that reputation deserved? Do you think it ever was? Who is the user
who would find enlightenment especially rewarding?
R: Difficult - yes. I agree. :) I always intended the really
cluey people to make configurations for the less cluey, and for them to wrap up all the complex
options into nice simple bundles, but that never happened, so now I'm moving to
doing that myself.
LaM: As Linux has grown, so has the horsepower of the
equipment needed to do much useful with the newer stuff. Do you think
the idea that Linux is the desktop of choice for those who have older
equipment is now pretty much dead? What does it take to run
Enlightenment? How does this compare with the "big" desktop
R: Personally, since hardware is so dirt cheap I see no
difference between Windows and Linux. Enlightenment was never intended
for old systems - fvmw or twm do the job quite fine. It's intended to
make use of all that raw cpu and gfx power you have - since most of the
day it sits and does nothing (just check your cpu stats one day).
Computers spend more time waiting on users to catch up than anything
else really. :) E is there to poke and prod and do something new. KDE
and GNOME are there to appeal to the masses. :)
LaM: You've been working on ways of making direct desktop
calls to OpenGL. Given its level of development and relative complexity in
configuration -- at least as it's shipped by Linux distributors -- how
do you write around what might be seen as a rickety aspect of the X
Window System? Are you presuming users who have gotten it set up
and working well, or do you hope that distributions will have gotten
it sorted out a little better by the time your desktop software is ready
for broad use?
R: No no no. Thats not evas. Evas is a canvas - you don't draw
like "draw a line" "draw a box" draw this string" "paint this image".
It's object based. You create a line. You create an image.
You move and resize the objects, show and hide them, etc.
Evas handles all the logic there of how to redraw and what to redraw most
optimally. It also abstracts to the display system underneath;
one such display system is OpenGL - evas handles that as one of
its output systems. It can also just use your cpu or basic Xserver
calls,and more. OpenGL is simply a way of making the routines display
faster if your hardware is supported by OpenGL. Personally I avoid
OpenGL, as its still waay too flakey to trust, and instead
rely on my own software cpu rendering routines.
LaM: Will e still play nicely with the new GNOME? Can it
readily be set up > as the window manager in a GNOME 2 system?
R: Simple answer: no :)