[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Miguel's speech on lwn.net?



On Wed, Jul 26, 2000 at 10:11:14AM -0500, Kara Pritchard wrote:
> 
> Hmn, Miguel de Icaza did a presentation at the recent show in Ottawa
> that's a bit, uhm, interesting to say the least... Comments?
> 
> http://www.lwn.net/

It's my opinion that Miguel is the one who's, in his words, "smoking
crack".  More to the point, he thinks UNIX sucks because he doesn't
get UNIX.

First off, Miguel doesn't get a lot of things right in his rant.  X
wasn't designed by the UNIX people, and isn't particularly wedded to
UNIX; consider that X is the graphical API for VMS, for example.  It
might have even ended up being the graphics API for DOS, had history
been just a little different.  (I'm thinking of DesqView X here.)
And, of course, projects like Berlin prove that UNIX can do more than
just X.  So how are X's failings UNIX's failings (outside of UNIX
mavens picking a poor GUI system)?

Indeed, UNIX doesn't pick GUI "policy", whatever that means.  UNIX was
designed back before the GUI, so this shouldn't surprise anyone.  It
does have a very definite "policy" concerning its inner workings,
though.  The oft-quoted "small tools, consistent interface" ideal is
the "policy" UNIX imposes, and with great success (I think).

In this respect, the GNOME project isn't really very innovative,
either.  Sure, it's great, and I think it's more innovative than the
KDE project.  But consider: which lessons, of those learned back in
the early UNIX days about pipes, toolkits, and consistency, have made
it into the GUI?

Sure, X (and GNOME, and KDE, and...) is divided up into small pieces
that can be interchanged - to a degree.  But consistency?  X is a
hodgepodge of pieces with a multiplicity of interfaces that must be
strictly adhered to.  One of its goals was session management; can you
simply stick a window manager in as a session manager like, say, you
can stick "ispell" in place of "grep" in a pipe and get comparable
results?  Not really.  And that's probably the one place where two
pieces really do work somewhat alike.

Consider that GNOME is really proud of themselves that they can talk
to any window manager - as long as the window manager respects a
certain API and does things a certain way.  Can you imagine that in
the command-line world?  "Well, grep 6.5 altered its interface to
stdout to allow for better integration with less; unfortunately, the
changes broke wc a little bit, so line counts won't work well for a
while.  RMS is working on wc 7.4, which should get wc in line with the
new stdout conventions and fix the issues with grep."

This is the Microsoft way.  No, they didn't invent it, but they
brought it to perfection: a multiplicity of changing interfaces, each
of which must be strictly adhered to.  Hooking the functionality of
one program to the functionality of another is a matter of hacking,
and if you don't have the source code, you're resigned to a limited
set of ever-changing APIs that must be kept up with, and with pieces
breaking at random because of some incompatible interaction between
this piece and that piece.

And this is the utopia that Miguel wants to bring to UNIX!  No,
thanks.  I like GNOME (I prefer it over KDE), but if it ever gets to a
stage where it does everything like Windows - complete with all the
brain-damage that implies - then I will go back to WindowMaker, or
twm, or anything that doesn't cause your GUI to go belly-up every
day.

No one has yet designed a graphical system that works the same way
UNIX works - with small tools and consistent interfaces between them.
At least, not yet.  One might argue that we didn't have the tools
before; all the GUI systems we have may be just a cacophony of Multics
projects, all waiting for someone to get pissed off and write a UNIX.

That, by the way, is one of the reasons I'm rooting for Mozilla.  Say
what you will about its lag time, its size, etc.; you must admit,
however, that Mozilla is closer to the UNIX ideal than anything else:
consistent interfaces (XML ruling all) to (relatively :-) small tools
designed to do small jobs and hook into other small tools.  Look at
XMLterm in Mozilla, or the stuff Alphanumerica (www.alphanumerica.com)
is doing if you don't believe me.  Tell me it isn't cool to do an 'ls
-l' and being able to drag-and-drop the files in the resulting list!

I think that something akin to a merging of Web technologies and good
ol' UNIX Software Tools philosophy is the future of user interfaces.
At least, it will if the Microsofts (and their slobbering fans) can
stop looking at what we've been doing and try to take the lessons of
the ancients to heart, instead of the modern heresies with all their
blue screens.
-
To unsubscribe, send email to majordomo@luci.org with
"unsubscribe luci-discuss" in the body.