[KLUG Advocacy] Linux Outpacing Macintosh On Desktops

Adam Williams advocacy@kalamazoolinux.org
26 Sep 2002 09:29:40 -0400


>>My personal beef with OS-X is that it isn't X.
>To this day, despite all that XFree86 and GNOME and KDE have put forth,
>X does not look as good on a local display as Windows or Mac.

Ok.  As someone who is red-green color blind it is self-defeating to
argue on such a point.  But I can tell you that X looks *MUCH* better
than it did when I first started using it in ~1993.  With GNOME2
everything on the screen can be antialiased, etc...  So the gap is
closing.  Apple, or anyone else, could certainly close this gap if they
chose to.  Under Xfree 4 the renderer, etc..., were all made modular. 
This was clearly done so that replacements for aging models could be
developed more easily.

>Crank up xman(1). Doesn't look pretty, does it? Now go back and take a

I don't think that is fair.  xman uses Xt, which no one developes with
anymore.  

>careful look at the original, paper-white monitor Macintosh. It doesn't
>look much better, does it?

Actually, I think it does,  but that may just be preference. :)

>Yes, the original X apps had the funkiest
>scroll-bars in the world (to go with their three buttons) but really--
>the Mac looks a bit more polished than X, and the user interaction is
>simpler, but that's about it.

Again, here we are comparing Xt and ROM Mac.  Pragmatically, neither of
these technologies exist anymore except as archaeological foot notes.

>Fast forward 18 years. We have the same gap. I'm running XFree86 (X11R6)
>4.2.1, KDE v3 and Mosfet's Liquid widget set. This is about as nice as
>the Unix desktop gets these days. And it still doesn't look as good as
>Windows (twm beat Win3.1 but that's about it) or Mac. I work behind some
>VERY big pipes, and my home machine is on DSL, but I wouldn't use X
>between them with anything more graphix-oriented than twm (and only with
>a solid-color background).  I've tried several flavors of X and VNC;

I've found VNC, and even X, to be quite usable over long hauls,  but
then I've read the X11 users manual,  so it may be under the category of
configuration problems.  "ssh -C" helps.  Also, although almost lost in
the mists of time is lbx, low-bandwidth X. 

But locally over the LAN,  X11 works great.  I use it mostly "over the
wire" and think it is pretty snappy.

VNC, even over a LAN, is not "snappy."  But it is only intended for
utility use, not as a desktop export protocol.

But primarily we are talking about the local desktop.

>speed is always an issue (I won't even address configuration--one X
>server displayed a Mozilla window with NO VISIBLE TEXT). And locally,

No doubt that X config can be easily screwed.  But on controlled
hardware configuration is never an issue.  I'll wager one of the reasons
Mac OS is so easy to install is the death grip Apple holds on the
hardware.  Proprietary platforms have an advantage.  I've *never*
plugged something into one of my RS/6000s and had it not work.  Because
AIX is so great?  No.  Because IBM knows everything about every device
that I can physically connect.  Either a device is a standard one (IDE,
SCSI, etc...) or it is on a list of supported devices.  My experience
with Macs shows the same mentality (not necessarily a bad thing) when it
comes to configuration - a.) I know what that is, I configure it now OR
b.) nope don't recognize that, I completely ignore it.

>Excel still looks better scrolling a monster spreadsheet--the impression
>of the spreadsheet scrolling by the Excel window frame is smoother than
>an X desktop.

I'm not so convinced of this.  It seems to depend in large part on the
application.  Most Open Source spreadsheet simply gag on large
spreadsheets anyway, including Open Office and Gnumeric.  I use massive
spreadsheets in Star Office every day, scrolling seems fine (much better
then OO, interestingly enough)

>Now, for what I do, I prefer X's utility to Windows/Mac's polish. But a

As do I.  I recognize the fact that it is a feature other people don't
care about, or even understand.

>lot of people don't. Staring at a CRT can still be painful on the eyes
>and emphasizing a smooth desktop is a point in Windows/Mac's favor.

Sure.  I'm not dissin' Aqua (or whatever they call that part of it now)
as a solution or a technology.  I just think it would have been great,
and possibly helped Apple's corporate adoption (which is still a big
problem) had they built it as an X module.

>I've read a lot about how X is/isn't bloated, or is/isn't fast enough,

Whether it is bloated or not depends on one's perspective.  To me
bloated means sloppy code, excess dependencies, and duplication of
functionality within the application core.  I don't know enough C to
even comment on X11's code.  And from the design documents Xfree 4 looks
like it is not bloated.

As for speed... I do see a fair number of people complaining about
extreme slowness, being able to watch widgets paint, etc...  I can't
argue with them as I'm not using their machines.  But I certainly do not
have this problem.

>and what have you. What I always end up with is the impression that the
>guys who built X acted a lot like Chrysler engineers.
>    (See, many years ago, all Chrysler cars had torsion bars instead of
>    coil or leaf springs. The engineers said the ride was "just the
>    same." Most consumers didn't think so, and you can tell that because
>    1, Chrysler was #3, and 2, even the Mopar racing freaks in love with
>    their Hemi's knew that Chryslers couldn't steer for crap, which is
>    where Douglas Adams got, "Looks like a fish, moves like a fish,
>    steers like a cow.")
>As far as I have ever read, and I've been very curious about this, the X
>developers have NEVER thought that a local video card could EVER
>outperform exporting your display through a network card. NEVER. They
>never even thought of it. It was never something that crossed their
>minds. Rather than write their software to admit that performance would
>probably degrade the further away your display was, and install certain
>settings that would reflect this, and act to mitigate the reduced
>expectations, the X people simply said, "All software shall act as if it
>runs on the slowest machine in the universe."
>Well, as a political statement, that might get you somewhere. As a
>design principle, it's a suicide pact. Rather than tell someone trying
>to get their US Xterm to display in Russia that massive buffering will
>take place, and that clipping will occur to speed up the app (or putting
>these controls in the hands of the developers), X makes all applications
>suck *but* *never* completely improves the worst performers *but*
>*always* penalizes the local apps that might shine by never giving them
>the structure (that could never be available to remote apps, due to lag)
>that could make them shine.

I don't know enough to argue any of that.  But from what I've read in
the "original" X users manual, many of the design assumptions you state
are probably true.  But I'd also emphasize that the XFree of today is
**NOT** the X of twenty, or even three, years ago.  Again, much of this
is now purely historical.  I can take tricks from the X users manual
that actually won't work anymore.  Having used "true" X (not Xfree) on
proprietary platforms I can assure you that the technologies are
divergent and bear a relation at the point of the X11 protocol only.

The ability to "giving them the structure" exists within XFree.  In
fact, it is used by many applications.  Playing video uses technology
such as shared-memory that isn't available of remote displays.  To use
such an application on a remote display one typically has to set a
parameter to specifically disable that X feature.  The frame buffer
support in recent kernels and hooks for kernel space video modules is
also a part of this.

My point is, that technologically, one can have ones cake and eat it
too.

I'm all for extending X, replacing its rendering model, etc... to a
point.  I think rendering, etc..., in kernel space is a VERY bad idea,
but so long as I can disable it, so be it.  Performance at the cost of
flexibility and stability just isn't real performance.

>I'm sorry to dump this all at once but I've really got hives from people
>who refuse to look critically at X's failures even though many people
>are working to fix them:

I'm VERY aware of X's failures, and the failures of Linux, Open Source,
and the "UNIX model."  

The religion section of my library is in a different room than the techy
section.:)

But lets not cast dispersion where it is not due.

X11:

Fonts - Past support was crappy, with Xft this problem is pretty much
historical.  A single font store for x, gs, etc... is just around the
corner.

Configuration - Crappy,  but better than it was, and still improving
rapidly.  Will never match the ease that can be accomplish on a closed
hardware platform.  Note that Video configuration in Windows sucks just
as bad.

Kerning - Available in modern widget sets.

Anti-aliasing - Available on current desktop environment (at least in
GNOME2).  Some hinting issues remain to be resolved, but are under
active development.  

Performance - I guess this one is up for grabs.

Rendering - Modular.  So if it isn't good enough some one needs to get
coding.  I don't know enough about the ins-n-outs of drawing a display
to comment much on this.  There is a display postscript rendering module
at http://dps.sourceforge.net/ for example.

>http://www.xfree86.org/~keithp/
>http://dps.sourceforge.net/
>    The X Window System (X11) is the most commonly used window system on
>    Unix-like systems. X11 has many advantages: it is small and
>    efficient, it runs on a wide range of hardware, it is
>    network-transparent, it is well-documented. X11 offers powerful
>    facilities for window management, for event handling, for
>    synchronisation, and for inter-client communication. Unfortunately,
>    the facilities offered by X11 for rendering are often not sufficient
>    for many applications. Jim Gettys, one of the creators of X11, when
>    arguing about the need for a rendering extension, wrote the
>    following: 
>    We designed a good (I'll say it: damn fine) window system, with a
>    (with 20-20 hindsight) poor rendering system.
>    It seemed like the right idea at the time (in fact, it probably
>    was the right idea at the time), but technology has finally run
>    over the idea. I had qualms even in 1987 about X11's rendering
>    model, but did not understand enough about alternatives (just
>    developed, and certainly not practical on the machines of the day)
>    to protest too loudly about what we were doing.

Sure.  But should I say my Ford Ranger sucks because my Ford Model-T is
cantankerous?  If I'd driven the Ford Ranger down a street in 1919 they
might have though I was a space alien.  It still has an infernal
combustion engine, has four wheel, a steering wheel, head lights, and is
made by Ford.  But saying Ford sucks because one had a bad experience
with one in a past life just isn't fair.

Looking at 1987 X (which I've used!) and Xfree 4 is like looking at a
Model T and a Ranger.  Do some design limitations still haunt it? 
Probably,  but I see no indication that these are insurmountable, or
even monumentous.