5 ms·
At the risk of threadjacking, I'd still love to have a real conversation about how and why this Wayland thing happened (and is still arguably happening) so bad
by jrm4 2y ago
At the risk of threadjacking, I'd still love to have a real conversation about how and why this Wayland thing happened (and is still arguably happening) so badly.
Specifically, how -- again, in LINUX-LAND -- a whole bunch of people decided, "nah, we're going to go ahead and break the HELL OUT OF backwards compatibility this time, even though we pretty much never do this."
- asveikau 2y agoLinux actually does this a lot. Jwz called it "Cascade of Attention-Deficit Teenagers" more than 20 years ago, describing GNOME. Look at audio. PulseAudio is mostly pointless and over-engineered. Breaks a lot. You could say the same about ALSA even. FreeBSD meanwhile is still using the OSS API that Linux was on in the late 90s...
- jrm4 2y agoHa, I'm showing my age. You're right, my brain is still at "Linux around the year 2000." That being said, it's still the same problem. And I think that's why I find it odd that I haven't heard the argument more plainly stated like: "Oh look -- right around when Linux became mainstream, it began to get worse in precisely the same ways proprietary stuff was already bad. Probably a result of more business involvement, but how can we counter it."
- logicprog 2y agoSetting aside dogmatic complaints ahout failing to adhere to the purity tests of a hokey old religion from the seventies, in what way is Linux actually worse? Also, assuming you're referring to it getting worse in the usual ways *nix grognards like to complain about, how is any of that "in the same ways proprietary stuff is bad"? If anything Windows for instance leans even more heavily on backwards compatibility than old Linux, not less.
- rwmj 2y agoPulseAudio has already been abandoned, the new thing is Pipewire. The specific issue with OSS was that it was never part of Linux and then with OSS 4 they made it proprietary, which killed it off entirely as far as Linux users are concerned. (FreeBSD cloned it instead.)
- asveikau 2y agoOh yeah. I should have noticed that because on the Debian machine I set up for my daughter, audio suddenly broke, and it started working again when I removed pipewire. No joke, if you remove the new thing stuff magically starts working again.
- nathanasmith 2y agoI had to restart Pipewire just this morning when audio randomly stopped working. It's funny as this is the first time it happened then an hour later I'm reading in this thread about Pipewire acting funny on other people's computers.
- p_l 2y agoin my experience, unlike pulseaudio, pipewire is way stabler and usually works fine with less involvement. ... except when you have accidentally ended up with half-pipewire, half-pulseaudio setup due to half-forgotten instructions that were no longer applicable.
- asveikau 2y agoMaybe my dist-upgrade got it into such a state. I'll try to check that out.
- p_l 2y agoI ended up solving a similar case for someone else, where ultimately different programs were fighting over control of the sound devices themselves. I have to say, that pipewire under NixOS had been easier to deal with than both pulseaudio and ALSA on crappy internal sound devices (i.e. ones requiring dmix and the like). It's nearly as plug&play as ALSA on "proper" soundcard was (like when I got a Dell Precision to work with that somehow had a Creative Audigy with 256 channel sound, so no need for dmix at all...)
- vundercind 2y agoMy best guess is it was designed to make it a bad idea to run anything but Red Hat with Gnome if you need anything resembling stability. If it wasn’t designed for that on purpose, I’m pretty sure it’s at least why Red Hat ran so enthusiastically towards it.
- logicprog 2y agoI know I'm going to lose points for pushing back on the pervasive HN RH-bashing, but this doesn't hold up. Wayland is being pushed by Redhat to make GNOME the only stable option? Except that Wayland is perfectly fine (many would argue better than it is under GNOME!) on Sway, KDE, etc. KDE has more bugs than GNOME, but that's independent of Wayland, it's just because KDE's design philosophy is "hardcode every feature and option imaginable" and that leads to it being impossible to QA. Anyway, this is just conspiracy theory bullshit. I swear to god Red Hat is the Soros of Linux for a certain type of guy
- vundercind 2y agoWatching them a long time, too many coincidences. Looks like fire-and-motion, make yourself the standard then make it hard to deviate or to keep up. If it’s not intentional, it’s incredibly damn convenient.
- deleted 2y ago[deleted]
- logicprog 2y agoWhy do any of these standards make it harder for other distributions and desktop environments to keep up with them? wlroots exists, and in many people's minds is much better than GNOME with Wayland. This really strange thinking. Also, it isn't them that are making them the standard. It's independent distributions choosing to use what they produce (and not all of them do, either). Presumably, the maintainers and packagers who make those choices would be aware of these technical considerations, and capable of rejecting Red Hat's tech I'm favor of whatever hoary stack you prefer if it made it harder for them to "keep up." That seems to be something that is perfectly possible to do while still producing a usable distro, and it seems like something limit distributions are quite good at — ignoring what corporate operating systems are doing and forging their own path. Maybe it's because the technologies you are labeling as Red Hat technologies actually offer substantial improvements and push forward the cutting edge of the Linux desktop in a meaningful way, bringing it closer to the capabilities of a modern operating system?
- kmeisthax 2y agoThere's a few related answers to your question, so I'm going to meander a bit and hope you can follow along. First off, backwards compatibility wasn't actually broken. X11 apps work fine under Xwayland. All the weird bikeshedding that happens in Wayland isn't as important because we have working compatibility bridges and all the old stuff still works. Second, "don't break userspace" is specifically a Linux kernel policy. The only other organization in FOSS that has such a slavish devotion to backwards compatibility is WINE[0]. Desktop environments are perfectly fine with, at the very least, breaking ABIs, because you can just recompile the ocean. I suspect this is the Free Software equivalent of "firing shots to keep the rent down" - i.e. making the software neighborhood undesirable for proprietary software vendors who will have to deal with these annoying and arguably pointless transitions every couple of years. The reason why we needed to get off X11 is very simple: X11 is an extremely poor fit for modern hardware. The protocol supports simple drawing commands and image display, that's about it. Modern user interfaces want applications that draw onto GPU layers, composite them, and then present a final image to a compositor to be displayed to the screen. You almost can build that on X11 (modulo some frame tearing), but it's a pain in the ass and requires adopting a lot of extra protocols plus XGL which breaks network transparency[1]. The motto of X11 is "mechanism, not policy". The way this is accomplished is by presenting the entire desktop as a tree structure of windows that any client can mutate. Any widget toolkit can then build the experience it wants on top of that tree structure. The problem is that this also makes writing keyloggers and RATs trivial. X11 doesn't sandbox applications, so even if you lock down a process every other way, they can still do horrible things to other X clients and Xorg won't stop them. Wayland fixes this by tightly restricting what clients are allowed to do to the desktop. Applications get to present their own windows, sure, but they can't touch other windows unless a specific extension is provided for their use case and the compositor allows the application to use it. In other words, Wayland is "policy, not mechanism". The downside is that now we have to codify all the slightly-different ways each widget toolkit, window manager, and desktop environment has done things under X11. This has resulted in an explosion of extensions, many of which overlap because they were made by different DEs. Wayland can of course create standardized versions of these extensions, but each standardization is an opportunity for bikeshedding. This leads into my favorite way to tell if an application is Wayland or X11: launch Xeyes. If the eyes track your mouse over the application's windows, it's X11. Wayland doesn't have a protocol for mouse tracking, so Xwayland can't report where the mouse cursor is, unless it's on top of a Wayland window that it's already getting events for - namely, the app you're wondering about. Ok, I suppose that is a backwards compatibility break. [0] This also means the most stable UI toolkit on Linux is actually USER.dll. [1] In fact, I suspect this is why Wayland was so willing to casually toss that out. GPUs and network transparency are allergic to one another.
- temac 2y agoAnd chose an architecture really interesting where everybody will recode an half-baked version of the work-in-progress protocol so each desktop-env/window-manager will have different compatibility characteristics; and where tons of actual implementation mix the graphic server with the desktop-env/window-manager so that crashes are extra fun.
- uecker 2y agoI think a couple of people hired to to work on Linux graphics did not like dealing with legacy code (who does?) and somehow convinced their incompetent managers that everything has to be rewritten.^1 This went just like most "let's just rewrite it and it will be much simpler and better" IT projects. Now 15 years later or so we have a fundamentally inferior replacement (with probably nicer code though) which still misses essential features and plays catch up a, a simultaneously a serious lack of investment into maintenance of X, and also a lack of investment into user visible features in apps (I think gnomes pdf viewer gets its third rewrite, but still can't play embedded videos in presentation mode). A lot of the user community was fooled into believing that Wayland would make graphics and gaming much better any day now ^2, which never really was based on sound technical arguments. ^1 This was roughly the time when everybody wanted to build new phone or tables operating systems to capitalize on an emerging mobile market. So maintaining stability for the desktop wasn't a priority. ^2 With grotesque nonsense claims about X such that the old drawing API slow apps down even though they are unused, etc. Those "arguments" were endlessly repeated and you can still see this even here, also everybody who ever implemented a GUI application in Linux should realize that this can not be true.
- okanat 2y agoThat happens a lot in Linux world since people design software in extremely limited way in the name of simplicity and "Unix philosophy" which limits their composability. So only interfaces became limited to what's available at that moment and the limited set of Unix software abstractions. Those abstractions are also made extremely use case specific even though there are opportunities to unifiy them like Android did with Binder, Windows did COM and dotnet. Of course technical difficulties of designing efficient and long-term surviving interfaces also play a role. There are too many hobbyists in the Linux desktop world and too few professionals who also have to work with hobbyists. Many contributions to Linux desktop happen when people are studying and then they leave. This creates disincentives to design long-term systems because they take too long and they are a slog to design and keep up-to-date.