Why does everything need installing these days? (C compiler)

You can talk about almost anything that you want to on this board.

Moderator: Moderators

Posts: 774
Joined: Tue Feb 07, 2017 2:03 am

Re: Why does everything need installing these days? (C compi

Post by Oziphantom » Fri Apr 05, 2019 10:42 pm

Because we don't live in the era of running things of floppy disks anymore. Thank Akarat.
When I install a compiler I want to be able to use it anywhere on the system not have to put c:\path\path\path into everything.

The build tools for VS use to be put it into a folder and run from memory https://visualstudio.microsoft.com/down ... tudio-2019 if you remove all the stuff I think you can get it down to about 300MB you could probably then cherry pick from that if you wanted to

Macs don't keep everything in the bundle this is another one of Apple Lies. There are a lot of hidden directories and the apps will put stuff everywhere once run, .library for example. And when you delete the "all in app" all of its crap just stays on your HDD filling it. This way you can't see what is eating the space and buy a new more expensive model to get more space. If you want to prove this, install firefox, set up a few bookmarks, maybe change the theme, add an extension. "delete the app", reboot, install it again and marvel that all of the bookmarks, theme and extensions are "just right there" still.

User avatar
Posts: 7680
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada

Re: Why does everything need installing these days? (C compi

Post by rainwarrior » Fri Apr 05, 2019 11:15 pm

Yeah, the mac system is sort of an oversimplified model in practice. Sure the executable and stuff that came with it is a nice "package" easy to move into applications, and later to the trash, but...

User data goes elsewhere. "~/Library/Application Support" is very comparable to Windows APPDATA (and more or less just as hidden from the common user). Even Linux programs have some equivalent to this, though how the typical program ends up using it might be a bit different between these platforms.

Then there's another problem of data that the program needs that isn't really part of the package. Updates, add-ons, documentation, optional components... where to put this is not consistent between mac programs. Some actually modify their own package and place new stuff inside there. Some put it in userdata. Here it is the "portable" version of the app that suffers most, as it is not straightforward to put files next to an executable package in a folder, like you can with other systems. (i.e. if the user were to copy it to Applications, it would be very inappropriate to start storing other information in that folder).

Ultimately many things just need an installer and an uninstaller to cleanly come and go. Linux package managers do run scripts for this. Many mac programs do have installers. Windows is just a place where everybody has had to roll their own installer since the beginning (well, since DOS really). I think most people tend to use one of a few common install program generators, so at least the behaviour is somewhat consistent between programs... but people set up their installers wrong and you get stuff left over not infrequently.

Bad uninstall scripts is not a problem specific to Windows, but there have been a lot of bad ones written over the years. Mac's casual lack of installers does kind of cut out a source of error, but at the expense of making collateral data silently hang around... maybe this is a slight improvement on average? (Maybe hiding the problem from the user keeps them happier? :P)

Program Files is semi-protected. There's too much practical stuff you need to use the registry for. Even setting up the uninstall hooks for add/remove programs necessitates an installer in the first place. There's a lot of reasons why most Windows programs do need to use an installer. Not the least of which that a lot of users don't really understand how to use a portable style app and would have an easier time if you just gave them an installer. I release portable apps myself, but I do it knowing pretty well that I'm going to get reports from people who won't know what to do with it.

I do really despise the growing trend of abusing APPDATA as a place to store executables. Discord, SourceTree, and El Gato come immediately to mind. I hate it. I understand what they're working around, but I still hate it.

At least modifying the user's PATH is a thing that very few programs try to do these days, on Windows. I'm happy that's mostly died out. Aside from a few heavyweight things, most stuff doesn't mess with that anymore in an installer. (Even Visual Studio doesn't add to PATH these days... though I wish it still did... seems like part of a push away from CMD toward PowerShell, which is a whole other discussion, but long story short I don't like it.)

Android and iPhone and game consoles have more "package" oriented systems, but these have their own limitations... at least for the most part they have strict rules about where all of a program's data can go, and the OS is capable of keeping track of it and cleaning it up at uninstall. A lot of flexibility was traded away to get this though... and it feels like we're still figuring out what's a sensible model for this (how many different "permissions" does each have to ask you for now on Android?) ...but moving to a system like this does fix a lot of the install/uninstall problems. FWIW, Microsoft has been trying to go this route in Windows with their Windows Store that nobody uses, though maybe it will catch on eventually... not sure if that would be for the overall good. Feels more like a step toward locked systems where you don't have control over what you can run.

User avatar
Posts: 170
Joined: Fri Nov 24, 2017 2:40 pm

Re: Why does everything need installing these days? (C compi

Post by slembcke » Sat Apr 06, 2019 12:17 pm

It's true that Mac bundles don't store preferences or other user data in their bundle. In fact they are not supposed to do this as the user probably will not have write permissions to that folder in a multi-user system. To be honest I hadn't considered that this was even part of the desired behavior for a "portable" program. I feel like I'd be pretty annoyed by this if I wasn't running all my programs off of a flash drive though. All of my home computers are multi-user, and storing programs/files together would be a disaster.

Where user settings should be stored seems like a mess everywhere though... MacOS mostly has convinced devs to use "Preferences" and "Application Support" in ~/Library, but every user is going to find plenty of programs that ignore the rules (including big players like Adobe, Google). Windows has AppData that seems more ignored than ~Library on Mac since Windows has so much more legacy support to deal with. Linux has a bazillion hidden files/directories dumped into home. (I have 88 on my machine!) ~/.config is sort of a thing, but less than half of my non GNOME software uses it.

Android/iOS compartmentalize stuff more, sure, but they are a real pain to use in a multi-user household. Phones tend to be very personal for a lot of reasons. Tablets just sort of inherited phone software and the single-user mindset with it, and it's one of the reasons why I find them utterly useless. Their lack of a usable filesystem makes software on them lean on logins for cloud services, and that makes the problem even worse.

User avatar
Posts: 11469
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Why does everything need installing these days? (C compi

Post by tokumaru » Sat Apr 06, 2019 8:08 pm

I ended up installing MinGW (not only it has an installer, but it has an installer for the installer!), and since Windows didn't ask me whether the programs were allowed to make system modifications, I guess they didn't do anything funny in the process, which's good. I haven't tried to move the folder yet, but everything appears to be working fine for now. Thanks for the help.

Post Reply