The X Window system was originally designed to run exactly three programs:
xterm,
xclock, and
xload. Originally these were meant to be started in the
.xinitrc file, using manually set
location and
geometry settings. Any additional
instances of those programs were to be started also using manually-set location and geometry via your
xterm.
As an afterthought, the developers thought they'd throw in a window manager to let people move things around. They produced the Tab Window Manager, twm. It's still included with the base X distribution on any Unix machine. Try running it sometime, it's pretty sad.
The reason X sucks so much at being a GUI is because it was not actually designed to do anything but run a few minor graphical hacks that were hardly better than ASCII graphics (read: xload, xmh), and to allow people to run two terminals side by side. It doesn't support innate drag and drop. It doesn't have any OS-level human interface conventions. It doesn't even have an active desktop without the aid of programs which run cheap hacks to give it one.
This is why X-Windows is so user-hostile compared to MacOS...and even Microsoft Windows. Funny that I should have such opinions, when my own nick is a play on the naming convention of X applications...
The following can be found in the default xinitrc file (/usr/X11R6/xinit/xinitrc), dated August 22nd, 1991... (note: this is still included in current distribution of XFree86 3.x)
# start some nice programs
twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
Try creating a new user account. Log in with that, and rm -f ~/.xinitrc. Then, startx. AND WITNESS THE SUCK.
Regarding msgs about how X11 is a network model and not a GUI: I'm not talking about the semantic details of how it works. For all practical purposes, anything running under
X11 has the same technical limitations. The
modularity of it is, really, what does it in. It
already runs in greater penalty of the
CPU and
memory than it ought to; piling
Gnome or
KDE on top of that is
just plain ludicrous. The only "user friendly" elements must be written by 3rd party developers, and this causes these basic
UI functions to be nonstandard and
higher-level than they are with any other
GUI model. So, if it pleases
pedants, I'm not putting down the
protocol itself, I'm putting down the
legacy that it has wrought.