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, simple and fairly portable. If you
have monochrome graphics where video memory is located into normal RAM
(Atari/Amiga), W is a bit faster than X. It's main goal is to be easy
to program for though.
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:
- No support for truecolor modes (besides monochrome).
- Neither block nor text functions support graphics modes.
- Only one line width (therefore no different line join and end
types either).
- Graphics contexts are window specific, not separate.
W has also a couple of things which X lacks:
- Slanted text style.
- Splines (easy when one doesn't need to worry about line joins).
X11 features missing from W1R4
X11R5 features missing from W1R4:
- Lots of things are hardcoded (e.g. key mappings in backends
which support them, window management policy)
- 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 font server.
- Protocol extension mechanism and shared memory extension to make
local image transfer faster.
- HW acceleration support (W GGI backend could easily be made
to support HW acceleration that GGI offers).
- Extensive test suite.
Later X11 versions have these additional features:
- Support for vector fonts.
- Support for Unicode text and fonts.
- Support for loadable binary drivers.
- Support for OpenGL and Video.
- Many advanced widget sets.
W1R4 and X11R5 size difference
On MiNT, the statically linked monochrome W server is 100KB and
X11R5 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 won't matter
that much though.
oak@welho.com