

Xplain: Explaining X11 for the rest of us - momo-reina
http://magcius.github.io/xplain/article/

======
SimHacker
In his '90 Usenix presentation, Dennis Ritchie reminded the audience that
Steve Jobs stood at the same podium a few years back and announced that
X-windows was brain-dead and would soon die. "He was half-right. Sometimes
when you fill a vacuum, it still sucks."

\-- Dennis Ritchie, coinventor of UNIX, from an article in UNIX Today

[http://www.anvari.org/fortune/Miscellaneous_Collections/1332...](http://www.anvari.org/fortune/Miscellaneous_Collections/133229_in-
his-90-usenix-presentation-dennis-ritchie-reminded-the-audience-that-steve-
jobs-stood-at-the-same-podium-a-few-years-back-and-announced-that-x-windows-
was-brain-dead-and-would-soon-die.html)

------
RyanZAG
I haven't really gone through X11 before, but the API really is terrible. How
have we managed to hang onto this monstrosity for so long? I get people have a
fondness for something that has held up for so long, but the huge complexity
and difficulty of hardware acceleration means it's time to throw it out.

[http://magcius.github.io/xplain/article/x-basics.html](http://magcius.github.io/xplain/article/x-basics.html)

Head over there and drag the kitten around to see why. Now your average Linux
desktop builds a lot on X11 to get it to perform how it does now, but all this
effort is a huge waste. Just compare it to something like Apple's UIKit or
Android's layouts - it's well past the sell by date.

~~~
bitwize
X has had a feature, called backing store, to get around that since the 80s.
Individual windows can request backing store, and there's an option you can
set in xorg.conf to enable backing store for all windows.

X11 actually anticipated a future of composited windows, each with their own
separate buffer to draw into, well before its rivals -- due in no small part
to being intended to run on much more advanced hardware than Windows or Mac
OS.

~~~
RyanZAG
The issue is the added complexity of having to enable backing stores and the
multiple code paths. It's not about "how much we can glue inside X11 until it
sort of works sometimes".

You can throw out 95% of X11 and most developers would be much happier, bugs
would go down, and everything would still work fine.

~~~
Jasper_
Yes, that's why Wayland was invented. 95% of X11 is not necessary anymore, but
it was in the 80s.

------
SimHacker
The more important question of whether or not systems like C++ and X-Windows
cause actual permanent brain damage in humans, will have to wait for the
autopsies of human brain doners. That won't be soon, since they're still only
in the animal experimentation stages. But I think it's reprehensible how
they're exposing all those poor innocent bunnies to shoddy static class
libraries without garbage collection, and high doses of raw Motif.

[http://www.cse.unsw.edu.au/~chak/quotations.html](http://www.cse.unsw.edu.au/~chak/quotations.html)

------
hardwaresofton
This is pretty awesome. Love to see great write-ups of popular *nix
components. Can't wait to read more!

------
pimeys
I'd like somebody to remind me when this is finished and I can read it all.
Great stuff!

~~~
drunkenfly
You could follow progress via Github repo:
[https://github.com/magcius/xplain](https://github.com/magcius/xplain)

------
xtrumanx
Great read, especially enjoyed learning about why IE6 did that thing it
did[0].

I'm not sure why I enjoy reading things like this. I have no intention of
getting into X development or graphics programming for that matter but it was
fun read nonetheless.

[0]
[http://www.mrdoob.com/lab/javascript/effects/ie6/](http://www.mrdoob.com/lab/javascript/effects/ie6/)

------
gioele
Lovely guide, too bad that it is so short: only one chapter and the
introduction.

Any plans for new chapters?

~~~
Jasper_
Yep. I'll announce them on my blog when I make a new one:

[http://blog.mecheye.net/](http://blog.mecheye.net/)

------
BadassFractal
This article is really helpful, I've been looking for something exactly like
this.

------
Kreels
Nicely done. I love it that you have a server running in JS. Very nice. Very
much looking forward to the next installment.

...I've always been a bit of an X11 fanboy, so thanks for this.

------
nailer
Pardon the honesty, but this too academic, and not tasked based, for a 'rest
of us' style.

Further reading: OK, this is an X developer's guide. You should call it that.
It will help developers find it and stop the average Joe who wants to run a
remote app on his local display from trying to use the wrong guide.

~~~
Jasper_
Yeah, I guess now that I think about it I didn't think too much about that
tagline.

