[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

So what the hell is wrong with X? (was Re: [OT] Why does X need so much CPU power?)



on Tue, Sep 02, 2003 at 12:20:24AM +0200, Nicos Gollan (gtdev@spearhead.de) wrote:

> IMO the whole X(free) system needs a healthy kick in the butt. It's
> one of the main factors in keeping Linux away from the desktop, not
> just lacking in performance and features, but also a royal PITA to
> configure with new problems cropping up every five minutes.

Bollux.

There are specific faults to X11.  The technology as a whole is not
broken, and any wholesale replacement would have to answer to a great
many requirements.

I hammered on this back in March at Kuro5hin, commente titled "So what
the hell is wrong with X?", reproduced here:

    http://www.kuro5hin.org/comments/2003/3/21/141438/512/137#137

    The Future Of XFree86 | 184 comments (150 topical, 34 editorial, 0
    hidden)

    So what the hell is wrong with X? 
    by kmself on Sun Mar 23rd, 2003 at 06:54:20 PM EST
    http://kmself.home.netcom.com/

    I've just been engaged in a discussion of what's wrong with X and
    XFree86 [31]at zIWETHEY. Lightly adapted.

    I've seen a lot of instances of people grousing about X. I've seen few
    suggestions for improving the situation which seem to be both better
    and workable. In particular, cutting network transparancy from the
    graphics subsystem, or positing projects like Fresco as replacements,
    seem very poor alternatives.

    The suggestions in this discussion that problems with XFree86 with
    XFree86 be addressed by opening up the development effort (or possibly
    forking it), and by modularizing the system further, do seem like
    useful ideas.

    While (some of) the XFree86 folks seem to think that network
    transparency is irrelevant to "the majority" of desktop GNU/Linux
    users (that would be accomplished by 50%+1 users), I'd say that this
    isn's something I'd toss lightly. Network transparency is very useful,
    and lends itself to numerous neat hacks.

    Among them:

      * Dickless (diskless) workstations. Suck your apps over a remote
        link, display locally.
      * Local users sharing displays.
      * Multiple users sharing displays.
      * XNest. Running X-in-X sounds pointless...until you need to run at
        a different color depth, want to try another WM, or otherwise need
        to put a graphic environment in its own sandbox.
      * Display of remote apps on a local display.
      * Above. Tunneled through SSH.
      * Moving applications between displays (xmove).

    The main complaints I've seen articulated regarding X appear to be:

     1. The development process has some lumps. This isn't an indictment
        of X, but of the XFree86 team. I won't say that this is fully
        independent of other aspects of development (e.g.: architecture,
        licensing, code quality), but it's a loose corrolary.

     2. New hardware is supported slowly. I don't know enough of what's
        going on here to comment meaningfully. The problem appears to be,
        however, a mix of vendor fuckwittedness, XF86's own internal
        methods and conflicts, and fnord knows what. When support does
        emerge, it generally appears to be pretty good -- high
        resolutions, many colors, good refresh rates. Not sure if there
        are driver goodies that GNU/Linux doesn't see, but all I want is
        my 1200x1600 @32bpp, 85Hz.

     3. Performance bogs. I don't run high-end enough video to note this.
        Peter's the gamer, and doesn't complain about this (and Peter is
        of course loath to complain about anything that doesn't suit him
        perfectly...) And Peter responds:

            Aside - On the same hardware, Windows XP's OpenGL
            performance is slower than that achieved under X. Test
            application is Quake III Arena. I get 100FPS at 1024x768x32
            (full detail + trilinear + 2xAA) while I only hit 90-95
            under Windows with the same settings. This is a dual boot
            box, so hardware parity is absolute :-)

     4. Configuration. In particularly, on-the-fly reconfiguration of X
        resolution and refresh [Note: I've just learned of XRAND in this
        topic today, need to look into it]. Somewhat obviated by the
        ability to use XNest and multiple displays. I don't use the
        latest'n'greatest GNOME/KDE stuff, just Debian's dpkg-reconfigure
        xserver-xfree86, which walks through some pretty clear menu-driven
        options. I'll grant though that this remains a disadvantage,
        largely minimal though. [32]Knoppix addresses this by managing
        everything automagically -- even lets you specify your resolution
        and/or refresh at boot, and configures to spec. Well, sometimes.
        I've found resolution specs tend to be followed, but my refresh
        preference (85Hz) usually isn't.

     5. Inconsistent interfaces. This speaks more to X's history,
        longevity, and success than anything else. X has Been Around the
        Block. And survived. There have been a number of different
        toolkits -- Athena, Motif, Gtk, Qt, Tk -- each being suited to its
        time. While there's a level of confusion and configuration
        complexity which results, this argument boils down to the premise
        "choice is bad". Sorry, I don't ride that bus.

     6. Display postscript / AA fonts. Again, this appears to be something
        that's being addressed, possibly in piecemeal fashion. But there
        are now desktops with integrated DPS (e.g.: GNUStep) and AA font
        support (e.g.: KDE).

     7. Programming interface. I hear a lot of grousing over this, but
        there are tons and tons of apps written for X. I can't speak to
        this as I'm not a programmer, but the problem hardly seems
        insurmountable.


    Anything else I'm missing?

    Any replacement for X would have to address several issues:

      * Backward compatibility. X apps would have to be runable.
        Preferably transparently, not in a separate box ("unmanaged
        mode", in the typical lingo of X server vendors). There's a huge
        library of existing X apps, and none for any of the potential
        replacement system.  It's suggested that this can be addressed
        in a replacement system.  Possibly, but this creates a hornet's
        nest. Andrew Grygus writes:

        In any case, I see no reason why people who need the
        capabilities of X can't continue using X, but for "normal
        desktop users", much of the X stuff isn't useful, but raw
        performance, smoothness and ease of programming are very useful
        for a number of application types.

        If apps need to be specifically targetted at one system or the
        other, and if Fresco doesn't provide network transparency in a
        model at least superficially similar to X (e.g.: client -display
        host:0), this isn't sufficient, as there's now the very
        significant threshold barrier of either writing
        network-transparent apps, or apps for the system which aren't
        backwards-compatible to X. I see this as a killer.  And Peter
        Whysall notes:

            Microsoft are starting to wedge ideas from X into Windows -
            witness the emergence of RDP and, on a more useful level,
            the ability of Citrix Metaframe XP to throw a single
            application window across the network.

            [Network transparancy is] irrelevant to most users, my arse.
            Irrelevant to *home* users, I'd buy. App servers and Citrix
            products are starting to become common again in corporate
            computing. Gryge - one bloke's disillusionment with a dead
            development model is NOT an insightful comment into the
            state of the art of graphical user interfaces.

        Andrew again:

            "Choice" is what open source is supposed to be about, and if
            a good measure of compatibility can be maintained between
            two environments designed for users with different needs, I
            think that would be excellent.

        Absolutely. I don't think you're interpreting my comments as
        opposing choice or dictating X. I'm not doing either. Rather,
        I'm indicating that any alternative will be dead in the water
        until it addresses (or overcomes by other means, e.g.: massive
        cash infusions from elsewhere) these structural / systemic
        issues.

      * Network transparency. The new system will have to be network
        transparent. Otherwise, you're writing apps for either X or the
        new system. And network transparancy is sufficiently useful (see
        above) that it's going to persist, or the replacement won't be
        adopted. The issue of apps being bidirectionally compatible may
        be an issue as well. More significantly: network transparency is
        most valued by skilled, technical, and power users. These are
        the same folks who do the bulk of development. This will impact
        uptake and architecture in no small way.

      * Seperation of mechanism and policy. X is a useful model for
        developing displays for many types of platforms -- the
        GNU/Linux-based handhelds, for example, run X. If GNOME is
        overkill for a 260x140mm display, rather than rewriting all your
        apps, you just slap a different WM on top of it. And despite the
        prevalence of GNOME and KDE, there are many people who prefer
        different window managers (I'm highly partial to
        [33]WindowMaker.  Tilly likes FVWM2, Peter was fond of XFCE, but
        he changes desktops faster than I swap grilfs). Of course,
        seperation of mechanism/policy is one of the frequently iterated
        criticisms of X. Grossly misplaced. Uniformity buys, well,
        uniformity. At a huge loss of flexibility. Approximately 100%

      * It most be overwhelmingly superior. Free software vastly favors
        incremental enhancement, particularly over core, and
        deeply-integrated components, over revolutionary development.
        Even where options can be fairly painlessly swapped out, say
        filesystems, migration is slow. Look at the uptake of journaling
        filesystems. This changes virtually nothing in the day-to-day
        use of a GNU/Linux system, but I'd still warrant use of ext2fs
        is the majority. Switching to ext3fs is transparent (well, with
        kernel support). Reiserfs offers more benefits for a one-time
        copy-off-and-restore penalty. My bet is this: $100 says X11 is
        still the basis of the predominant GNU/Linux desktops in ten
        years. Too much inertia, too few benefits, too much uncertainty.

    And I really am interested in responses, commentary, criticisms, or
    corrections. I keep seeing this matter raised. I see little clear
    articulation or benefit from alternatives I've seen posed though.

    References

    31. http://z.iwethey.org/forums/render/content/show?contentid=90399
    32. http://www.knopper.net/knoppix/
    33. http://www.windowmaker.org/

-- 
Karsten M. Self <kmself@ix.netcom.com>        http://kmself.home.netcom.com/
 What Part of "Gestalt" don't you understand?
    Defeat EU Software Patents!                         http://swpat.ffii.org/

Attachment: pgpfTi5UC1fyM.pgp
Description: PGP signature


Reply to: