The Wayback Machine - https://web.archive.org/web/20071006034121/http://www.catb.org:80/~esr/writings/taouu/html/ch02s06.html
Once again the next genuine advance came from the Unix world,
though its true significance would not be apparent for several years
after the fact. That was the release of Version 10 of the X window
system from MIT in 1986. The X design, begun in 1983 but not widely
deployed until Version 10, accomplished three important
things.
First, in 1987-1988 X established itself as the standard
graphics engine for Unix machines, a hardware-independent neutral
platform on top of which to build GUIs. This ended five years of
confusion and dueling proprietary window systems that had badly
fragmented the workstation market, making it uneconomical for most
third-party vendors to port their applications. Significantly, X's
major advantage over competitors for that role (most notably Sun's
NeWS. Networked Window System) was being open source; it was backed by
a consortium including most major Unix vendors. X thus prefigured the
rise of open-source Unixes five years later.
Second, X supported distributing applications across a TCP/IP
network. With X, a program could throw its interface on any networked
display it could reach by sending requests to the X server attached
to that display. The server, not the application, would then perform
all the BitBlts necessary to put pixels on the memory-maped screen.
This further decoupled Unix GUIs from the hardware.
Third, X separated policy from mechanism. It provided only
generic graphics and event-handling, leaving the esthetic and policy
issues in GUI design up to toolkit libraries or applications.
In fact, X represented the first fundamental advance in GUI
infrastructure to achieve actual deployment since the days of the Alto
itself. The Macintosh may have reinvented and improved the PARC GUI,
but remained a monolithic system intimately tied to particular
hardware ? indeed, for many years the Mac GUI actually relied on
patented ROMs and could not have run on machines without them as
software only even if the Mac operating system had been ported. The
Amiga GUI was similarly tied to specialized graphics chips included
with the system. X reasserted the Unix tradition of portability and
clean separation of functions.
Despite its advances, X has attracted its share of brickbats
over the years. Some parts of the design (including, for example, the
resources feature) are notoriously complex and overengineered. The X
APIs (application programming interfaces) are so baroque that toolkit
libraries to simplify GUI programming are a stark necessity rather
than merely a convenience. The design contains a lot of fossils and
scar tissue related to odd and now-obsolescent graphics
hardware.
The most serious indictment of X, however, is related to its
separation of mechanism from policy. This has led to a huge
proliferation of toolkit libraries and window managers. The Unix
world, has, so far, been unable to settle on any one of these as as a
stable unified standard for GUI look-and-feel. This is in stark
contrast with other GUIs like the Alto's, Macintosh's or Amiga's,
which wire in large parts of interface policy and thus make for a
smoother and more uniform user experience than X provides.
Unix fans believe that over longer timescales the laissez-faire
approach of X turns into an advantage. The argument is that policy
ages faster than mechanism; X's flexibility helps it adopt new
discoveries about UI while engines with more fixed policies gradually
lose their appeal and relevance. Who, today, would buy the primitive
etch-a-sketch look of the Alto GUI?
This debate is still live. The Linux community, at the forward
edge of Unix, remains split between two major toolkits (GNOME and Qt).
On the other hand, at time of writing in mid-2004 X is in the final
stages of a successful architectural overhaul which gives it some
dramatic new capabilities ? without breaking compatibility with
applications going clear back to the release of X11 in 1987!