X Window System Turns 30 Years Old 204
An anonymous reader writes "One of the oldest pieces of the Linux desktop stack still widely in use today is the X Window System that today is commonly referred to as X11 or in recent years the X.Org Server. The X Window System predates the Linux kernel, the Free Software Foundation, GCC, and other key pieces of the Linux infrastructure — or most software widely-used in general. Today marks 30 years since the announcement of X at MIT when it was introduced to Project Athena." X wasn't new when I first saw it, on Sun workstations the summer before I started college. When did you first encounter it?
DECwindows ;) (Score:4, Interesting)
that's where I first saw X. at DEC we had DECwindows on ultrix (bsd like unix) and vax/vmx.
motif was the toolkit we developed guis in. and we used UIL to describe the UI, which was data that was read in and could change the look/feel of the widgets or their layout without rebuilding from source.
instead of node:1 for a display it was node::1 for the display (double colon meant decnet instead of that newfangled thing called IP)
1994-95 (Score:4, Interesting)
WABI (Score:4, Interesting)
First time I saw it was also on a Sun. Lowly kids like me (data entry clerk) had to use DOS on the job but the cool guys (engineers) had Sun workstations running WABI*. I was blown away by how much more advanced their stuff was than what we were stuck with. First time actually using it was when I finally managed to get Slackware installed along side Windows 95.
* Sun's Windows Application Binary Interface [wikipedia.org] which allowed a full blown Windows 3.1 installation to run on their "desktop".
Sun Lab in '87 (Score:5, Interesting)
It's funny, I'm working on a project for which a lot of the components were coded back in the mid '90s. The state of the art really hasn't advanced since then. The basic API (Xlib/Motif/Xcb) are nominally well documented -- you can find books and the library calls have man pages. Newer libraries and X extensions are a hodge-podge of largely-undocumented and generally incompatible API calls that take more work to integrate than they do to program in (Assuming you can find an example to work from.) The actual frameworks typically require you to drink all their kool-aid in order to use the framework. So I could go GTK+ or QT, learn their idioms and framework implementation details and that's great assuming I never want to change frameworks again and am willing to accept their quirks. And outside of QT, everyone (including motif/xlib) re-invent C++ badly with home-rolled type systems which often involve pushing strings around. Brilliant.
Somehow despite all this it still does what it does better than anything else I've seen. I'm not sure how this is possible, but there you go.
Re:DECwindows ;) (Score:5, Interesting)
We spent an inordinate amount of time and effort explaining (often to people with considerable software experience) why "client" and "server" were the wrong way round.
Comparison to Windows (Score:1, Interesting)
Grad school. 1990. (Score:4, Interesting)
Employer morphed from being a Unix shop (1990-2000) to Microsoft + Mainwin (2000-2010) shop, then slowly coming back to display agnostic (2011 - till date) (but limited to X11+OpenGL or MSWin) shop.
June, 1997 (Score:4, Interesting)
On a re-purposed Win NT 4.0 box running OpenCaldera 1.0. That was when I first dipped my toes into the Linux pool, and I've been swimming happily ever since.
Re:time to die... (Score:2, Interesting)
Another "network transparency" myth supporter.... I'm 44 yo, and was also amazed by X11 and has been a good company all this years, but NEEDS TO BE REPLACED. All X11 devs say the same, and all of them hate the useless X11 heritage and cumberstone codebase. Not to talk about graphic driver makers.
No one is using the "network transparency" of X11 as it was intended to be used anymore, and has been like this for years. (Unless you use Motif, like 0.0000001% of the X11 apps). NO ONE USES SERVER-CLIENT PAINT PRIMITIVES.
It's just image buffers sended over. Like VNC but without any optimization and using ugly paintig primitive trickeries.
We just need some rootless VNC-like something, and that's it. Trivial to do on wayland. It can even use the same "DISPLAY" method and make nostalgic oldschoolers happy.
Please wayland devels, implement this and shut "network transparency" gurus forever. They are annoying.
Hell, I'm about to start doing it myself.
Re:time to die... (Score:2, Interesting)
It is possible to have network transparency with Wayland.
The architecture resembles PulseAudio's concept of sinks/sources: in this case, applications and compositors.
Look it up!
http://tech.slashdot.org/story/13/04/03/1219239/remote-desktop-backend-merged-into-wayland
I realize it might not be as impressive as X's way of viewing it, but I'm sure you can do per-application and per-session forwarding with RDP (and if not, it should be possible to code an interface and allow people to choose their remote method). As it stands right now, X.org is basically sending screenshots back and forth.
Re:time to die... (Score:5, Interesting)
The protocol is fine,
Except for the fact that it has a limited set of extensions that can be supported and a load of command numbers are used for 'core protocol' stuff that no one has used for over a decade. It has no concept of security (you can easily steal input from another application, for example).
the library isn't that horrible unless your a newbie to dev
XCB is pretty nice, but xlib is a clusterfuck. It hides interfaces that need to be used asynchronously for good performance behind synchronous API calls. It's impossible to write an application that performs well over a network and does a nontrivial amount of drawing with xlib. It is with XCB, but it requires carefully designing your toolkit for asynchronous drawing, and all modern X toolkits have too much xlib heritage to easily adapt to using XCB as it's intended to be used, rather than as a lighter-weight xlib.