To view parent comment, click here.
To read all comments associated with this story, please click here.
I'm sorry, I disagree. The first rule of designing robust complex systems is modularizing the components that make up the system. This has nothing to do with using systems on different machines. It's just good software engineering practice. The people who say X is broken, poorly designed, or slow are clueless twats. The fact that X is network transparent or capable is just a side effect of its powerful well designed server-client architecture. An architecture clearly ahead of its time and embarrasingly under-utilized. I'm not saying the X implementations do not have their drawbacks. But of all the windowing systems out there, it clearly has the most potential to evolve, as it has done for years. And to date it is still the most powerful, modular, network-aware and flexible architecture out there. Eye candy, transparency and wobbly windows are orgasmic geek delights that are only skin deep. And before long all these will be on X. Oh ma bad, I spoke to soon. Have a look at XGL.
Then explain why I need to have super-duper hardware just to get okay performance. Like I said, I have an ATI card with 64 MB of video RAM. The desktop should fly (I don't care about 3d at this point). But it doesn't. I've upgraded to 7.0 with the new drivers and I've tried using COMPOSITE and EXA. EXA is still broken (screen corruption and no noticeable improvement in speed). COMPOSITE is nice, but everything is slower. Again, I'm not using some cheap onboard video card, I'm using a real video card and 2d desktop performance is still crappy. I used to have a crappy onboard graphics card with shared RAM and it was painful to use X. How come Windows can fly on even crappier hardware, but X given a really nice video card can produce okay performance? Because it's a pile of shit, that's why.
Passing calls is not what makes X slow (this part can be very efficient). Old driver model with lack of proper video acceleration is. Combined with latency produced by ancient design of xlib and lack of damage/composite extensions in older versions of X.
XGL is fast, and XCB should reduce latency as well.
The passing around of calls is what creates the overhead labor anyway. Everything is seperated, and thus not tightly integrated. Great if you you want to use the graphical capabilities of a machine elsewhere (which is what X was designed for basically), but this setup isn't used by 99.9999% of users.
Which has nothing to do with it; the protocol by itself is no more or less inefficient that TCP/IP or any other protocol for that matter; the issue is libX11 and the issues with in that.
They have a replacement solution, XCB (http://xcb.freedesktop.org/wiki/) which addresses the latency, threading and other issues which needed to be addressed.
If there is an issue, its the fact that Xorg hasn't merged it in, depreciated X11, pushed tools kits to XCD, and gradually allow X11 to die the same fait which the bad fashion of the 1980s did.
As for the server/client design - that is how BeOS operates, same goes for MacOS X and heck, even Windows has a server/client model for its display.
Like I say, don't blame the protocol, blame the Xorg maintainers and their unwillingness to make the merging, and pushing of XCB over libX11.






Member since:
2005-07-06
Poor division of labor? The X Window system is perhaps the most modular system out there.
The passing around of calls is what creates the overhead labor anyway. Everything is seperated, and thus not tightly integrated. Great if you you want to use the graphical capabilities of a machine elsewhere (which is what X was designed for basically), but this setup isn't used by 99.9999% of users.
Anyway, I might be off. For a humorous (but dated) look at it:
http://www.art.net/~hopkins/Don/unix-haters/x-windows/disaster.html