Matthew Gregan wrote:
> Would you care to enlighten us about the problems with X that are so
> serious it requires dumping the entire codebase and starting from
> scratch?
While I do not agree that X11 should be dumped, there are a few things
that need fixing. Here is my list of X problems.
1. Separation of the print and display systems was a costly mistake.
(A lot of the problems stem from this design decision.)
1.1 Fonts are far too difficult to install.
1.2 For the programer, printing is hard to do.
1.3 WYSIWYG is impossible. (Bug, or not :) )
2. X is too hard to configure for a newbie. (Fantastic for an
expert, on the other hand.)
3. No consistent widget set (Xt, Motif, Tk, QT, GTK+...).
4. Lack of standards for "fancy" UI features, such as Drag and drop,
clipboard, global menus, tasklists...
5. Lack of multi-media support (such as sound synchronisation).
Of these problems, printing (1) is impossible to fix, due to the "do one
thing, and one thing only" philosophy adopted by *nix (*mutter*).
Configuration (2) is getting better, and will continue to do so. (The
resolution problem is easily fixed if the UI installers put in all the
available resolutions to begin with.) Most people live with (3) and the
introduction of Metathemes should further improve UI consistency (once
all the programs standardises on QT or GTK+). Freedesktop.org is
working at making the "fancy" UI features (4) work between desktops, and
the last time I checked (a while ago, admittedly) XOpen were working on
some multi-media issues, including sound synchronisation (5).
In its defence, there are a number of things X got right.
1. It is standard. A 15 year-old Sun X terminal will happily display
a modern GNOME app'. I have not seen a convincing argument about
the problem with legacy support. All basic X does is draw lines,
rectangles, circles, and text to the display. �How, in the name
of all that is good and pure, are you going to drop that?
2. Separation of application and display management. I do not care
if the program has locked up, I can kill the window and it is not
in my face. (No, "kill -9" does not work all the time; it is
called "uninterruptable sleep mode" for a reason.)
3. Network transparency. It does not matter where the application is
running, it will display on my machine, no matter where I am.
This does not cost the UI as much as most critics claim, as the
data-transfer on modern X systems is done using shared memory.
As an aside, some researches at Xerox PARC made some programs that
followed the user. When you walked into a room your application
would appear on the display closest to you. (Yes, the owner of
the display had to turn this on!) Try doing that to Windows :)
4. THE MIDDLE MOUSE BUTTON for paste. (Ok, technically not an X
feature, rather a widget-set feature, but we will put it in
anyway.)
5. It is extensible. Screen-savers, True-Type and PostScript fonts,
drag 'n' drop, virtual desktops, alpha-transparency, move-playing,
panels, desktop icons, and 3D rendering were all added to X
without having to change the architecture. An X extension was
created, programs use the extension. X stays the same (see 1).
6. It is small. Most of the memory you see X taking up is due to the
enormous high-resolution monitor that you are looking at. Do the
calculation:
1,600 x 1,200 x 4 = 7,680,000B
Then throw in virtual desktops
7,680,000 x 4 = 30,720,000B
Now consider he fact that Linux lies about how much memory is used
:). Some memory is shared between multiple programs, such as X
and many of the modern clients. When Linux reports on how much
memory is used by a process it includes this /shared/ memory in
the total for both programs. This is normally not a problem, but
it does make X look like it is using *lots* of memory, when it is
actually the clients. (In the same way, Galeon is not using up 6
* 23 MB of RAM, rather 23MB, shared between six running Galeon
programs.)
(Ok, before Andr� pipes up, X is not as small as Photon, the
windowing system used by QNX, but it is small.)
Jeremy Bertenshaw wrote:
> Maybe dumping the legacy support would be a good start,
> offer some kind of compatibility module instead,
Putting in an X backwards-compatibility layer into another windowing
system, such as Aqua, is a bit pointless as the compatibility layer
would, in effect, be X. You can get X servers that work with other
windowing systems, such as Windows and MacOS, but these are rather thick
layers :)
--
Michael JasonSmith http://www.cosc.canterbury.ac.nz/~mpj17/