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

David Rudder david.rudder at reliableresponse.net
Mon Apr 18 21:46:18 MDT 2005


There's really two reasons to keep X, as I see it.  One is because 
XFree86 and x.org support a large number of graphics cards.  Writing new 
drivers, or porting X drivers, is a tough job.

The other reason is because so many applications are written for X.  
Although, I think GTK/Gnome and Qt/KDE can both target different 
outputs, so, in theory, you could port all Gnome and KDE apps to your 
new environment pretty quickly.  I think the Berlin project was trying this.

Probably the best reason, though, is simply that it's good enough.  I am 
using Gnome and have no speed issues.  I have a Matrox card, which is 
very well supported, and the desktop is pretty well accelerated.  
Scrolling is fast, moving windows, playing full-screen video, 3D video 
games, etc.  I can run X apps as root without opening security using 
kdesu. 

-Dave

Matt Gushee wrote:

> Okay, I've been sitting on this for a long time ... just can't hold 
> back any longer. BTW, the overarching theme here is "Linux on the 
> desktop." And I'm probably beating a dead horse. So if neither of 
> those things interest you, feel free to skip the rest of this message.
>
> Just for a little bit of background ... My interest in computers has 
> always revolved around end-user apps and environments. I started using 
> Linux back in about '96 for what I suppose were pretty unusual reasons 
> in those days: partly because I had come to hate Microsoft products, 
> but also because I wanted to be able to work with Japanese text 
> without using a Japanese OS, which was very hard to do with Windows 
> then (turned out it was pretty damn hard with Linux, too, but at least 
> most of what I wanted to do was feasible). I liked the freedom of 
> choice and the Free Software ideology, but never cared all that much 
> about the deep technical stuff.
>
> But anyway: back in those days, one of the major advantages of Linux 
> was performance. Even with (what was then considered) a full-blown 
> GUI, a Linux box could run rings around Windows, OS/2, or a Mac. True, 
> you'd have a butt-ugly desktop, but among all the little daily 
> struggles of an early Linux adopter, that was no big deal. Oh, and you 
> could stick Linux on an old machine and have it run very nicely. No 
> more having to buy new hardware whenever Microsoft decided you needed 
> new software.
>
> Fast-forward to late 2004. Got my wife a new computer for her 
> birthday. Or, well, actually the monitor was a nice new one, the 
> computer was used--but still newer and faster than what I use every 
> 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.
>
> Obviously this is a problem for Linux on the desktop. Sure, you can 
> buy the very latest hardware, but there goes one of the major 
> arguments for using Linux in the first place.
>
> So why is the desktop so slow? Perhaps part of the reason is poor code 
> in GNOME itself; maybe part of it is video card vendors not 
> cooperating with open source developers--though I gather that is much 
> less of a problem than it used to be. But, based on various things 
> 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.
>
> Now, my take on X (noting that I have only superficial knowledge of 
> the technical issues it addresses) is that the architecture made a lot 
> of sense at the time it was developed. In those days, CPUs, memory, 
> and software licenses were all expensive. And I guess, too, the price 
> structure of licenses encouraged multi-user, server-based installations.
>
> Nowadays, of course, things are completely different. The average 
> desktop PC is 10 times (or more?) as powerful as a Unix server of the 
> 80s. Mainstream software applications are relatively cheap, or even 
> free. So we install the apps right on everybody's desktop, and now 
> people can word-process or data-enter a half-second delay for every 
> character they type.
>
> But, on X, you still have client-server overhead. Apps don't run as 
> fast as they could, and if you have a "modern" desktop, they can be 
> downright sluggish. And then there are annoying little side-effects 
> like not being able to run GUI configuration utilities as root without 
> "xhost+ localhost."
>
> I'm sure I'm not the first person to notice this. I can recall reading 
> newsgroup threads back in the 90s where most people seemed to agree 
> that "X sucks, and we need to create something better." But it hasn't 
> happened.
>
> 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.
>
> 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. Apparently, too, the 
> fact that you access X through a well-defined protocol is seen as an 
> advantage. Makes it easier to develop X clients in different 
> languages, I suppose. But in practice, every GUI toolkit or X 
> application of any importance is built on top of C or C++ libraries 
> anyway. Given that reality, from a developer's perspective, why is a 
> client-server protocol any better than a library API?
>
> 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.
>
> So, opinions, please (without flames, I hope). Why does X continue to 
> be the only game in town? Has the community decided that it's really a 
> pretty good system after all? Or is it just too much work to build 
> something different? If so, weren't projects like GNOME, KDE, and ALSA 
> too much work too?
>
>   [*] I mean that, of course, in the traditional sense: someone who
>       likes to play around with code, *not* a breaker-inner or
>       messer-upper of other people's systems.
>
>
> Curmudgeonly-ly yours,
> Matt Gushee
> _______________________________________________
> CLUE-talk mailing list
> CLUE-talk at clue.denver.co.us
> http://clue.denver.co.us/mailman/listinfo/clue-talk





More information about the clue-talk mailing list