Are there any things in Linux that need to be started over from scratch?

sepulcher@lemmy.ca to Linux@lemmy.ml – 162 points –

I'm curious how software can be created and evolve over time. I'm afraid that at some point, we'll realize there are issues with the software we're using that can only be remedied by massive changes or a complete rewrite.

Are there any instances of this happening? Where something is designed with a flaw that doesn't get realized until much later, necessitating scrapping the whole thing and starting from scratch?

265

You are viewing a single comment

Seriously, I'm not a heavy software developer that partakes in projects of that scale nor complexity but just seeing it from the outside makes me hurt. All these protocols left-right and center, surely just an actual program would be cleaner? Like they just rewrite X from scratch implementing and supporting all modern technology and using a monolithic model.

Then small projects could still survive since making a compositor would almost be trivial, no need to rewrite Wayland from scratch cause we got "Waykit" (fictional name I just thought of for this X rewrite), just import that into your project and use the API.

That would work if the only problem they wanted to solve was an outdated tech stack for X. But there are other problems that wayland addresses too, like: how to scale multiple monitors nicely, is it a good idea to give all other apps the keystrokes that you do in the one in focus (and probably a lot more)

Wayland and X are very very different. The X protocol is a protocol that was designed for computer terminals that connected into a mainframe. It was never designed for advanced graphics and the result is that we have just built up a entire system that balances on a shoe box.

Wayland is a protocol that allows your desktop to talk to the display without a heavy server. The result is better battery life, simplified inputs, lower latency, better performance and so on

It is complex to build a Wayland compositor. When none existed, you had to build your own. So it took quite a while for even big projects like GNOME and KDE to work through it.

At this stage, there are already options to build a compositor using a library where most of the hard stuff is done for you.

https://github.com/swaywm/wlroots

https://github.com/CuarzoSoftware/Louvre

There will be more. It will not be long before creating Wayland compositors is easy, even for small projects.

As more and more compositors appear, it will also become more common just to fork an existing compositor and innovate on top.

One of the longer term benefits of the Wayland approach is that the truly ambitious projects have the freedom to take on more of the stack and innovate more completely. There will almost certainly be more innovation under Wayland.

All of this ecosystem stuff takes time. We are getting there. Wayland will be the daily desktop for pretty much all Linux users ( by percentage ) by the end of this year. In terms of new and exciting stuff, things should be getting pretty interesting in the next two years.

It's what happens when you put theory over practicality.

What we wanted: Wayland.

What we needed: X12, X13...

The X standard is a really big mess

That's kind of what I was trying to imply.

We needed a new X with some of the archaic crap removed. I.e. no one needs X primitives anymore, everything is its own raster now (or whatever it's called).

Evolving X would have given us incremental improvements over time... Eventually resulting in something like Wayland.

What was stopping X just undergoing some gutting? I get it's old and covered in dust and cobwebs but look, those can be cleaned off.

"Scoop out the tumors, and put some science stuff in ya", the company that produced that quote went on to develop the most advanced AGI in the world and macro-scale portable on-demand indestructible teleportation.

Because we no longer have mainframes in computer labs. Each person now has there own machine.

And yet I play modern games on modern hardware with X just fine. It's been extended a little bit since the 80s.

Yes it works but it everything is glued together with duct tape

So what? Clean that up then.

What part of 40 year old code that is so messed up that it's not cleanable any more do you not understand.

Of course it is. That's propaganda. It's hard, but possible. Probably not as hard as fighting Nvidia for 15 years either.

Simply put, no one with the necessary skills has come forward and demonstrated the willingness to do the work. No programmer I've ever met enjoys wrestling with other people's crufty old code. It isn't fun, it isn't creative, and it's often an exercise in, "What the unholy fsck was whoever wrote this thinking, and where did I put the 'Bang head here' mousepad?" So getting volunteers to mop out the bilges only happens when someone really wants to keep a particular piece of software working. It's actually more difficult than getting people to contribute to a new project.

So getting rid of X's accumulated legacy cruft isn't impossible, but I suspect someone would need to set up the "Clean up X" foundation and offer money for it to actually happen. (I'm no happier about that than you, by the way.)

Aye - there was definitely a lack of motivation there. It seems the X teams (XF86 and later Xorg) sorta ran out of juice at some point. Maybe Wayland has reinvigorated them since it's much more exciting to write new code than fix old cruft.

Dude what are you smoking?
clean it up yourself if you love it so much

clean it up yourself if you love it so much

Are we 12?

You're telling me a project that has taken 15 years and is just now getting decent nvidia support and which may someday allow applications to position their own windows is rousing success? Compared to a rework of an existing codebase? That has all the signs of a "we bit off more than we could chew".

It'll work, in the end. But 15 years of work on a migration from X11->"X12" or something would have likely been easier. Especially if they didn't ignore nvidia along the way.

Says the guy that believes its propaganda 😂
Blaming the developers of wayland instead of the company, who refuses to cooperate with them. You are really smart.
Have you seen the codebase from x11. Multiple developers who have worked on x11 for decades say its not worth the time to fix it. It was not designed to run on modern systems. Yet here you are all knowing and you saying it they are wrong. You know better.
X11 is dead, get over it and move on.

5 more...
5 more...
5 more...
5 more...
5 more...
5 more...
5 more...
5 more...
5 more...
5 more...

No body wanted Wayland except the mad scientists and anti nvidia bigots that made it.

Imagine calling developers who have a cold relationship with Nvidia due to Nvidia doing the bare minimum for Linux development "bigots" lol

I think you must be a fanboy. "Bigotry" towards a multi trillion dollar company lmao. What an absurd thought.

I'm no fanboy of any video card. I just have ton of laptops with NVidia in them, and the bigots making Wayland never gave a darn about our plight... and then they started pushing distros to switch before they did anything to fix it. Their callous attitude toward the largest desktop linux userbase is insulting and pushing the distros before they fix the problem should be criminal. Every one of them should be put away for trying to ruin Linux by abandoning it's largest desktop user base. We dislike them, dislike them so much.

Now, will it keep us from using that crap when it finally works? No. We don't have much choice. They've seen to that. x11 will go the way of the dodo. But can we dislike them forever for dragging us through the mud until they were finally forced to fix the darn thing? Yeah. Wish them nothing but the worst.

Nobody is being "bigoted" to Nvidia lmao, get some perspective.

And if you're this butthurt Bout Wayland, don't use it. I've been using it for years without issue, because I didn't choose a hardware manufacturer that's actively hostile to Linux. Nvidia is too bigoted for me, unfortunately.

5 more...
5 more...
6 more...