Silly 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 small, fairly portable and fast.
It's main goal is to be easy to program for.
Window managers
- W has a simple builtin window manager.
- 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 and means less network traffic. On monochrome systems
the memory used for the window backups isn't an issue, except for
window resizes which need to reallocate memory, 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.
All servers don't support that though.
Messages
- W server doesn't support any kind of inter-client messaging yet.
W library has simple clipboard functionality.
- X server has both the clipboard and inter-client messaging.
Graphics subsystem
As X is older, widely used 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:
- Incomplete color support.
- Neither block nor text functions support graphics modes.
- Only one line width (therefore no different line join and end
types either).
- No vector font support.
- Graphics contexts are window based.
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 default (X11, HTML, MIME, Windows, Amiga...).
- No client authorization. W server doesn't have much access
restrictions for clients. W_TOP windows used for screen locking
can be created only by the person running the W wserver (same
uid and local connection).
- No server event timestamps yet.
On MiNT, the statically linked monochrome W server is 100KB and X11
500KB. 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