Philosophically speaking, why do programs need to be installed?

Philosophically speaking, why do programs need to be installed?

None.

To register them within systems they are being installed on, relative to other programs and services?

Not all software 'needs' to be installed though..

>To register them
Why do programs need to be registered?

Deep user

Organization, management, the ability to find / detect it on a system, etc.

So that they can be completely uninstalled.

Depends on the definition of installation.
If it's just saving to disk (permanent storage) then none.
Maybe I'm being too careful. But it's difficult to think of what applications couldn't be streamed in. Any program is just instructions that run given a finite set of memory for it to manipulate so if you've got something sufficiently advanced to shuffle all that state around and fetch the instructions from wherever you're gonna be able to not install it.

>uninstall program
>program folder still has folders with random files inside

They do not.

yes

Why can't you just copy over files for an OS straight onto a disk and have it work?

But you can? I mean you need to make sure the OS can be loaded of course, but other than that that's basically how you install an os

I think is correct - some functionality depends on the system being aware of what's installed. The most obvious example of course is file type association.

>file type association
Can easily be done on program first run / settings.

You can, but you need to install a bootloader as well.

That would be considered installing the program, though.

How? It's just running it. It just uses the system it's on.

It's adding files to the system for itself, which is installing the program.

It's not installing if it doesn't have a progress bar

For Windows, because the operating system is broken.

On Linux, it's just extracting a package.

>Linux is not broken

Having worked on several installers for windows, imo the main benefit of an installer is configuring resources such as shared libs and registry entries (eg shell extensions, file associations, ODBCs, whatever) and far more importantly, to allow REMOVAL of installed components. For this reason, programs with broken uninstallers are utterly dismal and should not use the windows installer database at all.

DOCKER

By that definition, no Linux program is installed

Anyway, file associations are one example. You could of course just copy the executable to your chosen place and then on the first run it would configure everything needed. It can even not show a progress bar. The thing is, those things need to be configured anyway, so there's absolutely no reason to defer them until first run.

Also many windows "installers" just extract the program files, move them to the correct location, and create a desktop short cut or something. The only reason for this is convenience - it's easier to double-click an msi and sit back than manually browse to your program files, extract everything, etc.

FYI, since most people ITT seem unaware of what installers do (on windows) they add all the installed components to a central system database, which tracks usage, versioning, and lots of other useful shit.

The downside to the system is when devs make shit installers. If everyone made clean WiX installers without random non-transactioned changed windows would be super clean.

in b4 shill since i prefer apt

At least every package doesn't have its own installer.

Perfectly organised and clear. Your point?

Made me think

Don't forget crap like WoW registry virtualizationand backwards compatibility. It also gets worse if you try to automate said installations with some something like usmt.
Mostly because developers ignore said conventions and scatter their configs and logs all over the place.