Comparison between W1R4 and X11R5
First of all, W and X are intended (or have evolved) for slightly
different purposes. X is a heavy-weight networked graphics system
whereas W is a intended to be fast and only for personal use (into
intranets :)). Therefore W lacks some features built into X but is also
much smaller.
Window managers
- W has a simple builtin window manager as this is simpler.
- With X one needs an external window manager. This is more
flexible as user can select (from window `managers' available)
one which has the needed functionality.
Window redraws
- W keeps backups of all window contents (for non-container windows)
and does all the redraws by itself. This simplifies W server and
libraries + is faster. On monochrome systems the memory used for
the window backups isn't an issue (window resizes need then to
reallocate memory though), but color systems are quite a different
matter...
- Normally X uses redraw messages for redrawing the windows, but
there's also an option for window specific backing storage (most
useful when the window contents aren't widgets or bitmap(s)).
However, all the servers don't support that option and therefore
programs need to implement the redraws themselves anyway...
Messages
- W server doesn't support any kind of inter-client messaging yet.
The latest W Toolkit implements a clipboard between clients
residing on the same machine though.
- X server has both the clipboard and inter-client messaging.
Graphics subsystem
As X is older than W and commercially supported, it understandably
supports graphics hardware better, has more complete graphics contexts
and function sets. W graphics functions have the following deficiencies
at the moment:
- Neither block nor text functions support graphics modes.
- Only one line width (therefore no different line join and end
types either). This `feature' will most likely remain.
- No arc function (there will be bezier curves soon, that should
suffice :)).
- Graphics contexts are used only by the server, they aren't
in the Wlib / available for the user.
X11R5 features missing in W1R4
- No keyboard mappings yet. At least cursor key mappings should
get in to the W revision 5. Currently applications use Emacs keys:
C-F, C-B, C-P, C-N, C-A, C-E. Characters outside ASCII (code 127-255)
should eventually be converted / interpreted as ISO-latin1 as that's
the current standard (X11, HTML, MIME, Windows, Amiga...).
- No client authorization. W server doesn't have any kind of access
restrictions for clients (there's a wlock program for locking the
W screen from other users though).
- No server event timestamps yet.
On MiNT, the statically linked W server is 100KB and X11 500KB (both
monochrome servers). When running, W server uses about 300KB and X11
900KB of ram. Statically linked Wlib binaries are about 50-90KB, Xlib
ones 120-300KB, W Toolkit ones 100-200KB and Athena widget set ones
400-800KB. With shared libraries the library sizes wouldn't matter that
much though.
puujalka@modeemi.cs.tut.fi