4 ms·
I live in a cave and am not a system programmer -- what's so wrong with X11 so people need to replace it with something else instead of improving it? Or, what'
by ferguess_k 11mo ago
I live in a cave and am not a system programmer -- what's so wrong with X11 so people need to replace it with something else instead of improving it?
Or, what's so wrong with anything so people need to replace it with something else instead of improving it?
Let's say I'm an old man favoring improving existing stuffs instead of starting from scratch. I like debugging and wish to work as a sys programmer specialized in debugging and fixing/improving legacy codebase. But again I'm not really a sys programmer so I'm probably on the wrong side.
- etamponi 11mo agoI might try to explain with some examples. 1) it would really be nice to renovate that old house in the city center of an old Italian town! Oh but hold and behold: you'd have to spend hours, days, months, even years (I am not kidding) just waiting for approval and agreeing on what you can and cannot do with the house. And it would cost twice as much as building a new one. And the new one would have better insulation and a modern layout, and be exactly like you want. That's why it's not always the case to fix and improve an existing thing. 2) it would really be nice to fix that car from the '60ies. Oh but hold and behold: the design doesn't really allow you to have all the safety measures of modern cars. And the maximum speed is going go be 65mph on a good day. And it's going to cost you twice as much as a new car, OR you'd have to learn tons of mechanical stuff to be able to fix it yourself. That's why it's not always the case to fix and improve existing things. 3) it's just more fun to build new things (at least for some people). It's open source. People do this for free, to learn and enjoy their time. They can do whatever they want, and they decided to go with the shiny new thing. Is it better than fixing and improving an existing technology? I don't know. But apparently it's more fun! :)
- ferguess_k 11mo agoThanks! These are all valid points although I'm looking for more technical answers -- but these are good enough!
- saint_yossarian 11mo ago> you'd have to spend hours, days, months, even years (I am not kidding) just waiting for approval and agreeing on what you can and cannot do with the house. Ah you mean like in the wayland-protocols repo? :) (not disagreeing with your actual point though)
- voidfunc 11mo agoOSS is an intersection of commercial and hobbyist programmers and agendas. If youre a hobbyist you may prefer to spend time working on green field rather than the existing. This eventually culminates in some new stuff replacing the old. Not saying that is what happened here, but sometimes the answer is because the old one is just not fun to work on anymore.
- atherton94027 11mo agoIsn't Wayland funded by Red hat though? And Mir was funded by Canonical iirc
- jamesbelchamber 11mo ago"the people who did the work, did this" is basically the answer to most things, and I think here you're right - ultimately, working on X sucked and more people were willing to rewrite a whole new windowing system than to keep working on X. There is some interesting reasoning behind that (which I will let more learned people expand on) but since I'm not doing the work I'm pretty zen about just accepting the decisions of the people who did.
- gary_0 11mo ago> what's so wrong with X11 so people need to replace it 1. Security - Any program using X11 can read keystrokes, passwords, or the contents of any other window. Fixing this would break all existing X11 applications. 2. Performance - X11's client-server model doesn't work with hardware accelerated graphics, requiring hacks to get around. X11 is basically stuck with this legacy. The ground-up re-design of X11 to fix those two issues is Wayland.
- Pet_Ant 11mo ago> X11's client-server model doesn't work with hardware accelerated graphics I really wish they would figure this out. It just feels like with Threadripper etc the time is perfect for a return of thin-clients/not-so-dummy terminals running X11-like applications over the network on a server. Especially for development where many of us are running under-powered laptops and could use the boost to compilation from a beefy machine.
- ChocolateGod 11mo agoIt's not really something to figure out, it's just X protocol design was made for when thin clients running over the network was assumed to be the future, it wasn't. Unfortunately though unlike Mac or Windows the migration to a better protocol has been ugly. When you start to consider things such as HDR, hardware planes (important if you want energy efficient video decoding) etc, the protocol just doesn't make that kind of thing easy, compared to Wayland which does by it's use of surfaces etc.
- Balinares 11mo agoThere is nothing to figure out, unfortunately. The design of X11 precludes hardware acceleration; the hardware acceleration you see on a X11 desktop works by using extensions to entirely route around the X11 client-server model. To make it work they'd need to rethink the design. And they did -- that's how we got Wayland.
- Pet_Ant 11mo ago> The design of X11 precludes hardware acceleration I wasn't talking about X11, just that capability. Never heard of Waypipe before, but it was mentioned in a sibling comment, and that might be exactly what I'm looking for. https://gitlab.freedesktop.org/mstoeckl/waypipe/ https://gitlab.freedesktop.org/mstoeckl/waypipe/
- MyOutfitIsVague 11mo agoX11 is not really fixable, architecturally. This wasn't some authority saying "X11 is over, stop working on it." It was the X11 developers and DE and WM developers who work directly with the protocol deciding that it's untenable to fix, and something new is actually the right call. That's the important thing that many people are missing: the X11 developers ARE the Wayland developers, and they actually have good reasons. Nobody is stopping you from pulling together a group and working on all this free software, forging forth on Xorg, and forking or maintaining the DEs to work with X11 as long as you want to maintain it. I think the group of people who wants to do that will be quite small, because I've really only seen the sentiment from people who have never actually hacked on an X11 codebase and worked with the protocols themselves. You can want X11 to stay alive, but you can't really demand the people who don't want to work on it anymore to keep working on it.
- ferguess_k 11mo agoThanks. This is pretty valid argument.
- matkoniecz 11mo ago> Or, what's so wrong with anything so people need to replace it with something else instead of improving it? not claiming that it applies here, but I wrote some small programs where writing my own library from scratch too less time than I spend on trying to understand existing one In another case I was unaware that existing solution exists and I tried writing my own one (then migrated when I realized that surely this kind of thing was done and people on local hackerspace chat pointed out that it sounds like Ansible). For that matter running joke on hackerspace chat is about spending 500 PLN and 20 hours on building a chair to save 400 PLN. Because in this case hobby playing with a wood was actual point, not maximum effectiveness. Similarly, this year I planted basil - and fixed costs for pots etc are large enough that it will never make economic sense. But looking at plants growing from seed (and then eaten prematurely by some caterpillars) was really cool. LARPing a farmer and seeing how plant grows from tiny seed to about 50 cm plant was really cool and I recommend it.
- big-and-small 11mo ago> I live in a cave and am not a system programmer -- what's so wrong with X11 so people need to replace it with something else instead of improving it? This 12 years old video explains it better than anything I ever seen: https://www.youtube.com/watch?v=RIctzAQOe44 https://www.youtube.com/watch?v=RIctzAQOe44
- aidenn0 11mo agoWayland was started primarily by those who were maintaining X11. There is almost nobody who is both capable of working on X11 and wants to work on it. The redesign also reflects their priorities. The best analogy I can come up with is imagine a small group of people maintaining an old car frame and mechanical workings. They work hard to keep the engine running, but it's in a chassis with leaf springs and direct steering. It also has lots of vestigial things like a hand-crank even though most people have been using an electric starter for years. Other people use this as a platform to make complete cars with body &c. but this is both too much and too old for the small group to maintain themselves. So they build a new, more modern engine and wait for other people to build a car around it, which is more sustainable amount of work for them. Lots of other people complain that the engine isn't a car, and when they use the engine with one brand of car, the brakes don't work and when they use it with another brand of car, the steering doesn't work. This makes sense, since previously the underlying platform implemented much of those, but now it doesn't and everyone is figuring out how to build those and couple them to the new engine. Eventually you reach the point where each brand has created its own brakes, suspension &c. that mostly work about the same, but the only actual common component is the engine now. That's about where we are today.
- simion314 11mo ago>Wayland was started primarily by those who were maintaining X11. There is almost nobody who is both capable of working on X11 and wants to work on it. Isn't wayland just soem protocol? so did the ex X11 devs wrote soem specifications and then soem went to GNOME< some to KDE and others are just editing the specifications ? I think the issue is that there is no wayland library that a DE can use so everyone is forced to implement it as part of the DE , so the end result is a lot of missing features and incompatibility. I could be wrong, I still run Linux but I decided years ago to stop following the Linux drama, I will use Kubuntu LTS and hopefully when it drops X11 the Wayland implementation and the X11 fallback would be usable.
- prmoustache 11mo agowlroots is one such library.
- marcodiego 11mo agoJust one example: Around 2009 I met Thiago Vignatti. His master thesis was about improving X so it was easy to use in a multi-seat setup (2 monitors/keyboard/mouse) so a single computer could be simultaneously used by two people. He later worked for Nokia, Intel and eventually his own startup related to VR. During his time as a Google summer of code student, his project was to paralelize X code so it could run in multiple threads, making better use of modern hardware with many cores. His project failed. The reason: X code was so bad that paralelizing and making it thread-safe required so many locks that it ran slower! It was a better idea to start from scratch. I remember, at the time, taking a look at the source code and asking him why there was a X86 emulator built-in in X source code. His answer was that that was required to run some video BIOS on non-x86 computers, namely Sun workstations. That was the level of legacy code in X. This is just an illustration of many problems X had. Vignatti was one of the X devs that migrated to wayland development. Many other core X devs did the same. People saying that X is fixable, that it can be improved or what else... These people may be right, but I trust X core developers more than these people when the subject is X development.
- ferguess_k 11mo agoThanks, looks like there is a shitload under the mountain. I agree it is very hard, or impossible to fix the issue, and fixing it might as well mean a lot of new code anyway.
- KetoManx64 11mo agoSo does Wayland actually solve this issue? From the stats I've seen Wayland either very slightly outperforms X11 or it's the other way around.
- amlib 11mo agoSo far I've noticed big improvements in graphical fluidity and energy efficiency when running wayland on an old notebook. If devs are also having a much better time supporting wayland... I'm all for it, even if it still has some rough edges.
- prmoustache 11mo ago> I live in a cave and am not a system programmer -- what's so wrong with X11 so people need to replace it with something else instead of improving it? Tech debt. The X11 dev have thrown the towel and have prefered working on something they deemed more maintainable.
- ferguess_k 11mo agoThanks. This alone could be enough validation. I worked only in smaller codebases but I get sometimes it is impossible to untangle a tech debt -- much easier to just ask for a new copy of the requirements and start over, which also has the benefit of triggering things such as "Oh we actually don't need A,B and C, don't bother with them".
- big-and-small 11mo agoMain problem isn't sheer amount of code. Problem is that X11 have to somewhat stick to protocol so apps written in 1995 keep working on top of it.