this post was submitted on 11 Apr 2024
166 points (95.1% liked)

Linux

48668 readers
482 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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?

(page 6) 23 comments
sorted by: hot top controversial new old
[–] [email protected] 9 points 8 months ago (6 children)

I dont know if this even makes sense but damn if bluetooth/ audio could get to a point of "It just works".

[–] [email protected] 5 points 8 months ago (8 children)

What's your latest disfavor?

Mine is the priorisation of devices. If someone turns on the flatshare BT box and I'm listening to Death Metal over my headphones, suddenly everyone except me is listening to Death Metal.

[–] [email protected] 4 points 8 months ago

It's been a while (few years actually) since I even tried, but bluetooth headsets just won't play nicely. You either get the audio quality from a bottom of the barrel or somewhat decent quality without microphone. And the different protocol/whatever isn't selected automatically, headset randomly disconnects and nothing really works like it does with my cellphone/windows-machines.

YMMV, but that's been my experience with my headsets. I've understood that there's some propietary stuff going on with audio codecs, but it's just so frustrating.

load more comments (7 replies)
load more comments (5 replies)
[–] [email protected] 7 points 8 months ago

In reality this happens all the time. When you develop a codebase it's based on your understanding of the problem. Over time you gain new insights into the environment in which that problem exists and you reach a point where you are bending over backwards to implement a fix when you decide to start again.

It's tricky because if you start too early with the rewrite, you don't have a full understanding, start too late and you don't have enough arms and legs to satisfy the customers who are wanting bugs fixed in the current system while you are building the next one.

.. or you hire a new person who knows everything and wants to rewrite it all in BASIC, or some other random language ..

[–] [email protected] 30 points 8 months ago (9 children)

It's actually a classic programmer move to start over again. I've read the book "Clean Code" and it talks about a little bit.

Appereantly it would not be the first time that the new start turns into the same mess as the old codebase it's supposed to replace. While starting over can be tempting, refactoring is in my opinion better.

If you refactor a lot, you start thinking the same way about the new code you write. So any new code you write will probably be better and you'll be cleaning up the old code too. If you know you have to clean up the mess anyways, better do it right the first time ....

However it is not hard to imagine that some programming languages simply get too old and the application has to be rewritten in a new language to ensure continuity. So I think that happens sometimes.

load more comments (9 replies)
[–] [email protected] 16 points 8 months ago* (last edited 8 months ago) (4 children)

There are many instances like that. Systemd vs system V init, x vs Wayland, ed vs vim, Tex vs latex vs lyx vs context, OpenOffice vs libreoffice.

Usually someone identifies a problem or a new way of doing things… then a lot of people adapt and some people don’t. Sometimes the new improvement is worse, sometimes it inspires a revival of the old system for the better…

It’s almost never catastrophic for anyone involved.

load more comments (4 replies)
[–] [email protected] 8 points 8 months ago
  • TPM encryption or LUKS in general
  • general distro architecture like ostree
[–] [email protected] 5 points 8 months ago* (last edited 8 months ago) (1 children)

Not really software but, personally I think the FHS could do with replacing. It feels like its got a lot of historical baggage tacked on that it could really do with shedding.

[–] [email protected] 1 points 8 months ago* (last edited 8 months ago) (1 children)
[–] [email protected] 8 points 8 months ago* (last edited 8 months ago) (13 children)

Filesystem Hierarchy Standard

/bin, /dev, /home and all that stuff

[–] [email protected] 5 points 8 months ago (1 children)

Would be a crazy expensive migration though

load more comments (1 replies)
load more comments (12 replies)
[–] [email protected] 3 points 8 months ago (2 children)
load more comments (2 replies)
[–] [email protected] 4 points 8 months ago (4 children)

Wayland could already do with a replacement.

[–] [email protected] 37 points 8 months ago (10 children)

Wayland is incomplete and unfinished, not broken and obsolete and hopelessly bad design. PulseAudio was bad design. Wayland is very well designed, just, most things haven't been ported for it yet and some design by committee hell, but even that one is kind of a necessary tradeoff so that Wayland actually lasts a long time.

What people see: lol Firefox can't even restore its windows to the right monitors

What the Wayland devs see: so how can we make it so Firefox will also restore its windows correctly on a possible future VR headset environment where the windows maintain their XYZ and rotation placement correctly so the YouTube window you left above the stove goes back above the stove.

The Wayland migration is painful because they took the occasion to redo everything from scratch without the baggage of what traditional X11 apps could do, so there is less likely a need for a Wayland successor when new display tech arrives and also not a single display server that's so big its quirks are now features developers relied on for 20 years and essentially part of the standard.

There's nothing so far that can't be done in Wayland for technical implementation reasons. It's all because some of the protocols aren't ready yet, or not implemented yet.

load more comments (10 replies)
[–] [email protected] 2 points 8 months ago (1 children)

Yup, Wayland is so old it already has old concepts. But it is also changing a lot

load more comments (1 replies)
[–] [email protected] 3 points 8 months ago (5 children)

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.

[–] [email protected] 8 points 8 months ago

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)

[–] [email protected] -1 points 8 months ago (29 children)

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

load more comments (29 replies)
load more comments (3 replies)
load more comments (1 replies)
[–] [email protected] 9 points 8 months ago (3 children)

Join the hive mind. Rust is life.

load more comments (3 replies)
[–] [email protected] 109 points 8 months ago* (last edited 8 months ago) (3 children)

Happens all the time on Linux. The current instance would be the shift from X11 to Wayland.

The first thing I noticed was when the audio system switched from OSS to ALSA.

[–] [email protected] 73 points 8 months ago (1 children)

And then ALSA to all those barely functional audio daemons to PulseAudio, and then again to PipeWire. That sure one took a few tries to figure out right.

[–] [email protected] 41 points 8 months ago (3 children)

And the strangest thing about that is that neither PulseAudio nor Pipewire are replacing anything. ALSA and PulseAudio are still there while I handle my audio through Pipewire.

load more comments (3 replies)
load more comments (2 replies)
load more comments
view more: ‹ prev next ›