Title

  • kevincox@lemmy.ml
    link
    fedilink
    arrow-up
    23
    ·
    2 years ago

    Back in the day X was a great protocol that reflected the needs of the time.

    1. Applications asked it to draw some lines and text.
    2. It sent input events to applications.

    People also wanted to customize how their windows were laid out more flexibly. So the window manager appeared. This would move all of your windows around for you and provide some global shortcuts for things.

    Then graphics got more complicated. All of a sudden the simple drawing primitives of X weren’t sufficient. Other than lines, text and rectangles applications wanted gradients, rounded corners and to display rich graphics. So now instead of using all of these fancy drawing APIs they were just uploading big bitmaps to the X server. At this point 1/3 of what the X server was previously doing became obsolete.

    Next people wanted fancy effects and transparency (like drop shadows). So window managers started compositing the display. This is great but now they need more control than just moving windows around on the display in case they are warped, rendered somewhere slightly differently or on a different workspace. So now all input events go first from X to the window manager, then back to X, then to the application. Also output needs to be processed by the window manager, so it is sent from the client to X, then to the window manager, then the composited output is sent to X. So another 1/3 of what X was doing became obsolete.

    So now what is the X server doing:

    1. Outputting the composited image to the display.
    2. Receiving input from input devices.
    3. Shuffling messages and graphics between the window manager and applications.

    It turns out that 1 and 2 have got vastly simpler over the years, and can now basically be solved by a few libraries. 3 is just overhead (especially if you are trying to use X over a network because input and output need to make multiple round-trips each).

    So 1 and 2 turned into libraries and 3 was just removed. Basically this made the X server disappear. Now the window manager just directly read input and displayed output usually using some common libraries.

    Now removing the X server is a breaking change, so it was a great time to rethink a lot of decisions. Some of the highlights are:

    1. Accessing other applications information (output and input capture) requires explicit permission. This is a key piece to sandboxing applications.
    2. Organize the system around frames to avoid tearing except for when desired (X doesn’t really have the concept of a frame).
    3. Remove lots of basically unused APIs like fonts, drawing and many others.

    So the future is great. Simpler, faster, more secure and more extensible. However getting there takes time.

    This was also slowed down by some people trying to resist some features that X had (such as applications being able to position themselves). And with a few examples like that it can be impossible to make a nice port of an application to Wayland. However over time these features are being added and these days most applications have good Wayland support.

    • LeFantome@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      As somebody that first configured X back in 1991, I agree with this message.

      To be fair though, with KMS, libdrm, and libinput, setting up X is 1000 times easier than it used to be. I suspect most users never even need to open Xorg.conf or even know it exists.

      Ironically, all these technologies are also used by Wayland. A lot of what Wayland does not do, Xorg basically does not do either.

  • Grain9325@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    2 years ago

    X is old and works for the most part but fixing stuff or adding features is hard.

    Wayland is new and is supposed to be a successor to X, do what it couldn’t do and don’t repeat the mistakes from it. It should be a drop-in replacement like pipewire but isn’t. Features take long time to develop as devs are engrossed thinking of the best solution to make it happen. A lot of proposed solutions are dismissed as well.

    • LeFantome@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      2 years ago

      I think the drama around Wayland can be explained by the sentence “it should be a drop-in replacement like pipewire but isn’t”.

      Without taking a side on that issue, I will point out that this was not a goal for the Wayland designers ( in their own words - I do not have time to go find a quote but have read this sentiment many times ). Wayland detractors agree with your sentence and, given that expectation, are legitimately upset and even confused that Wayland continues to gain mind and market share against X11.

      If you feel that Wayland needs to be a drop-in replacement for X11, it is not ready and may never be. By that metric, some people see Wayland as a failed technology and perceive Wayland users as shills and zealots.

      If you are interested in a display server that addresses some of the core design problems in X11 and do not mind moving to something new, Wayland is starting to look ready for prime-time.

      If you are non-technical and / or unopinionated the debate is probably irrelevant. Wayland will most likely become the default on whatever Linux distribution you use sometime in 2024 or 2025. You will be a Wayland user. Maybe you already are.

      If you are willing to step outside the mainstream, using X11 without Wayland is going to be possible for at least another decade. That said, I am saying “outside the mainstream” because not only will popular Linux distributions and desktop environments start to become Wayland only but the innovation is all going to move to Wayland. There will be many Wayland-only compositors, apps, and features. 5 years from now, not using Wayland is going to really limit the desktop experience. I expect some toolkits ( GTK, Qt, and maybe even WINE ) to drop X11 support at some point ( maybe not soon but sooner than 10 years maybe ). 5 - 10 years may seem like a long time but it will likely come faster than X11 stalwarts expect.

  • lloram239@feddit.de
    link
    fedilink
    arrow-up
    3
    ·
    2 years ago

    X11 is an multiple decade old dinosaur, the developer decided it was growing too complex and no longer representing how graphics are done on modern systems and decided a rewrite. While doing so they decided to simplify some things along the way and in doing so they drastically overshoot their target and removed tons of fundamental functions that was present in X11 (stuff like being able to take screenshots, window manager, etc.). Some of that is slowly getting reimplemented and Wayland is getting closer to actually being a feature-parity X11 replacement, but it’s also taken 15 years and is still not done. The whole drama is the conflict between people wanting it as default and the other group of people for which it simply doesn’t work in its current state.

    • Mnglw@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      Every time I learn more about what Wayland can’t do, I learn of even more critical stuff that doesn’t work

      no screenshots? really? who approved this trashfire as default. That’s about as ridiculous as no global hotkeys

        • Mnglw@beehaw.org
          link
          fedilink
          arrow-up
          1
          ·
          2 years ago

          yes, using spectacle I imagine

          I use different software, apparently that matters

          • thequickben@beehaw.org
            link
            fedilink
            arrow-up
            1
            ·
            2 years ago

            I understand what you mean now. You have to wait for the software developer to update the tool you use for compatibility with Wayland. Will it run under xwayland?

      • mub@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        I’m confused by this. I’m on EndeavourOS with KDE. It had an all called spectacle which takes screen shots perfectly fine. Does X11 have a screen shot function built in?

        • Something Burger 🍔@jlai.lu
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          With X, any program can capture the entire screen. The Wayland protocol does not allow this, so each DE must implement it separately. You’re using KDE’s screenshot feature, not Wayland’s, and other screenshot tools may not work if they don’t support KDE’s custom protocol for screen capture.

          • Mnglw@beehaw.org
            link
            fedilink
            arrow-up
            1
            ·
            2 years ago

            wait so you’re telling me I’m gonna be forced to use spectacle on wayland if I use KDE?

    • Auzy@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      Similar to SystemD, a lot of the “other group of people” sometimes are people simply whinging too.

      Like I saw one case where someone simply didn’t want to upgrade their workflow… And there were still people talking about Network Transparency as though it is something that has worked well on X11 within the last literally 20 years, or talking about standards.

      That doesn’t mean its perfect. But, when you say “feature Parity”, there are features with Wayland which X11 hasn’t caught up with, such as no massive gaping security issues. I’m not sure “feature parity” with X11 is a good idea, because don’t forget, Xorg implements a print server too. A lot of the stuff simply needs to be implemented by the desktop environments.

      But I agree, at the moment, its really whether about if we break some stuff temporarily, or keep waiting… In my opinion though, the longer we wait, the longer the transition will take.

      • lloram239@feddit.de
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        Not really. Systemd had the complete opposite problem, it did far more than the previous hackery of shell scripts. The complaints were that it was too big, had too many features, violated Unix philosophy and was less deterministic. Systemd had no problem fully replacing init, cron, DNS and Co. Wayland simply can’t replace X11 in it’s current state, it just can’t do a lot of basic things.

        such as no massive gaping security issues.

        That’s an utter strawman that doesn’t get any more true by repeating it. Nobody cares about display manager security at this point, since every app you run already has full system access anyway. Wayland security is like making sure the door is locked after the thief is already in the house. It might become relevant in a future when every app you run is in a Flatpak sandbox, but we are a very long way away from that. Even apps that use Flatpak are rarely sandboxed to the point that it would improve security. And on top of that, the sandboxing model Flatpak uses fundamentally doesn’t really work with a lot of Unix tools, e.g. how would you Flatpak something like make?

        • Auzy@beehaw.org
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          2 years ago

          You haven’t actually read that article which keeps getting reposted did you?

          Some of it is stuff like “not all window managers do xxx”, a lot of it is "my specific app (which might even be commercial and rather than bug the company who in paid thousands of dollars, let’s blame Wayland). And yeah, should we wait until every window manager is 100% until we do anything. That’s a generic statement, and they don’t name them for a reason.

          Oh, I use xkill, and it doesn’t work. Well yeah, and you shouldn’t necessarily be using it in xorg these days either lol

          There are some valid things, but if you read through a lot of the beginning, it’s actually just an opinion running around in circles.

          You could literally halve that list pretty easily

          And some things like DRM lease, I looked up, and it is supported by xwayland these days.

          Some of it is stuff like “if the window manager crashes, you’ll lose your session”. Well yeah, that code would be in xorg instead, so it could crash there instead

          Many xorg developers have also basically called xorg hot garbage…

          It’s funny how that keep saying xorg supports xxx. But if we look at the history, stuff like compiz and dri and such was basically tacked on. And that’s the problem. Xorg was never designed for GPUs. It was designed for VGA cards like Tseng labs

          It does some things better in Wayland already. The 15 year delay was in part because of NVIDIA screwing everyone around, and wasn’t the fault of Wayland

          If we’re going to get pedantic about app support like the article, waydroid is broken on xorg as an example…

          • Auzy@beehaw.org
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            2 years ago

            Actually, looking through it again, and its even more hilarious when I take a second look.

            Another good example “Wayland is biased toward Linux and breaks BSD”. The reference is from the NetBSD blog. The Netbsd marketshare is huge, so it’s really important everyone holds back for them. The funny thing is that even gnome is missing features on NetBSD: https://wiki.netbsd.org/GNOME/ . So, should Wayland fix their OS for them?

            To be clear for 90% of that whole link you’ve posted, it isn’t the Wayland Development teams responsibility to pick up slack on other projects. It sucks that they won’t be there for the beginning of the transition, but, if we transition earlier, they’ll prioritise getting their crap together

    • rufus@discuss.tchncs.de
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      That is partly correct. Wayland is not based on X.org. There is nothing rewritten, removed or simplified. It’s an entirely new design, new code with a different license. And X11 isn’t written by a single developer. XFree86 was started by 3 people, got maintained by an incorporated and then became X.org and sponsored by an industry consortium (the X.Org Foundation). Many many people and companies contributed. The rest is correct. It grew too complex and maintenance is a hassle. Wayland simplifies things and is a state of the art approach. Nobody removed features but they started from zero so it took a while to implement all important features. As of today we’re almost there and Wayland is close to replacing X11.

      • kevincox@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        That is the definition of a rewrite, no? They started from scratch. Otherwise it would be a refactor, cleanup or overhaul.

        And yes, it was more than one developer but Wayland was largely started by at-the-time X maintainers.

        • rufus@discuss.tchncs.de
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          2 years ago

          Hmmh, to me rewriting something means something like writing it again, or revising it. But it’s entirely new, not based on the predecessor, they didn’t have the old code or architecture in mind and it ended up in a different place with different features. So I don’t see a “re-”, just a “write”. I’d say it’s the same category of software (display servers / -protocols) but entirely different and independent from each other. I’d use the word ‘rewrite’ if they were dependent on each other in some form or if one was meant to replicate the other one.

          • kevincox@lemmy.ml
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            I think that’s generally the point of a rewrite. To start from scratch with a better architecture. If you weren’t changing the architecture then you can probably just keep incrementally improving it.

            • zarkony@lemmy.zip
              link
              fedilink
              English
              arrow-up
              0
              ·
              2 years ago

              Yes, but the word rewrite implies that it would serve the same function and retain compatibility.

              If someone wrote a new implementation of the x protocol, as a drop in replacement for the existing x.org server, you might call that a rewrite.

              Wayland is an entirely different solution to the same problem. It doesn’t follow the x protocol, and doesn’t maintain compatibility with the x.org server.

  • Dekkia@this.doesnotcut.it
    link
    fedilink
    arrow-up
    2
    ·
    2 years ago

    X is old and very hard to maintain. A lot of rules about how displays work have changed drastically since X became a thing. X went along with most of those changes, which meant the introduction of more and more hacks to keep it running.

    Over time X became worse and worse to work on and people realized that it’s easier to write something new from scratch instead of trying to fix the decade-old technical debt in X.

    That new thing was Wayland and over time most if not all people that where interested in working on desktop compositing pivoted away from X.

    Wayland (as it is always the case with new software of that size) didn’t hit the ground running. It had various issues at the beginning and also follows a different desig philosophy than X.

    Despite a lot of issues being fixed some people are still very vocal about not wanting to use wayland for one reason or another. While some of those reasons are valid, most come from ignorance or laziness to adapt.

  • jarfil@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    X/X11 is a client-server protocol from the age of 10Mbps networks, intended for a bunch of “dumb terminals” connected to a mainframe that runs the apps, with several “optimizations” that over time have become useless cruft.

    Wayland is a local machine display system, intended for computers capable of running apps on the same machine as the display (aka: about everything for the past 30 years).

    Nowadays, it makes more sense to have a Wayland system (with some RDP app if needed), than an X11 system with a bunch of hacks and cruft that only makes everything slower and harder to maintain. An X11 server app acting as a “dumb terminal”, can still be run on a Wayland system to display X11 client apps if needed.

  • nous@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 years ago

    Applications needs some coordination between each other in order to act like you would expect - things like one window at a time having focus and thus getting all keyboard and mouse inputs. As well as things like positioning on the screen and which screen to render to, the clipboard, and various others things.

    X is a server and set of protocols that applications can implement to allow all this behaviour. X11 is the 11th version of the server and protocols. But X was also first created in 1984, and X11 since around 1987. Small changes have been made to X11 over the years but the last was in 2012.

    Which makes it a very old protocol - and one which is showing its age. Advances in hardware since then and the way we use devices have left a lot to be desired in the protocol and while it has adapted a bit to keep up with modern tech it has not done so in the best of ways. I also believe its codebase is quite complex and hard to work with so changes are hard to do.

    Thus is has quite a lot of limitations that modern systems are rubbing up against - for instance it does not really support multi cursors or input that is not a mouse and keyboard. So things like touch screens or pen/tablets tend to emulate a mouse and thus affect the only pointer X has. It is also not great at touchpads and things like touch pad gestures - while they do work, they are often clunky or not as flexible as some applications need.

    It is also very insecure and has no real security measures in place - any GUI application has far more access to the system and input then it really requires. For instance; any application can screen grab the screen at any point in time - not something you really want when you have a banking web page open.

    Wayland is basically a new set of protocols that takes more modern hardware and security practices in mind. It does the same fundamental job as X11, but without the same limitations X11 has and to fix a lot of the security issues with X.

    One big difference with X though is that Wayland is just a protocol, and not a protocol and server like X. Instead it shifts the responsibilities of the X server into the window manager/compositor (which used to manage window placement and window borders as well as global effects such as any animations or transparency). It also has better controls over things like screen grabs so not every application can just grab a screen shot at once or register global shortcut keys or various things like that. Which for a while was a problem as screen sharing applications or even screenshot tools did not work - but over time these limitations have been added back in more secure ways than how X11 did them.

      • NateSwift@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 years ago

        In theory yes. In practice most X11 applications can be ran using Xwayland as a compatibility layer

        • nous@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 years ago

          Additionally any application using a GUI toolkit (like kde, qt or gtk etc) only needs to to update to a version that has native Wayland support. Which means most applications already support it. At least if they don’t use any X11 APIs directly (which is not that common).

  • cerement@slrpnk.net
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    unless you are a developer, there’s not a whole lot to worry about – you’ll switch from one to the other when your distro switches and, chances are, you’ll never notice

    the drama comes from the fact that the Linux community loves choices (and arguing over those choices) and, as @skullgiver points out, most of the choices have fallen by the wayside over the years

  • Murdoc@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    I feel like you guys aren’t really “explaining like I’m 5”. Let me show you:
    Sometimes, when a mommyboard and a daddy graphics card fall in love, the daddy graphics card puts his connector pins inside the mommyboard’s expansion slot. Then when they both get turned on, millions of tiny electrons surge out of his connector pins and into her expansion slot, where they travel up through mommyboard’s data bus, and into one of her memory cards. Meanwhile, there are thousands of image files inside mommy’s storage drives waiting to come to life, and every once in a while one of them ventures out of the storage drive and into her memory card. And if the electrons and the image file happen to meet at the same time, then 9 milliseconds later, a picture of a baby appears on the monitor!

  • neidu2@feddit.nl
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    X (not formerly twitter) is decades old and is built around deprecated ways of doing things as well as a lot of legacy functions.

    Wayland is a relatively new project with the aim of replacing X as a more “modern” display server.

    Wayland had some stability issues, but they’ve since improved.

    I’m sure Wayland is good and all, but I can’t be arsed replacing X yet. I don’t really have any skin in the game, I just don’t replace functioning components just because they’re old (FYI, bash turns 35 this year). While X does what I need it to do, I’ll keep using it. I’ll probably move over when my distro does.

    I’ll leave the technical explanation to someone else.

    • rufus@discuss.tchncs.de
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      That’s right. To add a few things: X11 isn’t bad. It’s just a big and complex piece of software that has grown for multiple decades. And nobody wants to do big changes or add new things anymore.

      Wayland is the modern and “fresh” new approach. I’ve had some issues with my NVidia graphics card. But that wasn’t Waylands fault, but the NVidia drivers. I have a laptop with just Intel graphics and both X11 and Wayland run excellently on that machine.

      With Linux we often get many choices, and have several alternatives available to do the same / a similar job. That is a bit complicated for someone new. But we should embrace it, be glad that we can pick whatever suits our individual needs. Wayland still has some issues on a few specific setups, but eventually it will replace X11 as the default.

  • vzq@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    It’s not some huge controversy. Almost everyone that works with/on X11 has thrown in with weyland years ago.

    • taladar@sh.itjust.works
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      I would say that is a false dichotomy. Almost everyone agrees that X11 isn’t the future but the support for Wayland and the specific ways it does things, is not nearly as universal as that. It is just that the problem is huge and has already taken 15 years or so and so it looks like if we want some alternative to X11 that will be done any time soon Wayland is unfortunately the only game in town, no matter how flawed it is.

        • taladar@sh.itjust.works
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          A switch from X11 to Wayland is not just a minor change to your workflow though unless you used all defaults before.

          It requires you to replace your window manager, all the little tools related to things like clipboard, automation, screen locking,…

          And you would have to do pretty much all of that up front to be able to use Wayland long enough to know if it even works on a permanent basis for you. That is a lot of work to put into a project that has a sketchy history of people claiming for nearly a decade now that it works just fine for everything while clearly not working fine for all use cases.

  • MiddledAgedGuy@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    X11 is like a big dilapidated house. It doesn’t work very well anymore and is difficult to maintain.

    Wayland is new modern house. Smaller and more efficient, but missing some amenities that the old house had that some people still want, like a wood burning stove.

    • lloram239@feddit.de
      link
      fedilink
      arrow-up
      1
      ·
      2 years ago

      but missing some amenities

      Like doorknobs or windows. Wayland wasn’t just trimmed down, it was trimmed down to the point of being non-functional and it has taken ages to slowly patch that back up.