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/

Reply via email to