Why desktop operating systems have completely failed at their job for the last 20 years
-
(This rant is focused on Windows because it's what dominates the market, but Linux, aside from some minor differences like using more package managers, is pretty much the same.)
If you've ever used Windows applications, you've probably noticed they have a few minor problems:
- They need to be "installed" before you can run them. Or at least all existing ones insist on it, I don't know if it's actually necessary. This is a real annoyance and a waste of time IMO. Often they will insist on installing shell extensions or background services that will slightly slow your entire system down, with no way to disable it even if they're not really necessary.
- They leave "residues" even after uninstalling. This is the bane of all Windows users: your computer just gets slower and crappier over years and you eventually need to do a clean install.
- Because installing and uninstalling can run arbitrary logic, there's no reliable way to do it without running the official installer program. You can't just copy a folder to a computer to deploy the program. This is a MASSIVE inconvenience when it comes to system administration. Yes, I know there are ways to do that (unattended installers, containers, 3rd party programs, portable versions, etc) but they are not universal.
- There's no reliable way to copy or delete the state of a program (the persistent data it stores on disk). Sure, most of the time this will be the AppData\Roaming\[program] folder, but not necessarily. I have a Windows desktop computer and a tablet, yet there's no easy way for me to sync the state of my desktop programs between both. And wouldn't it be nice if you could right click any program and run it with different user profiles, like Chrome or Firefox do, or even get a "Snapshots" feature like VMs that let you go back in time?
And of course, one major problem: security
- Even without running as admin, applications can do lots of bad things: they can read all my documents, delete them, encrypt them and ask for a ransom, install themselves to silently run on the background, and log all passwords I enter into the browser.
There's no reason why Minesweeper should be able to read my emails. It's called the principle of least privilege or just fucking common sense. - Worse, in most cases, the application requires me to run it as administrator to install it. This means it can gain absolute control over my computer! For a fucking web browser or video game!
So what does this mean? It means that every single time I want to run a program, I have to pay a slowness tax, and take a significant risk. And that means that I avoid running new Windows programs as much as I can, and I tell everyone I can to do the same.
And that means Windows has failed at its one fucking job. Which is to run programs.
And it bothers me that I never see anyone acknowledge this problem in so many years, when it's pretty much the #1 headache with computers, and there's no technical reason for programs to work like that!
Compare it with the simplicity of clicking a single link and having any web app load in my browser, quickly and completely isolated to its own tab (and on any platform!). It's no wonder that HTML5 and Android have taken over "desktop" as default software platforms so quickly, despite their many flaws. It wasn't their merit so much as everyone else's fault. Of course, now Microsoft has responded with UWP, but they didn't move a finger until their monopoly was finally toppled.
Or just look at the huge demand for containers and VMs for deploying server stuff. You just copy them and they run! You can pause them and move them to a different computer! Why aren't we demanding that from Linux and Windows?
Yes, in their defense, Linux does have SELinux, AppArmor, a wide variety of other sandboxing projects, and containers now, but as far as the average user can see they don't exist at all. All programs still run the old fashioned way, with access to your entire home directory.
And no, really, sandboxes are not impossible. Technically, raw old-fashioned binaries are already sandboxed by default in x86 platform, they can't do anything but raise syscalls and exceptions (short of exotic things like CPU vulnerabilities, which I admit are a PITA), and the OS then decides what to do in response. So it's not one of those fundamentally impossible problems like DRM, it's only hard because humans sucking at making software.
I open untrusted code in Chrome and Firefox all day without a worry. I was doing it 10 years ago with Flash games. Android does it. Even Java, with the constant security vulnerabilities, is at worst equal to Windows' default model. Even Windows and Linux can do it! They already have most or all of the security elements in the kernel necessary to encapsulate a process, they just need the rest of the system to be designed to actually use them.
Of course browsers and OSs have regular vulnerabilities, and it's also hard to design effective and user friendly permissions systems. But difficult doesn't mean impossible, we still use browsers more and more every day and the world doesn't fall apart.
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
They need to be "installed" before you can run them. Or at least all existing ones insist on it, I don't know if it's actually necessary.
Given the number of standalone Windows programs I've seen, it's clear that installing isn't a requirement for all programs. However, a large number of them do like to add all sorts of crap to the Registry, and sometimes to shared folders as well, and that's where installers come in.
-
@anonymous234
I agree with your points about lack of permission control for programs.Why desktop operating systems have completely failed at their job for the last 20 years
The answer is already in the question: the software is old and initially designed without much of the knowledge we have now.
The need for backward compatibility further prevents fixing these problems.Android has fixed some of them, because it is younger.
-
@anonymous234 As I said in the other thread, we used to do it right at MS-DOS time. You unzipped a folder and there is your app. All configuration, logging and etc inside it.
There is nothing in modern software that justified we leaving from this way of doing things.
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
They need to be "installed" before you can run them.
-
@TimeBandit said in Why desktop operating systems have completely failed at their job for the last 20 years:
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
They need to be "installed" before you can run them.
Still wants to be installed
-
@wharrgarbl said in [Why desktop operating systems have completely failed at their job for the last 20 years]> Still wants to be installed
I think you just have to install it on a USB key, then you can move the key to other machines.
-
@anonymous234 I think installation actually ends up with a better user experience than portable unzip apps. People seem most comfortable with the mobile experience: there's a huge list of apps out there; they find one they like, and click on "get this thing"; a moment later, they have the thing and can now use it. If they don't like it, they remove the thing by dragging it to a trash can. The fact that "get the thing" includes both a download and an install is fine, because it's one atomic operation from their perspective.
Compare with installing portable apps on Windows: you download some weird "zip" thing. Probably your browser sticks it in your downloads folder, which is often a kind of junk drawer for all kinds of weird shit you've downloaded. Then you have to go find it, "unzip" it (???), and then run it. Most likely, you unzipped it in place, so now to run the app in the future you have to go rummage around in the Downloads junk drawer to find it again. Other apps are in a menu for you (start) or on your desktop with your important files, but not this weird one, it's hiding.
-
@TimeBandit I wonder if anyone's made an Android app that, when the phone is plugged into a computer, can now run as an app on your computer? Imagine if your Firefox instance lived on your phone with all your bookmarks, no sign-in needed...
-
@Yamikuronue Most apps should be single file executables IMO. Windows supports embedded resources like images in them, and all non-system libraries should be static.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@anonymous234 As I said in the other thread, we used to do it right at MS-DOS time. You unzipped a folder and there is your app. All configuration, logging and etc inside it.
There is nothing in modern software that justified we leaving from this way of doing things.
What if you want roaming profiles on a domain?
-
@Yamikuronue said in Why desktop operating systems have completely failed at their job for the last 20 years:
@TimeBandit I wonder if anyone's made an Android app that, when the phone is plugged into a computer, can now run as an app on your computer?
almost
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@Yamikuronue Most apps should be single file executables IMO. Windows supports embedded resources like images in them, and all non-system libraries should be static.
I guess that means abandoning the idea of plugin mechanisms and partial updates then.
-
@dangeRuss said in Why desktop operating systems have completely failed at their job for the last 20 years:
What if you want roaming profiles on a domain?
I don't
-
@RaceProUK said in Why desktop operating systems have completely failed at their job for the last 20 years:
I guess that means abandoning the idea of plugin mechanisms and partial updates then.
Plugins could be a good exceptions for DLLs. It was just an hyperbole. But partial updates aren't worth it, we're not on dial up anymore. Just test your software better instead of pushing updates every day.
-
@wharrgarbl Even for modern games, some of which are easily bigger than 60GB, and take several hours to download even on a fast connection?
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@dangeRuss said in Why desktop operating systems have completely failed at their job for the last 20 years:
What if you want roaming profiles on a domain?
I don't
YOU don't. But there's a use case for them, and that use case requires that the settings live somewhere that could be easily replicated.
-
@dangeRuss said in Why desktop operating systems have completely failed at their job for the last 20 years:
that use case requires that the settings live somewhere that could be easily replicated
The Cloud ™
-
@TimeBandit said in Why desktop operating systems have completely failed at their job for the last 20 years:
The Cloud ™
So long as it doesn't rain ;)
-
@RaceProUK said in Why desktop operating systems have completely failed at their job for the last 20 years:
@TimeBandit said in Why desktop operating systems have completely failed at their job for the last 20 years:
The Cloud ™
So long as it doesn't rain ;)
You're in the UK, you're fucked
-
@RaceProUK OK, a directory then, like DOS did is still good.
-
@anonymous234
Sounds like what you want is the new Windows app ecosystem. It fixes at least half of the issues you mentioned.
-
@dangeRuss said in Why desktop operating systems have completely failed at their job for the last 20 years:
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@dangeRuss said in Why desktop operating systems have completely failed at their job for the last 20 years:
What if you want roaming profiles on a domain?
I don't
YOU don't. But there's a use case for them, and that use case requires that the settings live somewhere that could be easily replicated.
Let's compromise in a few config files in your profile that doesn't stop the program from working if you delete it, with a clear directory name so you know what you can or can't delete there.
Edit: no, fuck roamers, I still want it all contained in it's directory
-
All of this is already solved with ChromeOS.
You loggin into a new Chromebook, all your apps/documents/settings are synced.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
if you delete it
Yeah, I can see it being an issue for you
-
@TimeBandit Android is better but applications still litter my "internal memory" with an all or nothing permission there. Dunno how chromeos works.
-
@RaceProUK said in Why desktop operating systems have completely failed at their job for the last 20 years:
However, a large number of them do like to add all sorts of crap to the Registry, and sometimes to shared folders as well, and that's where installers come in.
It doesn't need to put files everywhere during install.
Windows should be more like macOS in this respect - almost every app is just a case of drag-and-dropping it from the .zip or .dmg into the Applications folder.
-
I kinda like the Android architecture, where each app gets its own OS-level username and directory. It can only read and write to its directory, but can put anything it wants there, and if you delete the app, then it all gets deleted.
Of course, then you can only share things between apps using OS-level features.
-
@UndergroundCode except when you give sd card or internal memory permission it can write anywhere on the internal memory, and it's being abuses
-
@asdf said in Why desktop operating systems have completely failed at their job for the last 20 years:
@anonymous234
Sounds like what you want is the new Windows app ecosystem. It fixes at least half of the issues you mentioned.I want that, but released in 2001 as a major component of Windows XP, instead of 2015 and windows 10. To save me and everyone else 14 years of computer pain.
-
@wharrgarbl Yeah that can be a headache sometimes. Just dreamin' of things we could maybe change in desktop OSes to make them suck less.
-
@UndergroundCode There should definitely be a read-only "Firefox.app" file or folder containing the program, and one or more "Firefox.username.data" folders where all the persistent data is stored.
Delete it, the program starts from zero again. Copy it, and you copy the program's entire state.
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
@UndergroundCode There should definitely be a read-only "Firefox.app" file or folder containing the program, and one or more "Firefox.username.data" folders where all the persistent data is stored.
Delete it, the program starts from zero again.$ ls /Applications | grep Firefox Firefox.app $ ls ~/Library/Application\ Support/Firefox/Profiles/ yxvvc64v.default
No idea if copying it copies the whole state though.
-
Related necro:
@ogilmor said in Windows desktop search:
we have a windows desktop search pilot, of which I am am member. Pilot is over, there are some issues so I go to uninstall it. I get the microsoft warning that removing it could damage the following progams, followed by a list of ALL the programs on my computer.
Now if those programs were OK before desktop search, why does removing it risk damaging them?
I ask you, a wtf?
-
@wharrgarbl Was it Desktop Search for the Masses?
-
@Yamikuronue said in Why desktop operating systems have completely failed at their job for the last 20 years:
I wonder if anyone's made an Android app that, when the phone is plugged into a computer, can now run as an app on your computer? Imagine if your Firefox instance lived on your phone with all your bookmarks, no sign-in needed...
Sentio is working on it.
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
And it bothers me that I never see anyone acknowledge this problem in so many years
I'm annoyed by it all the time but I don't know where I would "talk about" these frustrations. I agree with pretty much everything you said.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@UndergroundCode except when you give sd card or internal memory permission it can write anywhere on the internal memory, and it's being abuses
Is it being abused?
What's a better way to do that?
-
@sloosecannon said in Why desktop operating systems have completely failed at their job for the last 20 years:
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@UndergroundCode except when you give sd card or internal memory permission it can write anywhere on the internal memory, and it's being abuses
Is it being abused?
What's a better way to do that?
I don't know if it's being abused, but I do know that I can't get Kodi to write to an external SD card folder.
-
@Yamikuronue said in Why desktop operating systems have completely failed at their job for the last 20 years:
Imagine if your Firefox instance lived on your phone with all your bookmarks, no sign-in needed...
A bit like...
Of course, it still runs at phone speed. Ideally I'd want my apps to be able to run the same in my phone, desktop computer, or cloud service (of course you'd need the same OS in all three for that), and be able to move between those three on the fly, and be used from any other system.
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
Ideally I'd want my apps to be able to run the same in my phone, desktop computer, or cloud service (of course you'd need the same OS in all three for that), and be able to move between those three on the fly, and be used from any other system.
Basically, what you describe is web-apps
-
@loopback0 said in Why desktop operating systems have completely failed at their job for the last 20 years:
@RaceProUK said in Why desktop operating systems have completely failed at their job for the last 20 years:
However, a large number of them do like to add all sorts of crap to the Registry, and sometimes to shared folders as well, and that's where installers come in.
It doesn't need to put files everywhere during install.
It doesn't need to. It shouldn't. But most programs do. And it's really stupid.
So far, iTunes still holds the record, at least on my computer anyway, installing support files for 35 different languages instead of just allowing you to pick one at installation time. As a result it spews 10,000+ files, that aren't needed and can be safely deleted, across a dozen or more different locations.
AND for extra bonus stupidity points, it creates an entry in the registry for each and every one of them. I think the last time I did a clean install, removing all the iTunes cruft from the registry reduced the size of the registry by almost 20%.
-
@TimeBandit Web apps where the backend can be deployed with one click and moved dynamically between computers.
Containers would probably help there :P
-
@sloosecannon said in Why desktop operating systems have completely failed at their job for the last 20 years:
Is it being abused?
What's a better way to do that?I have many apps that store data in custom folders that android fails to report as being space used by them, and remains after it's uninstalled.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
But partial updates aren't worth it, we're not on dial up anymore.
The only files that it is worth doing a partial update of are files that are essentially some form of container format containing a bunch of smaller files. (Directories have similarities too.) There's lots of bandwidth, but not infinite amounts, so there's a need to keep on trying to be at least a bit smart about using the capacity.
Plugins and partial updates are possible. You just need to support loading of libraries and other resources out of the archive. “Just.” It's not impossible — I've seen it done — but it is an area where tooling and OS support could be better, especially on Windows (where the executable locking really gets in the way). I've seen people do tricks like stapling an executable and an SQLite database together into a single file, with the other support files being kept inside the DB, making for a scheme that on some operating systems can support transparent updating and plugins without complex installation procedures. And with the DB already there, it enables other ways to think about app support info than simple files.
-
@wharrgarbl That would depend on how the programmer decided to store them. Any app can, without permission, write to its own folder on external storage, which gets removed if the app is uninstalled. The permission grants access to read/write to any folder on the external storage, which misbehaving apps could do to store files that really should go in its own folder.
-
@Yamikuronue said in Why desktop operating systems have completely failed at their job for the last 20 years:
@anonymous234 I think installation actually ends up with a better user experience than portable unzip apps. People seem most comfortable with the mobile experience: there's a huge list of apps out there; they find one they like, and click on "get this thing"; a moment later, they have the thing and can now use it. If they don't like it, they remove the thing by dragging it to a trash can. The fact that "get the thing" includes both a download and an install is fine, because it's one atomic operation from their perspective.
Compare with installing portable apps on Windows: you download some weird "zip" thing. Probably your browser sticks it in your downloads folder, which is often a kind of junk drawer for all kinds of weird shit you've downloaded. Then you have to go find it, "unzip" it (???), and then run it. Most likely, you unzipped it in place, so now to run the app in the future you have to go rummage around in the Downloads junk drawer to find it again. Other apps are in a menu for you (start) or on your desktop with your important files, but not this weird one, it's hiding.
TO solve this particular problem, I've been storing portable apps in Downloads/Apps and I use listary to launch them.
Incidentally, the fact that listary is a must-have application strengthens @anonymous234's point.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@TimeBandit Android is better but applications still litter my "internal memory" with an all or nothing permission there. Dunno how chromeos works.
IOS is better in that regard. There is no huge list of stuff the app wants when you're installing, take it or leave it style. The app gets installed and by default it can't access shit. You have to explicitly allow it.
I actually like app management system from iOS.
-
@Atazhaia said in Why desktop operating systems have completely failed at their job for the last 20 years:
@wharrgarbl That would depend on how the programmer decided to store them. Any app can, without permission, write to its own folder on external storage, which gets removed if the app is uninstalled. The permission grants access to read/write to any folder on the external storage, which misbehaving apps could do to store files that really should go in its own folder.
I think his point is that the "external" permission shouldn't exist at all. Problem is, shared storage like that has advantages too, and it shouldn't get removed just because some developers are stupid and
-
@Atazhaia said in Why desktop operating systems have completely failed at their job for the last 20 years:
misbehaving apps
And there is a lot of them. It should be blocked by permissions, or the play store should reject these
-
@kt_ Android 6.0 changed to iOS-style permissions where the app asks when it needs to use a particular permission. Apps written for older versions of Android will still ask for all permissions it could need at install, though.