> Alternatively and more seriously, I do hope to see markets emerge that target power users. I'm not optimistic though.
What's crazy to me is that 25+ million people on this Earth can program, and how many of them get to decide the UIs that everyone else uses? I myself, suck at UI programming. But that's because UI programming is labyrinthine, arcane, and generally requires becoming an expert in a number of extremely poorly thought-out frameworks that are often stupendously complicated. (Web, I am looking at you.)
Why can't I rip apart the UI of an app I use every day and rearrange it the way I want? And I mean, far more than toolbars and rearranging drop down menus. (BTW, remember those? Those were great).
Seriously though, I have written many hundreds of thousands of lines of code in my day; I fancy myself not super bad at programming, yet I cannot take apart a random GUI app and make it do what I want. Even when it's open source. I feel like this is an unaddressed problem; the UI cafeteria people keep serving us an ever-changing menu of crap, and I feel powerless to even lock in the few UIs that I do end up getting good at. They'll take that away soon enough.
"Why can't I rip apart the UI of an app I use every day and rearrange it the way I want?"
Because it is very hard to do something like this, so common people can do it. (you can change every html UI in theory)
I tried to make something like this and basically failed (though in the very long run I might get there eventually). GUI editors are hard to get right and the ones I liked, like Adobe Flex Builder (with Flash UI as a bonus) are gone. But those were also no newb tools. But flash itself was and that was the main reason for its success.
The typical Old School Unix way to do this is to provide all of your application's functionality and business logic through a command line app or at least an API, with the UI being a thin layer on top of the command line. Then anyone can build whatever UI they want on top of it. We've fallen from the light and now the prevailing design is to deeply integrate the business logic with the UI to the point where they are codependent and inseparable.
In some ways web apps act like this: all (most) of the buisness logic and data is on the server.
And you get the data through API calls - so in theory one can build your own UI on top of a known service. There are rare examples of this done succesfully (for HN for example), but usually you won't get very far in a reasonable amount of time, because often it is a mess behind the shiny UI. (And because this is not encouraged behavior by the service provider)
as sibling commented, i look at the Automatic-1111 stable diffusion "webui" as being exactly like you describe, where the "default" service is built in, but the API seems relatively straightforward enough that people have build electron apps and android apps that can talk directly to the python service behind. one of these days i'll actually code a useful mobile UI for my servers. Until then, the reflowing webUI works "ok enough" on mobile.
another one that i'd like to think has an open enough API is mastodon/fediverse, assuming they actually adhere to the activitypub spec, it should (should) be relatively straightforward to write a UI on top of the API. And it seems ok, there's quite a number of mastodon "apps", but less for stuff like misskey or pleroma.
I'm sure there are other contemporaneous examples, but suffice to say that some developers still care about this, today!
Even if the programs you used all supported it, there'd still be no getting around the fact that you'd need to learn some kind of framework or system to modify the UI to your liking. I guess we'd need someone to create one that was intuitive to use and very easy for programs to support, then it'd have to be popular enough with programmers that they'd actually use it. The closest thing I've seen would be websites, since we can remove elements or use customer CSS to change them. Maybe GTK, and those interfaces aren't exactly pretty.
It'd probably have to be free, fast, secure, simple, attractive, flexible, powerful, able to work with all kinds of platforms/screens/inputs, and make creating GUIs easier for programmers to create in general (seems like there's a need there), but even then it'd have to contend with companies who want control over what users see, artists who think they know better than everyone else, and support teams that want documentation full of meaningful screenshots.
>Why can't I rip apart the UI of an app I use every day and rearrange it the way I want? And I mean, far more than toolbars and rearranging drop down menus. (BTW, remember those? Those were great).
IMO there's no reason you can't. Just yesterday I was playing with pavucontrol and thought "There needs to be a GNU Radio like view, where I can drop boxes which represent sound generating/taking programs/devices and draw connecting lines arbitrarily," then I thought why not the same thing for video treating even the contents of windows themselves as video sources too!
From what I hear, PulseAudio inherently lacks the architecture to create arbitrary audio routing graphs. PipeWire can do it for audio with apps like Helvum and QPWGraph, but not for all windows (only webcams and perhaps screen sharing). The view does get confusing as the number of apps/nodes increases though. One point of confusion is that in Helvum, Pulse apps have a playback and monitor node (and the monitor is a copy of the input), but JACK apps have an input and output (where the output is the result of the app applying effects to the input, or an unrelated audio stream altogether). I'm not sure where native PipeWire apps lie.
What's crazy to me is that 25+ million people on this Earth can program, and how many of them get to decide the UIs that everyone else uses? I myself, suck at UI programming. But that's because UI programming is labyrinthine, arcane, and generally requires becoming an expert in a number of extremely poorly thought-out frameworks that are often stupendously complicated. (Web, I am looking at you.)
Why can't I rip apart the UI of an app I use every day and rearrange it the way I want? And I mean, far more than toolbars and rearranging drop down menus. (BTW, remember those? Those were great).
Seriously though, I have written many hundreds of thousands of lines of code in my day; I fancy myself not super bad at programming, yet I cannot take apart a random GUI app and make it do what I want. Even when it's open source. I feel like this is an unaddressed problem; the UI cafeteria people keep serving us an ever-changing menu of crap, and I feel powerless to even lock in the few UIs that I do end up getting good at. They'll take that away soon enough.