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

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.

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

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

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

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?

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

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

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

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