Announcement

Collapse
No announcement yet.

Drafting Plans For X12, The X11 Successor

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #41
    Originally posted by V!NCENT View Post
    That's cool and all, but everytime something dares to 'advance', there are always people saying "Isn't what we have good enough?".
    Wayland is a step _backwards_, because it removes the network transparency which makes X so great. And it does so in an era where people have never been more networked, when the evangelists tell us that we're all going to be running programs in The Cloud, while displaying the output on our phones.

    I honestly don't understand why the whole IT industry seems to be in full metal retard mode right now; everyone is abandoning things that work in favor of the Glorious Utopian Future which will do less and do it less efficiently.

    Comment


    • #42
      Anyone who claims to have used and *liked* Xlib is either a fool or a lying fool. It's that simple. 25 years ago, Xlib might have been the best thing since sliced bread. Guess what? Times change. Xlib didn't.

      Now, I'm sure there are people who grew up writing Cobol for a living. Some, in a perverted form of masochism, may have even ended up liking the language. That doesn't mean the language doesn't suck, it just means they are looking at it through rose-colored glasses.

      As someone who has been working with xlib, win32, carbon, cocoa and a handful of other low-level APIs for the better part of a decade, rest assured that xlib/X11 is every bit as painful as most people claim it is. Its design is fundamentally broken. For instance:
      • Bad threading model. XInitThreads must be the very first call and every single call must be protected by XLockDsplay/XUnlockDisplay. Good luck embedding a 3rd-party component that doesn't follow this pattern in your application. For instance, GTK+.
      • Ill-designed mouse input system. No relative movement events, single mouse wheel treated as two discrete *buttons* not an axis (making polling impossible), all modified settings take effect globally (e.g. your FPS game needs to disable pointer acceleration; if it crashes, it will remain disabled *globally*). No way to disassociate the logical from the physical mouse location. No support for high-resolution wheel events, multi-touch or any other remotely modern feature.
      • Ill-designed keyboard shortcuts model. In conjuction with the above, this leads to a huge number of applications calling XGrabPointer/Keyboard, which is a fucking usability nightmare.
      • Awful multi-monitor support. There are several different, incompatible multi-monitor APIs, each with different capabilities. Some APIs will cause the screen to flicker just by querying available video modes. It's such a nightmare that it's only in 2011 that X11 gained the ability to block the mouse pointer from entering the void outside visible monitor areas (something that has never even been an issue on other operating systems).
      • Drawing commands are slow and extremely low quality (no antialiasing, no subpixel precision, plain bitmap fonts, a fucking nightmare). Using these is the best way to make your application look like a sad 1990 relic. Video rendering must go through a different API. Hardware-accelerated video rendering through one of 3 different APIs. Accelerated drawing commands through yet another different API.


      XCB fixes *some* of those issues but introduces more of its own. Try creating an EGL or OpenGL context with it, for example. Besides, XCB doesn't alleviate any of the input, multi-monitor and rendering problems.

      So yeah, keep shoveling shit over a bad foundation. The result can only go one way, and that way is down the drain. Apple relegated X11 to an optional legacy component of its desktop OS and banished it completely from its mobile one. Google did the same and based Android and ChromeOS on completely different technology. Mainstream Linux distros are preparing to jump ship as soon the replacement is ready. KWin and Qt can already run on Wayland.

      Make no mistake, X11 is on its way out. It will remain as a legacy option, but investing large amounts of time and money into it no longer looks like a very bright idea.

      Comment


      • #43
        Originally posted by movieman View Post
        Wayland is a step _backwards_, because it removes the network transparency which makes X so great. And it does so in an era where people have never been more networked, when the evangelists tell us that we're all going to be running programs in The Cloud, while displaying the output on our phones.

        I honestly don't understand why the whole IT industry seems to be in full metal retard mode right now; everyone is abandoning things that work in favor of the Glorious Utopian Future which will do less and do it less efficiently.
        Martin, of KWin fame, has covered this fallacy much better than I ever could. X11 network transparency is dead.

        Some juicy tidbits:
        X11 Network Transparency is not Suited for Modern Applications

        The idea behind the network transparency is to send drawing commands over the wire (useful idee for the requirements of 30 years ago). Nowadays modern applications do not use X11 any more for rendering. They use technologies like Cairo, Clutter, QPainter (Raster) or OpenGL directly. Without using X11 for rendering you end in streaming pixels over the wire. And there are clearly better technologies to do that than X11. Face it: network transparency is going to break very soon even without Wayland. I want to see the Qt 5 used over the wire.

        Modern Applications require DBus

        Yes DBus is not network transparent and yes most modern application use it, for things like StatusNotifier (this one has fallback to Xembed) or moving the menus somewhere else. Now without network transparency these things are just shown on the wrong system or not at all. Damn stupid devs not thinking about network transparency? So face it: no modern app can be used without DBus which breaks implicitly also the X11 Network Transparency.

        Comment


        • #44
          X11 network transparency is dead.
          Says who? I use it, and will continue to. Windows has network transparency for practically everything, and it was a painful but necessary transition.

          Also, the architectural decisions behind dbus are *not* something I'm fond of, and it breaks a lot of the paradigms I like about Unix-likes. I personally never intend to develop any software that makes use of it, and avoid using software that requires it whenever possible.

          I would really like to see something like DPS or NeWS gain wide adoption as a graphics server. OSX actually has a pretty neat graphics model along these lines.

          A good graphics server could also potentially make hardware acceleration of a lot of operations a much easier task.

          Like I said, you can happily render directly to your Wayland composited environment if you like, but I want to see a real communications protocol for clean separation between components.

          The fact that X11 is outdated and has serious flaws today is not an argument against network transparency.

          Comment


          • #45
            Why is there a problem with Qt C++ streaming, or GTK+ HTML streaming?

            Look, I understand that 0.006 procent of all people would like to call home to play Doom3 at work. The problems is that it is:
            A. Ugly and outdated;
            B. Replacements exist (Windows remote desktop can get your work done without X11);
            C. X.org can still work on top of Wayland.

            X11 just stalls all kms+gallium work. It's not even a state tracker...

            If X12 would be invented, nothing is problem. It's called X11 because it has already changed 10 times from version 1, and X wasn't the best graphics streaming client. It's a bit like the Gnome of the networked graphics; it's a faint smell of piss in a subway; it's everywhere and there's nothing you can do about it.

            Comment


            • #46
              Originally posted by movieman View Post
              Wayland is a step _backwards_, because it removes the network transparency which makes X so great. And it does so in an era where people have never been more networked, when the evangelists tell us that we're all going to be running programs in The Cloud, while displaying the output on our phones.

              I honestly don't understand why the whole IT industry seems to be in full metal retard mode right now; everyone is abandoning things that work in favor of the Glorious Utopian Future which will do less and do it less efficiently.
              X11 over network is so slow as to be completely unusable for everything except where you have to use it - for example installing oracle on a networked server on some strange unix where no nx exists.
              I'd gladly do away with that POS in favour of some sort of remote desktop that actually can be used even if your connection speed is slower that, say, fast ethernet.

              Comment


              • #47
                Originally posted by AlbertP View Post
                Agreed, but when X on top of Wayland is still needed, why not take X12?
                If X12 will give the same improvements as Wayland then probably nobody will protest. However, Wayland is already in development.

                Comment


                • #48
                  Originally posted by kraftman View Post
                  If X12 will give the same improvements as Wayland then probably nobody will protest. However, Wayland is already in development.
                  Wayland is simply a WM state tracker (much like X.org will be, but then with a stable API).

                  Now there is no way why anyone, with at least half a brain, would want to replace Wayland. The point is that X12 should be on top, like Xlib is on top of X11, or (still on top) inside the widget toolkit.

                  Cutting the xlibish layer will improve speed, but not compatibility. X12 directly on top of Wayland will be slow and laggy.

                  I'd say the best option for this soup is:
                  - Wayland on top of Gallium and other things;
                  - Widget toolkit on top of Wayland;
                  - X12 next to the widget toolkit (also directly on top of Wayland);
                  - Problems solved.

                  Comment


                  • #49
                    Originally posted by V!NCENT View Post
                    Wayland is simply a WM state tracker (much like X.org will be, but then with a stable API).

                    Now there is no way why anyone, with at least half a brain, would want to replace Wayland. The point is that X12 should be on top, like Xlib is on top of X11, or (still on top) inside the widget toolkit.

                    Cutting the xlibish layer will improve speed, but not compatibility. X12 directly on top of Wayland will be slow and laggy.

                    I'd say the best option for this soup is:
                    - Wayland on top of Gallium and other things;
                    - Widget toolkit on top of Wayland;
                    - X12 next to the widget toolkit (also directly on top of Wayland);
                    - Problems solved.
                    Of course, the real question is why you'd need X12 in this scenario? You can already layer X11 on top of Wayland with no performance impact, so backwards compatibility is a non-issue. Remote access to non-X11 applications can be solved through a forwarding server (these applications are not X network transparent anyway) . You already have all the functionality you need, so why add a hypothetical backwards-incompatible X12 server to the mix?

                    Personally, I don't believe X12 will ever materialize nor that X11 will ever go away. At some point we'll get a modern, fast stack and an X11 compatibility layer, exactly like Windows and Mac OS X (just a decade later).

                    If X12 will give the same improvements as Wayland then probably nobody will protest. However, Wayland is already in development.
                    Exactly. Wayland exists, X12 doesn't. It's that simple.

                    Or, seen in a different light, Wayland is X12.
                    Last edited by BlackStar; 18 October 2011, 07:12 AM.

                    Comment


                    • #50
                      A lot of people are saying that Wayland lacks certain features. But why can't things like network transparency be added later? Isn't Wayland still in development? You shouldn't expect everything to work immediately.

                      Comment

                      Working...
                      X