Installers. Why?

Xplaced

New member
Local time
2:12 AM
Messages
29
This thread is just a pondering, not a real technical question. That's why I've put it here. Sorry if it's in the wrong place! New poster here. :D

Why use installers? A recent experience has made me question the purpose of installers in general. Why not just have big Zips that you unzip into Program Files or wherever you want, and just run all the contained files? Why create registry entries and all that mess with installers?

For example. New game out, Aion. I had major installation problems. Got it installed on an XP system, couldn't get it working on a Vista system. So, I decided what the heck, I'll just copy the whole folder over to my Vista box.

Wouldn't you know, it worked. About a 3 minute copy, no patching, everything was already updated from the other PC. It just plain worked.

Is the purpose of installers just to create Start Menu > Programs shortcuts, and add (apparently unneeded!) registry entries?

This leads me to think, what if I had two hard drives and installed everything to the 2nd hard drive, and Windows was on the 1st. This way when I reformat Windows I don't reinstall all my apps. Seems in theory this would work, but I always scoffed at it working because of missing registry entries, programs not being in Add/Remove Programs or Programs and Features, etc. Stuff like that.

If it would work, why not just do it? Anyone got experience doing this? Experiences with problems, or nothing but good luck from it? :D I may try it out since I like experimenting with stuff, and plus I have massive installs sometimes (mostly big games!).
 

My Computer

OS
Windows 7 Ultimate
CPU
AMD Athlon Black Edition 5000+ 2.6Ghz
Motherboard
MSI K9a Platinum
Memory
G.Skill 4gb
Graphics Card(s)
Nvidia 8800GT 320mb
Sound Card
SoundBlaster Audigy
Monitor(s) Displays
Acer 22" Widscreen LCD
Screen Resolution
1680x1050
Hard Drives
Two Western Digial 320gb, 5400rpm
PSU
600 watt - forgot the brand!
Keyboard
Microsoft Razer Reclusa
Mouse
Razer Diamondback 3g Green
Internet Speed
10mbps RoadRunner
Because there is much more going on than simply copying files. The installer sets up folders and files, registry entries, configuration files, environment variables and shortcuts. See here for a detailed article on what installers do.
 

My Computer

Computer Manufacturer/Model Number
self built
OS
Windows 7 Professional 64-bit
CPU
Intel E8400 3GHz
Motherboard
Intel DX48BT2
Memory
Kingston PC3-10700H 4Gb
Graphics Card(s)
XFX Radeon HD 5850 BlackEd.
Sound Card
Asus Xonar DG
Monitor(s) Displays
2x Samsung SM-T220HD 22"
Screen Resolution
1680x1050 on two monitors
Hard Drives
OCZ Vertex 2 120gb 3.5" (OS)
Seagate Momentus XT 500gb
Samsung F3 1Tb (games)
2x Samsung F1 1Tb
PSU
Thermaltake ToughPower 850w
Case
Thermaltake Armor
Cooling
Scythe Mugen II
Keyboard
Microsoft Comfort Curve USB
Mouse
Razer Diamondback 3G
Internet Speed
8128/443
Good reply swarf. Except that I think the OP's point is that, why is it necessary? He has a valid question. PC programmers are lazy, or more specifically, spoiled. An effective and even highly complex program can be written in assembler, for example, as one self-contained executable, negating the need to create all of the other dependencies you describe. Beyond a simple .ini, the vast majority of programs shouldn't need installers.
 

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Custom Build/Mod
OS
Windows 7 Home Premium x64
CPU
Intel QX9650 Extreme 4.0 GHz
Motherboard
ASUS Rampage Extreme Rev2
Memory
8GB (4x2) Corsair Dominator DDR3
Graphics Card(s)
2x Radeon R390X [8GB]
Sound Card
SupremeFX X-Fi
Monitor(s) Displays
Dell 2408WFP 26" Panel
Screen Resolution
1920x1200
Hard Drives
4x WD 2TB (8TB+ Total)
2x Crucial SSD 128GB (RAID-0)
1x LG Blu-ray read/write
1x Phillips LightScribe DVD read/write
PSU
Corsair HX1000
Case
CoolerMaster - Cosmos S
Cooling
Custom Liquid - 320mm rad w/ 3x 80mm fans, CPU/NB/SB Blocks
Keyboard
Logitech Illuminater Pro
Mouse
Logitech
Internet Speed
Fractional T1 - 125Mbps
Antivirus
ESET Security Suite / Microsoft Security Essentials
Browser
Cyberfox Intel x64
Other Info
OC'd to 5.0GHz @ 44c under full load
I still think they are necessary considering the amount of scripted items they have to perform. Imagine asking the user to extract the files, configure inis, edit the registry, etc.

They simplify the whole process so that even the most novice of users can install an important program in order to get what they want done.

You may call an ini file simple, but to a computer novice they wouldnt have a clue.
 

My Computer

Computer Manufacturer/Model Number
self built
OS
Windows 7 Professional 64-bit
CPU
Intel E8400 3GHz
Motherboard
Intel DX48BT2
Memory
Kingston PC3-10700H 4Gb
Graphics Card(s)
XFX Radeon HD 5850 BlackEd.
Sound Card
Asus Xonar DG
Monitor(s) Displays
2x Samsung SM-T220HD 22"
Screen Resolution
1680x1050 on two monitors
Hard Drives
OCZ Vertex 2 120gb 3.5" (OS)
Seagate Momentus XT 500gb
Samsung F3 1Tb (games)
2x Samsung F1 1Tb
PSU
Thermaltake ToughPower 850w
Case
Thermaltake Armor
Cooling
Scythe Mugen II
Keyboard
Microsoft Comfort Curve USB
Mouse
Razer Diamondback 3G
Internet Speed
8128/443
^^ Point taken but not initially refuted, either. :)

With the exception of file associations (a pesky throw-back to the 90's if you ask me), there's not much more a program should need to do to alter a systems' already inherent functionality. DLL's can be placed in the program's folder (negating the need for system32/ write access altogether), not to mention any other dependencies. The whole concept of AppData and the MyDocuments folder that preceeded it was included purely for downward compatibility issues with legacy software. This is the same mid-90's coding that, to this day, *requires* a swapfile or a TMP folder. The point being, it's legacy nonsense and entirely unnecessary.

Steve Gibson at GRC is the best example I can come up with, for the moment, if you consider that his applications of exceedingly powerful, yet none (that I am aware of) require any form of installation. Just think how PCs would run if everything were written in pure assembler? Wow.
 

My Computer

Computer type
PC/Desktop
Computer Manufacturer/Model Number
Custom Build/Mod
OS
Windows 7 Home Premium x64
CPU
Intel QX9650 Extreme 4.0 GHz
Motherboard
ASUS Rampage Extreme Rev2
Memory
8GB (4x2) Corsair Dominator DDR3
Graphics Card(s)
2x Radeon R390X [8GB]
Sound Card
SupremeFX X-Fi
Monitor(s) Displays
Dell 2408WFP 26" Panel
Screen Resolution
1920x1200
Hard Drives
4x WD 2TB (8TB+ Total)
2x Crucial SSD 128GB (RAID-0)
1x LG Blu-ray read/write
1x Phillips LightScribe DVD read/write
PSU
Corsair HX1000
Case
CoolerMaster - Cosmos S
Cooling
Custom Liquid - 320mm rad w/ 3x 80mm fans, CPU/NB/SB Blocks
Keyboard
Logitech Illuminater Pro
Mouse
Logitech
Internet Speed
Fractional T1 - 125Mbps
Antivirus
ESET Security Suite / Microsoft Security Essentials
Browser
Cyberfox Intel x64
Other Info
OC'd to 5.0GHz @ 44c under full load
An important reason could also be shared libraries, aka DLL's.

In DOS, every program was an island on it's own, using it's own files.
Because of that there could be a large number of duplicate files on the system.

With programs getting bigger and bigger and the need for interoperability, shared libraries were introduced.

Almost any program nowadays uses windows libraries and common files to make use of pieces of the OS.

To make this work, a registry is necessary to tell each program where parts of the OS can be found, and tell the OS where parts of the program are, how the program is set, and what it's properties are.

I think that's the main reason you cannot just dump a program in a folder and let it run. (some little proggies do without registry, but they carry their own dll's)

Greetz
 

My Computer

OS
Win7 Build 7600 x86
CPU
Pentium II 300MHz
Motherboard
Asus
Memory
32mb EDO RAM
Graphics Card(s)
Diamond Viper
Sound Card
Soundblaster 16
Monitor(s) Displays
14" AOC CRT 16K color
Screen Resolution
800x600
Hard Drives
300mb Quantum fireball
PSU
110 Watts
Cooling
Passive
Keyboard
Trust Ergonomic
Mouse
Generic
Internet Speed
256K u 128K d
I will say this: installers have been getting very fast in the last few years. I remember 3-4 years ago waiting 30 mins to install programs.
 

My Computer

OS
Win7
CPU
Intel E8300 @ 2.83
Motherboard
nVidia
Memory
2 Gigs
Graphics Card(s)
nVidia 9800GT
Monitor(s) Displays
Acer V173
Hard Drives
500GB HD
This thread is just a pondering, not a real technical question. That's why I've put it here. Sorry if it's in the wrong place! New poster here. :D

Why use installers? A recent experience has made me question the purpose of installers in general. Why not just have big Zips that you unzip into Program Files or wherever you want, and just run all the contained files? Why create registry entries and all that mess with installers?

For example. New game out, Aion. I had major installation problems. Got it installed on an XP system, couldn't get it working on a Vista system. So, I decided what the heck, I'll just copy the whole folder over to my Vista box.

Wouldn't you know, it worked. About a 3 minute copy, no patching, everything was already updated from the other PC. It just plain worked.

Is the purpose of installers just to create Start Menu > Programs shortcuts, and add (apparently unneeded!) registry entries?

This leads me to think, what if I had two hard drives and installed everything to the 2nd hard drive, and Windows was on the 1st. This way when I reformat Windows I don't reinstall all my apps. Seems in theory this would work, but I always scoffed at it working because of missing registry entries, programs not being in Add/Remove Programs or Programs and Features, etc. Stuff like that.

If it would work, why not just do it? Anyone got experience doing this? Experiences with problems, or nothing but good luck from it? :D I may try it out since I like experimenting with stuff, and plus I have massive installs sometimes (mostly big games!).

OK, a couple of points here.

1) I have 3 HDs - and I routinely install games (manually) to my second HD - not to have he game after an OS reinstall, but to keep them away from the pesky issues that the permission-protected Program Files tree in Vista and 7 (XP does not protect that folder tree at all - yet another reason why viruses and other malware were able to run amok on XP). It works - and it works well. Even if you have a single HD, if you have a good amount of space, shrink it down and make a separate partition and manually install games onto that partition (I'd recommend well over 40 GB if you game a lot). The difference is staggering - I routinely play games that most people have issues installing in Vista and 7 b/c of this very fact.

2) Using the information I just listed above, you can see why unzipping an app into the PF tree would not work in Vista and 7 - again, b/c of the permissions. Older programs written for 2000 and XP want to have write access to the folder that they are installed in - a big no no in the world of NT 6 (aka Vista and 7). This obviously causes issues, and installers today are written with elevation modules to gain the accepted level of permissions to be able to not only write to the PF tree but also the Windows system folders, the registry, etc - all these are now considered protected areas of the system, and thus need special permissions to be able to perform even the simplest functions in them - writing, editing, etc.

Finally, 3) Installers will also copy pre-requisite files to appropriate locations (uninstaller files to system folders, DLLs to system folders, initialization files to your settings folder (usually now located under your user tree), etc. If you have one big ZIP, again, you need write access to where you want to put it as well as having to make sure that your DLL in the ZIP is not older than one you already have on your HD (something the installer does for you when installing), etc. One very big problem would be if your app is hard coded to read a .DLL from a default location - if you unzip it to a completely different folder, then it doesn't know where to look. If it is accessed using relative paths, then unless your app polls the system to make sure another version is not already loaded into memory, it can make for a massive headache as you have 2 different versions of the DLL being used on the same system simultaneously.

There are other issues as well, but some of the posts after yours also deal with them so I'll answer them there....

Because there is much more going on than simply copying files. The installer sets up folders and files, registry entries, configuration files, environment variables and shortcuts. See here for a detailed article on what installers do.

Good link

Good reply swarf. Except that I think the OP's point is that, why is it necessary? He has a valid question. PC programmers are lazy, or more specifically, spoiled. An effective and even highly complex program can be written in assembler, for example, as one self-contained executable, negating the need to create all of the other dependencies you describe. Beyond a simple .ini, the vast majority of programs shouldn't need installers.

Wrong. a simply .ini would have to be saved in the users tree in order to allow for custom settings on a per user basis - if it is saved with the App itself, then you either have to edit (append) every single users' settings into that file - on a workstation that has 50 users, with 2000 lines of settings strings per user, that would be a large file that needs to be loaded every time. If you have a ZIP file with an app that reads the .ini from the local (relative path) directory that it is installed in, you lose the ability to easily allow for multiple user configurations.

I still think they are necessary considering the amount of scripted items they have to perform. Imagine asking the user to extract the files, configure inis, edit the registry, etc.

They simplify the whole process so that even the most novice of users can install an important program in order to get what they want done.

You may call an ini file simple, but to a computer novice they wouldnt have a clue.

Extraction is actually relatively easy, seeing as XP+ supports ZIP file viewing....

^^ Point taken but not initially refuted, either. :)

With the exception of file associations (a pesky throw-back to the 90's if you ask me), there's not much more a program should need to do to alter a systems' already inherent functionality. DLL's can be placed in the program's folder (negating the need for system32/ write access altogether), not to mention any other dependencies. The whole concept of AppData and the MyDocuments folder that preceeded it was included purely for downward compatibility issues with legacy software. This is the same mid-90's coding that, to this day, *requires* a swapfile or a TMP folder. The point being, it's legacy nonsense and entirely unnecessary.

Steve Gibson at GRC is the best example I can come up with, for the moment, if you consider that his applications of exceedingly powerful, yet none (that I am aware of) require any form of installation. Just think how PCs would run if everything were written in pure assembler? Wow.

applications that are modeled as Steve's are, using his "Small is beautiful" credo, if you will, are great - but when you think of the fact that the entire OS that you are using is object oriented, modular, and does not load all at once, but loads modules as need, then you begin to realize that it is not *laziness* of coders but rather following the same model. If I need to, say, edit a document, I won't want to run an app that takes 1.4 GB of RAM but can, in one single executable, edit a document, create spreadsheets, check my mail, share files through office interconnectivity, preform desktop publishing, query a database, or even *shudder* draw diagrams. It is all about object oriented programming, and the entire OS is modeled on VB - all these .DLLs, other resource files, etc. are very very different from C programs.

Granted, we could have several large 500 MB programs that can be called from each as needed, but you lose extensibility. Show me one of Gibson's programs that we, as a layman, can extend - add format support, add functions to, etc. The model now is such that it allows extensibility (even if limited) and my conspiracy theory is that this was set up this way as a direct retaliation aimed at Apple for the proprietary nature.

Finally, there is a lot more going on these days with our modern OSs (Visa and 7) then there was back then, and now is the time for a greater need for installers than ever in the past.

An important reason could also be shared libraries, aka DLL's.

In DOS, every program was an island on it's own, using it's own files.
Because of that there could be a large number of duplicate files on the system.

With programs getting bigger and bigger and the need for interoperability, shared libraries were introduced.

Almost any program nowadays uses windows libraries and common files to make use of pieces of the OS.

To make this work, a registry is necessary to tell each program where parts of the OS can be found, and tell the OS where parts of the program are, how the program is set, and what it's properties are.

I think that's the main reason you cannot just dump a program in a folder and let it run. (some little proggies do without registry, but they carry their own dll's)

Greetz

Another good way of putting it; however, there remains the inherent problems I noted above for all but the smallest of programs, as squon also points out.
 

My Computers

System One System Two

  • Computer type
    PC/Desktop
    Computer Manufacturer/Model Number
    The Beast Model A (homebrew)
    OS
    Windows 11 21H2 Current build
    CPU
    AMD Ryzen 9 3950X
    Motherboard
    MSI MEG X570 GODLIKE
    Memory
    4 * 32 GB - Corsair Vengeance 3600 MHz
    Graphics Card(s)
    EVGA GeForce RTX 3080 Ti XC3 ULTRA GAMING (12G-P5-3955-KR)
    Sound Card
    Realtek® ALC1220 Codec
    Monitor(s) Displays
    2x Eve Spectrum ES07D03 4K Gaming Monitor (Matte) | Eve Spec
    Screen Resolution
    3x 3840 x 2160
    Hard Drives
    3x Samsung 980 Pro NVMe PCIe 4 M.2 2 TB SSD (MZ-V8P2T0B/AM) } 3x Sabrent Rocket NVMe 4.0 1 TB SSD
    PSU
    PC Power & Cooling’s Silencer Series 1050 Watt, 80 Plus Plat
    Case
    Fractal Design Define 7 XL Dark ATX Full Tower Case
    Cooling
    SteelSeries Apex Pro Wired Gaming Keyboard
    Keyboard
    SteelSeries Apex Pro
    Mouse
    Logitech MX Master 3S | MX Master 3 for business
    Internet Speed
    AT&T LightSpeed Gigabit Duplex Ftth
    Antivirus
    Windows Defender + MB 3
    Browser
    Nightly (default) + Firefox (stable),Chrome, Edge
  • Computer type
    PC/Desktop
    System Manufacturer/Model Number
    Dell Latitude E5470
    OS
    ChromeOS Flex Dev Channel (current)
    CPU
    Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz, 2501 Mhz, 2 Core(s), 4 Logical Processor(s)
    Motherboard
    Dell
    Memory
    16 GB
    Graphics Card(s)
    Intel(R) HD Graphics 520
    Sound Card
    Intel(R) HD Graphics 520 + RealTek Audio
    Monitor(s) Displays
    Dell laptop display 15"
    Screen Resolution
    1920 * 1080
    Hard Drives
    Toshiba 128GB M.2 22300 drive
    INTEL Cherryville 520 Series SSDSC2CW180A 180 GB SATA III SSD
    PSU
    Dell
    Case
    Dell
    Cooling
    Dell
    Keyboard
    Dell
    Mouse
    Logitech MX Master 3S (shared w. Sys 1) | Dell TouchPad
    Internet Speed
    AT&T LightSpeed Gigabit Duplex Ftth
I think the real answer is that ultimately we really don't need installers for much else than file associations, and that is why there are bazillions of portable apps available, even for very complex programs (for example Adobe Premiere Pro CS4 and After Effects.) Interestingly, almost none of them work in Windows 7! For this reason I have started using XP and Vista more often because I can carry my setting in the portable apps from machine to machine.
 

My Computer

Computer Manufacturer/Model Number
HP m9200t
OS
Windows XP x64
CPU
Intel Core 2 Quad Q9450 2.67 GHz
Motherboard
Asus IPIBL-LB
Memory
8GB DDR2
Graphics Card(s)
NVIDIA GeForce 8800 GT
Sound Card
Integrated Audio
Screen Resolution
1920x1080
OK, a couple of points here.

Using the information I just listed above, you can see why unzipping an app into the PF tree would not work in Vista and 7

Just for the record, it usually works just fine in Vista for me, but not in 7. Anyone know why?
 

My Computer

Computer Manufacturer/Model Number
HP m9200t
OS
Windows XP x64
CPU
Intel Core 2 Quad Q9450 2.67 GHz
Motherboard
Asus IPIBL-LB
Memory
8GB DDR2
Graphics Card(s)
NVIDIA GeForce 8800 GT
Sound Card
Integrated Audio
Screen Resolution
1920x1080
Unzipping or copying a file to Program Files in Vista/Win7 I can see would cause a problem, but that's because those OS have it protected like you said. If you copy or extract a program, let's say a game into C:\Games\GameName, then it has the permissions of the person who made the folder and should work.

You don't need to go quite as far as making a whole separate partition to get this to work, just making a \Games\ folder or something on your hard drive that is not in \Program Files\ should work.

I don't really see the point in having a separate partition to install things to if you're not planning on reinstalling it in the future when you reload your OS. If you have data you're storing, like MP3s, documents, pictures, videos, then it makes sense. But why install apps on another partition if they'll just need to be reinstalled anyway? Might as well put them on the main partition in another folder.

That makes me wonder a little is this: I copied a game from one PC to another, even a different version of Windows to another, and it works without any problems. A large game, Aion, if anyone's familiar with it. I'm sure it had registry entries, dlls, and anything else that normal installers would have placed. But even so, after copying it from a WinXP 32 bit machine over to a Win 7 64 bit machine, it runs flawlessly.

So my point is why have all the registry entries, dlls, and stuff like that if they aren't needed? Is it because each program would then be huge, like Johngalt suggested? Aion is huge. Almost 7gb I think.

What I'm more interested in though is I'm sure it made registry files and had dll shares and things like that going on but apparently it doesn't need them to function. I wonder how many other programs are like that? Why make the entries at all if they end up not being needed? Simply for file associations, and so the program can be cleanly uninstalled?

However! Would it need to be cleanly uninstalled if it wasn't installed with an installer in the first place? :D
 

My Computer

OS
Windows 7 Ultimate
CPU
AMD Athlon Black Edition 5000+ 2.6Ghz
Motherboard
MSI K9a Platinum
Memory
G.Skill 4gb
Graphics Card(s)
Nvidia 8800GT 320mb
Sound Card
SoundBlaster Audigy
Monitor(s) Displays
Acer 22" Widscreen LCD
Screen Resolution
1680x1050
Hard Drives
Two Western Digial 320gb, 5400rpm
PSU
600 watt - forgot the brand!
Keyboard
Microsoft Razer Reclusa
Mouse
Razer Diamondback 3g Green
Internet Speed
10mbps RoadRunner
don't know if this has been posted already, only just caught the thread. i think the main idea of installers and registry entries is to tie the particular program to the user who has bought the rights to use it, play it ow whatever by means of a code/serial number/product key. also, it is able to 'speak' to the system it's being installed on as it were to be able to detect what system it was meant to be installed on so it gets 'setup' and configured properly depending on it's hardware and environment variables. i hope this suffices to answer the OP's question.
 

My Computer

OS
Windows 7 Ultimate 64Bit
CPU
AMD Athlon x4 650 3Ghz
Motherboard
ASUS
Memory
4gb
Graphics Card(s)
ATI Radeon 3000 series Onboard
Back
Top