[clue-talk] Why X? [long, with provocative questions]

Matt Gushee mgushee at havenrock.com
Wed Apr 20 19:44:59 MDT 2005


Joe 'Zonker' Brockmeier wrote:

>> day. And I had this crazy idea that maybe I could finally get her to 
>> switch to Linux. After all, GNOME coming along nicely, good tech 
>> support available right in the house, set the default language to 
>> Japanese, even install some very nice Japanese fonts that I have, yes, 
>> yes, she'll like that--whereupon I got my rude awakening: today's 
>> beautiful, state-of-the-art Linux desktop is ... not just slow, but 
>> appallingly slow.
> 
> You don't say what the machine is, so I'm not sure what your idea of 
> newer and faster is... I'll assume you're talking about a reasonably 
> fast machine, something with at least a 1 GHz CPU and 256MB of RAM or more?

It was an objective statement, since I was comparing her machine with 
mine. And I have to disappoint you--it's about 600 Mhz, with about 128MB 
of RAM (so actually she has a faster CPU and less RAM). But, see, that's 
part of what I'm talking about. It really wasn't very long ago that that 
machine would have been considered plenty fast. Now everyone despises it 
  as "ancient." Seems like the Linux world has given in to the 
artificial "need" to keep buying faster and faster hardware.
> 
> Also, which distro are you using? Just out of curiosity - GNOME on 
> Fedora Core 3 vs. GNOME on Ubuntu vs. GNOME on Slackware may be a 
> different animal... Also, which GNOME? I'm running GNOME 2.10, which is 
> supposed to be a bit improved vs. GNOME 2.8.

Arch. Which is supposedly one of the fastest distros around, though 
honestly I haven't noticed a whole lot of difference on my own boxen. 
But it's interesting to hear that GNOME 2.10 is better than 2.8, because 
2.8 was in fact what I installed.

>> I've seen and heard over the years, I can't help thinking that a 
>> significant part of the problem is the venerable X Window System--in 
>> particular, the fact that it is a client-server system.
> 
> That's an interesting conclusion. X hasn't changed that much over the 
> years, at least as far as I'm aware, in terms of performance, whereas 
> GNOME/KDE have added a great deal of features and so forth. The 
> client-server architecture hasn't changed much, but the desktops have.
> 
> Also, I know that desktops like XFce, Blackbox and FVWM are much more 
> lightweight and offer better performance than GNOME or KDE, and they 
> still use X - so it would seem the logical conclusion would be to point 
> the finger (you decide which finger) at GNOME rather than X.

Well, I was making an implicit comparison with Windows. According to 
what I hear--borne out by the little experience I have had with Windows 
lately--is that the Evil Competing System is significantly faster in 
doing anything with video. And of course, GNOME and KDE are the most 
nearly Windows-like in terms of functionality and eye candy. The others 
achieve better performance with fewer features. And I have the distinct 
impression that for any given feature set the Windows approach performs 
better.

Now, it's debatable whether all those features are necessary. For 
myself, they aren't--in fact I bet the lightweightness of my desktops 
would amaze many CLUE members (and that's a big part of why I was 
shocked at the performance of GNOME). And I could talk your ear off 
about what kind of system I think normal people would like if they just 
tried it with an open mind. But people are used to Windows-style 
desktops, and seem not to want to try anything different.

>> downright sluggish. And then there are annoying little side-effects 
>> like not being able to run GUI configuration utilities as root without 
>> "xhost+ localhost." 
> 
> That's a feature, not a bug. Having to approve X connections for 
> different users is a Good Thing(TM) security-wise.

Obviously it's a security measure. But to what end? Suppose I work in a 
cubicle, and somebody wants to mess with me. Okay, they could get me 
fired by planting porn pictures on my desktop, or they could hack my 
window manager config so that my desktop gets all screwy and I can't do 
my work. Either of those can be easily done without root access. 
Conversely, suppose somebody does have root and they want to really 
trash my system, or break into a corporate database. How would it help 
them to be able to run GUI apps?

Whereas, for a home or small business user that feature often becomes a 
nuisance. I notice you haven't mentioned small business--still a very 
important part of the economy. And small businesses are likely to care 
about security and reliability, and certainly care about the cost of 
systems. Sounds to me like a big potential market for Linux.

> I'm not going to offer an opinion on the client-server performance vs 
> and architecture like Windows or the Mac OS because I have no idea 
> whether the performance actually suffers or not due to the client/server 
> nature of X.

I don't know either. I was suggesting, partly in the hope that somebody 
might actually know about that.

> However, I will offer this: If I run X11 on my iMac, I 
> don't notice any noticable degredation in performance when using X apps 
> running on the Mac or being run on a Linux machine displayed on the Mac.

Okay, that's interesting to know.

>> Now, it's not too surprising that few people have tried to replace X, 
>> and so far they've all failed--obviously the technical challenges are 
>> huge. But what I'm really wondering about, and this is the question I 
>> want to put to you all, is why everyone thinks that a client-server 
>> windowing system is a good idea. At least that's how it seems, given 
>> that when a group of open source people did put together a serious 
>> effort to replace X (Berlin/Fresco), it was also client-server-based.
> 
>  From the single-user, single-desktop perspective, it probably isn't any 
> better. From the multi-user perspective, however, it offers flexibility 
> that you don't have with the other architectures.

As I acknowledged. But what I was questioning was how often that really 
benefits people. Between having been overseas for a while and having 
mostly worked for small companies while in the States, I don't have a 
huge amount of experience with the mainstream of corporate America. But 
my impression is that, while it's nice, e.g., for employees to be able 
to log in to the same desktop environment anywhere in the building, in 
practice most people sit at one desk most of the time, using one 
computer, so that *that specific box* is effectively a single-user system.

>> Maybe I'm ignorant, but I don't get it. Of course, I've heard of all 
>> kinds of cool ways you can use X's networking capabilities. But most 
>> of those cool uses, as far as I can see, are utterly irrelevant to 
>> typical computer users in typical environments. 
> 
> Well, what's typical? I make heavy use of X's networking capabilities, 
> so does that make me atypical?

I'm not sure what's typical, but I'm pretty sure you're not it ;-) 
You're a long-time Linux user, and a writer on geeky topics.

>> Apparently, too, the fact that you access X through a well-defined 
>> protocol is seen as an advantage. 
> 
> Better than an obscure, undocumented protocol, I wager.

Are you trying to get pedantic on me? Of course you're right as far as 
that goes. But that's not the comparison I was making.

>> So why not build a windowing system that accesses the hardware 
>> directly? Or maybe through a hardware abstraction layer--anyway, get 
>> rid of the networking part. It would make for a more manageable 
>> project, and probably provide much better performance. It seems 
>> obvious to me, yet I can't recall ever hearing of developers being 
>> interested in such an approach.
> 
> Stripping the networking part of X kills off a lot of interesting uses 
> for Linux - thin clients using XDMCP, for example. While this isn't in 
> big usage in homes, it's of interest to corporations who may be 
> deploying Linux workstations.

Okay, now we're getting somewhere. I'm not very familiar with XDMCP; how 
  is it useful? And when you say "a lot" of interesting uses, any idea 
what portion of the market that represents? After all, we're talking 
tradeoffs here. I never claimed X wasn't useful, I'm just questioning 
whether its benefits outweigh the costs.

> Well, I think there are a number of factors to consider:
> 
> 1. The pain of moving to a new system. Even if X sucks, look at all the 
> work that would be required to go to something new - it's not just 
> writing a replacement for X, it's getting GNOME, KDE and everything else 
> to work with the replacement. That's going to take some doing to 
> convince everybody that the way to go is to move to something new.

Fair point. Though philosophically speaking, I think the whole WIMP 
paradigm has got to go, to be replaced maybe by something like Jef 
Raskin's Humane Interface
   <http://rchi.raskincenter.org/aboutrchi/index.php>,
I know that revolution will take a while at best.

> 3. X's features are of interest to many of us. One of the reasons I 
> prefer Linux is because I know I can run Program X on Host A and display 
> it on Host B or Host A, which is particularly convenient if I find it 
> inconvienent or difficult to install Program X on Host B.

Okay. Personally, I find that the stuff I need to do over a network is 
rarely GUI-oriented, but maybe I'm strange.

> 4. History and tradition. X is part of Linux/UNIX culture and tradition. 
> Newer Linux users may not care about that, but longtime users will 
> largely be resistant to efforts to reduce functionality and make 
> Linux/UNIX more like Windows.

Maybe. But why, then, are GNOME and KDE so much like Windows? To take 
one simple example, the traditional X root menu is arguably more 
user-friendly than the Windows-style "start menu." But no, we gotta have 
that little button down in the wrong corner of the screen 'cuz that's 
where Microsoft put it.

> 5. Cross-platform support. I can run a program on Linux and display it 
> on a Mac. I can run a program on Linux and display it on Solaris, or 
> vice-versa. I can run a program on Linux x86 and display it on Linux 
> PPC, and so forth. (Also tied to #3)

Hmmm. Now that you mention it, my first-ever experience with X was 
running XEmacs from an AIX server on my OS/2 desktop. Actually, it was 
awful. But I felt at the time it was wicked cool to be able to do that.

> 6. Other problems to solve. X works,

OSS mostly worked, yet people developed ALSA anyway. I'm glad they did.

Well, thanks for your thoughts.

--
Matt Gushee
Englewood, CO, USA



More information about the clue-talk mailing list