4 ms·
The X Window System was basically the wrong bet on how GUIs and computer hardware would evolve. Its client/server architecture was the opposite of the highly in
by pavlov 3y ago
The X Window System was basically the wrong bet on how GUIs and computer hardware would evolve. Its client/server architecture was the opposite of the highly integrated graphics processing model we ended up with.
Instead of cutting its losses early and dumping X11, both the Unix vendors and open source spent far too long trying to make lemonade out of a truckload of rotten lemons. And that’s why Linux GUIs are so far behind.
It’s notable how rapidly Apple was able to evolve their Unix GUI because they were not tied to X11 and instead embraced the integrated model, even designing their own GPUs nowadays.
- EasyMark 3y agoPeople keep saying this but I never really had any complaints of kde vs windows vs macos. All 3 are perfectly usable, it's only in the past 8 years or so where windows has gone crazy with the obtuse spying and ads and "MICROSOFT" everywhere. Even that isn't too hard to remove with a download or two.
- Klonoar 3y agoThey're not talking about usability, they're talking about the technical underpinnings. ;P
- jwells89 3y agoAnd polish. With X you can sometimes feel the “layers” separating and slip-sliding around a bit in places that you don’t with a Wayland DE or in macOS. This was especially true in the late 00s when there was less computing power available to brute-force these issues into being less apparent.
- user_7832 3y agoAs someone not very familiar with Linux, which desktop environment would you recommend with most “polish”? I’m thinking of switching from windows 10 on my new laptop but I do appreciate all the animations in windows. (I could also consider a hackintosh or BSD if they are prettier, especially in movement/animations.)
- jwells89 3y agoBSDs aren’t going to be functionally different from Linux in terms of desktop prettiness/animation as the two run the same DEs. GNOME is probably the most polished in terms of aesthetics, animations, and gestures. The downside is that it’s much more a tablet OS experience with a few desktop affordances — kind of like iPadOS if it were turned into a desktop OS — than it is a traditional DE. As such expect for various power user features to be diminished or absent compared to macOS or Windows. Pantheon also ranks highly here, with similar limitations. KDE comes in second. Compared to GNOME it still has a number of rough edges in terms of aesthetics but is comparable to Windows in terms of overall capabilities and design. Third would be Cinnamon, which attempts to blend a more Windows-like desktop with GNOME-like polish, but last I knew this project is understaffed which has resulted in it falling behind a bit. Also requires X11, unlike GNOME and KDE which work well with Wayland.
- candiddevmike 3y agoNothing that you said is a real criticism of X in general though, just its client/server model.
- pavlov 3y agoBut it's so fundamental to the design that it's inescapable. The history of Linux GUI is a series of heroic workarounds to hide the misaligned X underpinnings. Trying to separate X from the client/server model would be like saying: "I like Unix just fine, except files and processes and the shell and the software tool philosophy, really." — You just don't have much left.
- uecker 3y agoI would say X was success. It could be modernized via extensions, while maintaining backwards compatibility and providing network transparency. And it still works well, while the the replacement which was said to have a much cleaner design and which is under development for 15 years still causes problems and has many limitations. I also disagree that the client/server design is a problem. Modern graphics hardware is remote from the CPU for all intents and purposes. So remote buffer manipulations protocol is exactly what is needed.
- djao 3y agoBefore a few days ago, I had never used Wayland. As you said, it causes problems and has many limitations. The solution that works is infinitely preferable to the one that doesn't. But, a few days ago, I finally switched over, on a modern machine (~ 6 months old), with a modern OS (more than modern -- I'm running a pre-release version). And now, finally, I see what all the fuss is about. Wayland is absolutely beautiful. The rendering and animations are gorgeous, and so so smooth. The whole system is far faster, far more robust, and far more efficient both in computing resources and workflow than anything I was ever able to achieve on X. I have been using Linux on X11 displays as my primary machine since 1996. I do development work, but not with graphics, where I'm just a regular user. I don't really care about how good the design is or how hard it is to write programs using X / Wayland / whatever. All I care about is how usable my system is. And for me, having reached the Wayland promised land, I now understand what I was missing with X, in a way that I could never have before. Tear-free rendering, all the time, every time. Frame perfect windows, all the time, every time. A desktop that finally feels immediately responsive, all the time, every time. Under X11, all those round trips to and from the X server add milliseconds to response time, hard to benchmark, but very easy to feel. Worse yet, X11 responsiveness is variable. If the system is loaded, your desktop can lag so badly under X. This doesn't happen with Wayland. I now have OSD volume controls that work even when the screen is locked. This was never possible with X, and can never be possible. I now have a lockscreen that, guaranteed, will not leave my desktop unlocked if someone crashes it by feeding it malicious input. X11 is architecturally incapable of providing such guarantees. There were several instances of security bugs where lock screens in X11 crashed in exactly this way. Wayland has now reached the point where it is a must-have for me. If it doesn't run Wayland, I won't buy it, and I won't install it. Yes, X11 works well after all these years, but Wayland is enjoyable to use in a way that X11 never was.
- IE6 3y agoTangential - I just watched this and found it very interesting: https://www.youtube.com/watch?v=R-N-fgKWYGU https://www.youtube.com/watch?v=R-N-fgKWYGU
- Zardoz84 3y agoI agree that the client/server approach was the wrong way at the end. but saying that Unix GUI was far behind others, it's a too far bridge. The first time that I saw composite desktops using the GPU was on Linux. And current KDE/Plasma it's light years better that the inconsistent and ads shit hole that Windows has become.
- PaulDavisThe1st 3y agoThis is utter horseshit. As someone who writes cross-platform native (desktop) GUI code, there's nothing about Apple's GUI system that is substantively superior to the one on Linux that has any relationship to XWindow being the underlying implementation or not. Apple has also had to continually evolve their own GUI toolkit(s) because they also failed to adequately target certain new expectations that arose as time passes (animation being a good example).
- snowpid 3y agoCan you elaborate the superiority of Apple GUI system?
- PaulDavisThe1st 3y agoI said there wasn't any.
- 0x457 3y agoI'm sorry, but Xorg still doesn't have a way to correctly handle mismatched DPI monitors. I will also take Cocoa over any linux framework any day of the year.
- PaulDavisThe1st 3y agoBut neither does Windows, so the issue here isn't XWindow specifically.
- 0x457 3y agoI'm currently using Windows 10, and it handles mismatched DPI just fine. The same with macOS. There are some old applications on Windows that aren't DPI-aware and look weird, but usually fixable. It's still a million times better than whatever X11 does. IMO macOS is the only OS where graphics and fonts work the exact way one would expect reliably.
- 3y ago
- Paianni 3y agoTo be fair, the secondary technologies available to support the preferred model now are far more advanced than what Quartz Extreme (in macOS) and DWM (in Win. Vista) had to use, and there's no longer a need to provide backward compatibility with software rendering.
- charcircuit 3y ago>The X Window System was basically the wrong bet on how GUIs and computer hardware would evolve. I disagree. Other platforms did similar things where clients would command the OS what it should draw and the OS would handle all app's rendering which allowed for good performance on primitive hardware. Like other display severs X did evolve to also be for passing around framebuffers of what the app drew once hardware became capable. X's problems come from being hard to maintain, being a monolith of unrelated concepts, having poor security, etc.
- erik_seaberg 3y agoThe hardware only became capable in the wrong place. Datacenters are full of heavily shared servers without GPUs, and the days of running everything on your own desktop are over.
- taeric 3y agoIsn't this a bit of a non-sequitur? The desktop environments could have been made coherent regardless of the underlying window system. Indeed, I think you could say that there were many coherent desktop environments in the past. Catch comes from the fact that there were a ton of competing ideas. With no clear reason to want one over the other. Apple rapidly evolved their GUI because they are trying to support just the one. And, frankly, they are starting to buckle on the idea that they are fully coherent.
- GartzenDeHaes 3y agoIs running events though a domain socket really so different than Windows message ports?
- Const-me 3y agoThe socket is fine for messages, but not for rendering. Here’s a simplified version of how 3D rendering apps usually work in different environments I have used. Direct3D on Windows: app renders something and calls IDXGISwapChain.Present. The implementation communicates with the desktop compositor running in the dwm.exe process, dwm.exe renders the entire desktop composed of multiple windows, then communicates with physical GPU to wait for next vertical blank event. Bare metal Linux with DRM: app renders something, calls drmModePageFlip(), then waits for next vertical blank event with poll() and drmHandleEvent() functions. Embedded Linux developers did an amazing job about DRM/KMS, in my experience the API is both reliable and efficient. X Window systems have multiple different methods, glXSwapIntervalEXT, glXSwapIntervalMESA, glXSwapIntervalSGI, but in practice none of them is reliable, and on some systems none of them is even supported. Unfortunately, this makes rendering tear-free 3D content on X11-based desktops hard-to-impossible.
- GartzenDeHaes 3y agoDidn't realize that this discussion was in the context of games.
- Const-me 3y agoThe originally posted article is about new 3D GPU-based backend in the GTK, which is unrelated to games. Hardware accelerated 3D graphics is the best way to render pretty much everything on modern hardware, games or not games. High-resolution displays are omnipresent. Even cell phones often have FullHD or more pixels, like 2796×1290 or 2556×1179 in the iPhones.
- GartzenDeHaes 3y agoAFAIK, Windows applications typically use GDI instead of DirectX. https://learn.microsoft.com/en-us/windows/win32/direct2d/comparing-direct2d-and-gdi https://learn.microsoft.com/en-us/windows/win32/direct2d/com...