[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