We desperately need a decent desktop operating system. After that basic need is satisfied, fixing the problems in the upper layers will be easier in comparison.
To develop any kind of software, you need to do so in a desktop operating system, so it's important for it to be reliable and usable.
I think the only viable way to achieve this is to create a Linux-based OS. Not another Linux distribution, but something consistent and well thought out and that solves the problems that no one in the Linux space wants to solve right now.
I totally agree with you, but lets not forget that we are going through a phase where the open source model is suffering over the lack of incentives.
We need to figure it out a good and sustainable economic model or else it might start falling apart.
I really think that society, governments, civil entities should step up with some formula, because i mean, this is the XXI century infrastructure.. open source software are now the "roads" where everything is passing through.
Government all around worry about their physical infrastructure, so why not start to care about the virtual infrastructure we all rely on? Where a big chunk of the economy, culture and society in general are relying on?
Unfortunately capitalism on its own is failing in presenting a good solution, unless you think the guy running (idk) some important crypto code having to take care of ads to survive is a sign that everything is working as it should.
I would love if we had some sort of "trickle-down tax", where we use dependency resolution and some algo to rate the importance of that particular dependency and make the software and services that are using them and being payed for it, to let some of the profit to help the open source ones (here i think a blockchain solution might be of some help, as things would be totally automated).
1. We need a clear separation between system programs and application programs, so that a user can install the latest version of Python without it ever colliding with the outdated version of Python that the OS uses internally. The user shouldn't even need to be aware of the existence of the other Python.
2. The default way to install third-party application software shouldn't depend on repositories or servers. It should be based on installing files, just like on Windows. The OS should define a stable format for the OS to install, update and uninstall these files. Additionally, a permission system like Android's could be a good idea.
3. We need a desktop environment that's visually appealing and has a good UX.
4. We need centralized, thorough and official user documentation about the OS, so that the user doesn't need to browse random forums and wikis in order to learn how to use some piece of the OS. Note that this documentation is about the OS, not about third party software. And this documentation should be distinct from the developer's documentation.
5. Consistency. The user shouldn't need to learn 10 different config file formats or inconsistent command flags across the system in order to configure it.
> > 3. We need a desktop environment that's visually appealing and has a good UX.
> Such as KDE and the rest?
Just personal taste, but I don't find KDE visually appealing, and not only the default theme ("Breeze"). Unfortunately, I can't get used to the usability issues on GNOME.
IMO, the sweet spot of visually appealing and good UX is .... Windows 10 (sigh), followed by a close second in Cinnamon (and I'm also a fan of IceWM).
> We need a clear separation between system programs and application programs ... The default way to install third-party application software shouldn't depend on repositories or servers. It should be based on installing files, just like on Windows.
So the end goal is for a system where users download random binaries off the net, which never get any security patches and leave dozens of copies of vulnerable dependencies lying around?
> Additionally, a permission system like Android's could be a good idea.
Even with a permission system like Android's, how are you going to stop malicious applications from exfiltrating all the files in your home directory, or recording all your keystrokes, or spying on your clipboard, or putting up a fake password prompt, or mining bitcoin with your GPU, or just escaping whatever sandbox you think you're running them in?
If those are the risks I have to put up with in order to run a bleeding-edge Python interpreter on my system, then I think I'll pass. I guess that makes me an old_unixer.
> So the end goal is for a system where users download random binaries off the net
They download the binaries they trust off the net.
You're insinuating that some users are too stupid to know who to trust and go around downloading random binaries. If there are such users, then I guess my OS is not geared towards them, but rather to software developers, creative professionals, etc. who know what they're doing and need to get their application software directly from the developer.
People who don't know who to trust or want their OS developers to keep repositories for them can keep using Apple devices with their walled gardens or repository-centric Linux distros.
> which never get any security patches and leave dozens of copies of vulnerable dependencies lying around?
Do Windows applications never get any security patches?
And yes, sandboxing is not an infallible security mechanism, but it could help, and it also has other practical advantages not related to security.
> 2. The default way to install third-party application software shouldn't depend on repositories or servers. It should be based on installing files, just like on Windows.
Not having a keyboard-like pop-up app that can work inside all other apps that's half speech-to-text processor, half emoji picker, like you have on mobile except having it on desktop.
And a way to run all Windows software flawlessly.
And making KDE the default DE because it's the best one.
And Wayland feature parity.
And another packaging format that's like Flatpak and AppImage, except the best of both combined into one, that everyone uses from now on instead of any of the others.
And something about how good Macbook trackpads are.
To develop any kind of software, you need to do so in a desktop operating system, so it's important for it to be reliable and usable.
I think the only viable way to achieve this is to create a Linux-based OS. Not another Linux distribution, but something consistent and well thought out and that solves the problems that no one in the Linux space wants to solve right now.