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

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?

SplashJackson,

Basically, install Linux on your daily driver, and hide your keyboard for a month. You’ll discover just what needs quality of life revising

Harbinger01173430,

The gatekeeping community

onlinepersona,

Can I keep a gate too and join the community?

Anti Commercial-AI license

LeFantome,

Linux does this all the time.

ALSA -> Pulse -> Pipewire

Xorg -> Wayland

GNOME 2 -> GNOME 3

Every window manager, compositor, and DE

GIMP 2 -> GIMP 3

SysV init -> SystemD

OpenSSL -> BoringSSL

Twenty different kinds of package manager

Many shifts in popular software

loutr,
@loutr@sh.itjust.works avatar

BoringSSL is not a drop-in replacement for openssl though:

BoringSSL is a fork of OpenSSL that is designed to meet Google’s needs.

Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is. We don’t recommend that third parties depend upon it. Doing so is likely to be frustrating because there are no guarantees of API or ABI stability.

embed_me,
@embed_me@programming.dev avatar

Aren’t different kinds of package managers required due to the different stability requirements of a distro?

mlg,
@mlg@lemmy.world avatar

Not too relevant for desktop users but NFS.

No way people are actually setting it up with Kerberos Auth

SpaceCadet,
@SpaceCadet@feddit.nl avatar

100% this

We need a networked file system with real authentication and network encryption that’s trivial to set up and that is performant and that preserves unix-ness of the filesystem, meaning nothing weird like smb, so you can just use it as you would a local filesystem.

The OpenSSH of network filesystems basically.

PlexSheep,

So sshfs or sftp?

SpaceCadet,
@SpaceCadet@feddit.nl avatar

Performance of those is atrocious.

MOUCHE_A_MERDE,

Easy, Gimp.

UnfortunateShort,

By extension, GTK. I was shocked to learn it’s C with object orientation bolted onto it.

Hector,

Some form of stable, modernized bluetooth stack would be nice. Every other bluetooth update breaks at least one of my devices.

daq,

I realize that’s not exactly what you asked for but Pipewire had been incredibly stable for me. Difference between the absolute nightmare of using BT devices with alsa and super smooth experience in pipewire is night and day.

biribiri11,

The entire thing. It needs to be completely rewritten in rust, complete with unit tests and Miri in CI, and converted to a high performance microkernel. Everything evolves into a crab /s

ComradeKhoumrag,
@ComradeKhoumrag@infosec.pub avatar

Had me in the first half ngl

Potatos_are_not_friends,

I laughed waay too hard at this.

A PM said something similar earlier this week during a performance meeting: “I heard rust was fast. Maybe we should rewrite the software in that?”

brax,

They must have been a former Duke Nukem Forever project manager

jaypatelani,
@jaypatelani@lemmy.ml avatar

Why not Ironclad( written in Ada) ? ironclad.nongnu.org

Railison, (edited )

Omg nobody has mentioned FHS?!

sepulcher,

I think someone did :P

Secret300,

What that?

Railison,

Amended my post 😉

Secret300,

Damn I was close. I knew it was something to do with filesystems. Thanks

jordanlund,
@jordanlund@lemmy.world avatar

dmesg

/jk

shirro,

upstart, unity, mir, snap, ubuntu

MonkderDritte, (edited )

Alsa > Pulseaudio > Pipewire

About 20 xdg-open alternatives (which is, btw, just a wrapper around gnome-open, exo-open, etc.)

My session scripts after a deep dive. Seriously, startxfce4 has workarounds from the 80ies and software rot affected formatting already.

Turnstile instead elogind (which is bound to systemd releases)

mingetty, because who uses a modem nowadays?

uis,

ALSA is based

lengau,

Pulseaudio doesn’t replace ALSA. Pulseaudio replaces esd and aRts

tetris11,
@tetris11@lemmy.ml avatar

those last two are just made up words

lengau,

All words are made up

Tehdastehdas, (edited )
@Tehdastehdas@lemmy.world avatar

Except naturally occurring, discovered, onomatopoeic words such as bang, boom, cuckoo, tweet, drip, splish, splash, slosh.

MonkderDritte,

Right, sorry.

phoenixz,

Linux could use a rewrite of all things related to audio from kernel to x / Wayland based audio apps.

Kangie,

Pipewire is great .

Samueru,

About 20 xdg-open alternatives (which is, btw, just a wrapper around gnome-open, exo-open, etc.)

I use handlr-regex, is it bad? It was the only thing I found that I could use to open certain links on certain web applications (like android does), using exo-open all links just opened on the web browser instead.

MonkderDritte,

If you like it, then it’s not bad.

Strit,
@Strit@lemmy.linuxuserspace.show avatar

there are issues with the software we’re using that can only be remedied by massive changes or a complete rewrite.

I think this was the main reason for the Wayland project. So many issues with Xorg that it made more sense to start over, instead of trying to fix it in Xorg.

phoenixz,

And as I’ve understood and read about it, Wayland had been a near 10 years mess that ended up with a product as bad or perhaps worse than xorg.

Not trying to rain on either parade, but x is like the Hubble telescope if we added new upgrades to it every 2 months. Its way past its end of life, doing things it was never designed for.

Wayland seems… To be missing direction?

ComradeKhoumrag,
@ComradeKhoumrag@infosec.pub avatar

I’ve been using Wayland on plasma 5 for a year or so now, and it looks like the recent Nvidia driver has merged, so it should be getting even better any minute now.

I’ve used it for streaming on Linux with pipewire, overall no complaints.

UnfortunateShort,

Wayland is the default for GNOME and KDE now, meaning before long it will become the default for the majority of all Linux users. And in addition, Xfce, Cinnamon and LXQt are also going to support it.

LeFantome,

I do not want to fight and say you misunderstood. Let’s just say you have been very influenced by one perspective.

Wayland has taken a while to fully flesh out. Part of that has been delay by the original designers not wanting to compromise their vision. Most of it is just the time it takes to replace something mature ( X11 is 40 years old ). A lot of what feels like Wayland problems actually stem from applications not migrating yet.

While there are things yet to do, the design of Wayland is proving itself to be better fundamentally. There are already things Wayland can do that X11 likely never will ( like HDR ). Wayland is significantly more secure.

At this point, Wayland is either good enough or even superior for many people. It does not yet work perfectly for NVIDIA users which has more to do with NVIDIA’s choices than Wayland. Thankfully, it seems the biggest issues have been addressed and will come together around May.

The desktop environments and toolkits used in the most popular distros default to Wayland anlready and will be Wayland only soon. Pretty much all the second tier desktop environments have plans to get to Wayland.

We will exit 2024 with almost all distros using Wayland and the majority of users enjoying Wayland without issue.

X11 is going to be around for a long time but, on Linux, almost nobody will run it directly by 2026.

Wayland is hardly the Hubble.

phoenixz,

Well, as I said, it’s what I read. If it’s better than that, great. Thanks for correcting me

Also, X is Hubble, not Wayland :)

leanleft, (edited )
@leanleft@lemmy.ml avatar

according to kagiGPT…
~~i have determined that wayland is the successor and technically minimal:
*Yes, it is possible to run simple GUI programs without a full desktop environment or window manager. According to the information in the memory:

You can run GUI programs with just an X server and the necessary libraries (such as QT or GTK), without needing a window manager or desktop environment installed. [1][2]

The X server handles the basic graphical functionality, like placing windows and handling events, while the window manager is responsible for managing the appearance and behavior of windows. [3][4]

Some users prefer this approach to avoid running a full desktop environment when they only need to launch a few GUI applications. [5][6]

However, the practical experience may not be as smooth as having a full desktop environment, as you may need to manually configure the environment for each GUI program. [7][8]*~~

however… firefox will not run without the full wayland compositor.

correction:

  1. Wayland is not a display server like X11, but rather a protocol that describes how applications communicate with a compositor directly. [1]
  2. Display servers using the Wayland protocol are called compositors, as they combine the roles of the X window manager, compositing manager, and display server. [2]
  3. A Wayland compositor combines the roles of the X window manager, compositing manager, and display server. Most major desktops support Wayland compositors. [3]
sunbeam60,

Be careful what you wish for. I’ve been part of some rewrites that turned out worse than the original in every way. Not even code quality was improved.

Potatos_are_not_friends,

In corporations, we call that job security.

Just rewriting the same thing in different ways for little gain except to say we did it

sunbeam60,

Funnily enough the current one is actually the one where we’ve made the biggest delta and it’s been worthwhile in every way. When I joined the oldest part of the platform was 90s .net and MSSQL. This summer we’re turning the last bits off.

gnuhaut,

GUI toolkits like Qt and Gtk. I can’t tell you how to do it better, but something is definitely wrong with the standard class hierarchy framework model these things adhere to. Someday someone will figure out a better way to write GUIs (or maybe that already exists and I’m unaware) and that new approach will take over eventually, and all the GUI toolkits will have to be scrapped or rewritten completely.

XTL,

Newer toolkits all seem to be going immediate mode. Which I kind of hate as an idea personally.

morrowind,
@morrowind@lemmy.ml avatar

er, do you have an example. This is not a trend I was aware of

KindaABigDyl,
@KindaABigDyl@programming.dev avatar

I’ve really fallen in love with the Iced framework lately. It just clicks.

A modified version of it is what System76 is using for the new COSMIC DE

MonkderDritte,

and all the GUI toolkits will have to be scrapped or rewritten completely

Dillo is the only tool i know still using FLTK.

LeFantome,

NUKE

www.foundry.com/products/nuke-family/nuke

Also, while a bit of a surprise, FLTK is migrating to Wayland.

schnurrito,

Desktop apps nowadays are mostly written in HTML with Electron anyway.

jmbreuer,
@jmbreuer@lemmy.ml avatar

Which - in my considered opinion - makes them so much worse.

Is it because writing native UI on all current systems I’m aware of is still worse than in the times of NeXTStep with Interface Builder, Objective C, and their class libraries?

And/or is it because it allows (perceived) lower-cost “web developers” to be tasked with “native” client UI?

schnurrito,

Probably mainly a matter of saving costs, you get a web interface and a standalone app from one codebase.

umbrella,
@umbrella@lemmy.ml avatar

and a mobile app sometimes

LeFantome,

Are you aware of macOS? Because it is still built with the same UI tools that you mention.

lung,
@lung@lemmy.world avatar

Idk man, I’ve used a lot of UI toolkits, and I don’t really see anything wrong with GTK (though they do basically rewrite it from scratch every few years it seems…)

The only thing that comes to mind is the React-ish world of UI systems, where model-view-controller patterns are more obvious to use. I.e. a concept of state where the UI automatically re-renders based on the data backing it

But generally, GTK is a joy, and imo the world of HTML has long been trying to catch up to it. It’s only kinda recently that we got flexbox, and that was always how GTK layouts were. The tooling, design guidelines, and visual editors have been great for a long time

nayminlwin,

There’s already a lot of people rewriting stuff in Rust and Zig.

KryptonNerd,

What are the advantages of Zig? I’ve seen lots of people talking about it, but I’m not sure I understand what it supposedly does better.

tetris11,
@tetris11@lemmy.ml avatar

Tiny learning curve, easy to refactor existing projects

lemming934,

The goal of the zig language is to allow people to write optimal software in a simple and explicit language.

It’s advantage over c is that they improved some features to make things easier to read and write. For example, arrays have a length and don’t decay to pointers, defer, no preprocessor macros, no makefile, first class testing support, first class error handling, type inference, large standard library. I have found zig far easier to learn than c, (dispite the fact that zig is still evolving and there are less learning resources than c)

It’s advantage over rust is that it’s simpler. Ive never played around with rust, but people have said that the language is more complex than zig. Here’s an article the zig people wrote about this: ziglang.org/learn/why_zig_rust_d_cpp/

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linux@lemmy.ml
  • PowerRangers
  • magazineikmin
  • vwfavf
  • InstantRegret
  • Youngstown
  • Durango
  • khanakhh
  • slotface
  • ngwrru68w68
  • rosin
  • thenastyranch
  • kavyap
  • ethstaker
  • DreamBathrooms
  • provamag3
  • everett
  • tacticalgear
  • osvaldo12
  • cubers
  • mdbf
  • cisconetworking
  • normalnudes
  • GTA5RPClips
  • tester
  • modclub
  • Leos
  • anitta
  • megavids
  • All magazines