48

I've recently been trying to 'install' stuff a lot less on my Windows machine (I hate installers - I need to know where programs put stuff...), choosing to use portable or standalone versions of applications instead.

I put them all in a 'Programs' dir on a drive separate from my Windows partition, so whenever I reinstall, I have all my applications available with minimal effort and on the plus side, I get a nice clean setup.

Applications like Office and Creative Suite still require me to go through a horribly long installation process where a thousand random libraries and tools are thrown across my system.

Why do Windows apps still need installing? Why can't we just drag Photoshop to a folder à la OSX and just have it work? Does anyone else focus on portable apps, or am I just being OCD about the whole thing?

5
  • 3
    Answers to the question do explain the inquisitive "why". However, the exclamatory "but why" still remains (as in "but why can't we all just get along").
    – dbkk101
    Jul 15, 2009 at 12:58
  • 2
    i hate installers, too. nothing wrong with you
    – Nick
    Mar 27, 2010 at 11:50
  • 2
    This looks like the wrong question. If you want to use portable apps, the correct question would seem to be: "Which programs are portable?". For instance, you may think that you need MS Word, when what you really need is a program that can read and write .doc data files. Open Office will do that ... and, unlike MS Word, it's available in a portable format ... I've got a copy of it (and Abiword) on a flash drive that spends all its time plugged into my laptop. There are quite a few portable apps. portablelinuxapps.org offers 184 for Linux, while portableapps.com/apps offers 232 +
    – user76299
    Apr 13, 2011 at 12:00
  • The rest of Bill's comment: ...a menuing app for Windows [arguably, both include a good selection of trivial utilities]). Choose the ones you want and jettison the non-portable programs you can do without ... most of my apps live on a USB key. This, at the very least, will simplify the spaghetti soup of files on your HD.
    – studiohack
    Apr 14, 2011 at 5:17
  • Also it seems to me that the best tools are portable. I might be biased. Dec 11, 2015 at 14:34

12 Answers 12

36

Installers are a result of years of evolution and a little bit of (simplified) history helps understand why they do what they do..

The windows 3.1 model suggested config.ini style configuration files per application with supporting shared libaries going into system folders to prevent duplication and wasted disk space.

Windows 95 introduced the registry allowing a central store for application configuration replacing many configuration files. More importantly, windows configuration was stored in the same place.

The registry became bloated due to applications not cleaning up after themselves. DLL hell happened as a result of multiple versions of the same shared libraries overwriting each other.

.NET introduced the concept of app.config (almost ini files mark 2, this time with a little more structure saving developers wasting time writing manual parsers). The GAC was introduced to version shared assemblies in an attempt to prevent DLL Hell.

In Windows XP and moreso in Vista, Microsoft attempted to define the userspace as a place to store user data and configuration files in a single standard location to allow for roamning profiles and easy migration (just copy your profile) with the applications installed in Program Files.

So I guess, the reason is that "applications in windows are designed to live in one place, their shared dependencies in another, and the user specific data in another", which pretty much works against the concept of xcopying a single location.

.. and that's before you have to configure user accounts, and setup and ensure security permissions, and download updates, and install windows services...

xcopy is the "simple case" and certainly isn't a best fit for everything.

5
  • 1
    Nice, simple explanation!
    – alex
    Sep 9, 2009 at 13:09
  • 7
    Another big reason for installers (especially like Office) is that no user should be able to affect another user on the same system if they aren't an administrator. With Office 2007 weighing in around 500MB, if a user wants to use it, they have to have their own local copy. That'd be 1.5GB for 3 users on the same system! Google Chrome installs to your local user directory, so if you have 10 users that all have Chrome, that's 10 different versions that have to be updated and maintained. Obviously there are pros and cons to a per user install versus a central deployment.
    – Joshua
    Sep 11, 2009 at 23:25
  • 1
    Some applications, like Photoshop (at least pre-CS4), can simply be copied and when started - will create the user configuration stores and files needed. Also most .NET applications are portable by design but, endusers expect next next finish installers - many who don't even know what a file system is. Oct 18, 2010 at 14:00
  • It can also be noted that even though applications are meant to divide settings/libraries/specifics in different places, it is not a well spread custom. I very often find settings for different applications stored in files in their program directories, and very very often libraries that could be shared are linked statically in the program directory. Since there are no real benefits of doing things one way or the other for the programmers, the incentive to adhere to the rules are weak and wild west application development occurs :-) . Also, I guess tradition is strong. Apr 13, 2011 at 12:55
  • The GAC is just the second coming of DLL hell. Nice concept, but in real life you end up with confusion as different executables bind with different versions of the same file, and some versions of those files may have security flaws. It's an almighty mess to deal with if you need a secure environment. Now you actually have to patch different versions of the same file to patch the same security hole. Hurray! It should be noted that policies and mandatory redirects can help, but that's like saying a band aid helps against open wounds. Jun 13, 2011 at 14:08
13

XCOPY deployment was announced by Microsoft as the way of the future a couple years ago. Still nothing :)

Meantime, you might be interested in PortableApps.com platform.

10

Simple and blunt answer: it's simply a question of who has control. Most software nowadays is designed by corporate giants for the corporate or institutional environment where users are told what to do instead of telling their computers what to do for them.

Your question is extremely important because it raises a fundamental question about individual rights and freedoms that are being eroded more and more, not by tyrants like in societies of old, but by corporate greed and the need of the few to control the many.

As a matter of fact, we seem to have forgotten that the exact same people who used to decry the tyranny of giants such as IBM have become the IBMs of this day and age... Just look closely at the business practices of Microsoft, Apple and Adobe to name a few and tell me with a straight face that with their restrictive licenses are more benign than IBM's business practices were, the same IBM who, by their openness, actually led the path to the personal computing revolution...

I have been using many self contained, portable apps over the years and without exception they have proven to be the most effective, the fastest and the smallest in terms of footprint and resources and last but not least, not only are they superior to their bloatware counterparts, but most of the time, they are free as well.

It's high time for a second personal computer revolution. Enhancing portability by reducing bloat and clarifying where settings are stored, in one distinct folder on a distinct physical location on a tangible, physical medium, is one step in the right direction.

8

Great question, I asked a related question on Stack Overflow a while ago.

The answer often seems to be "because that's how we've done it in the past". Sorry but that doesn't wash with me.

A few others have said the main reason is due to the registry. If you are talking about a device driver or some other COM component etc, then yes this may be necessary, but not for GUI applications such as Word processors or spreadsheets.

It's quite possible to write an application that either checks on start-up for required registry settings, and prompts the user for them / uses defaults. Or, as many protable apps currently do, jst let the user know that OS integration is currently limited because you are running in portable mode.

Installers often also have a lot of "knowledge" about how the application works. Then when the application changes, you often have to update the installer too. This is a classic cause of bugs/problems I've seen in my time programming.

It's the one size fit's all approach.

5

A combination of the registry and per user storage. The registry is a critical piece, especially if your application is COM based (which requires registering, which happens in the registry). Per user storage (of configuration etc) is also an important component. The only good way to do this is to store it in some specially designed directories (see Isolated Storage).

1
  • Exactly. How could the OS find the EXE or DLL to load without a fixed location? "Set oExcelApp = CreateObject("EXCEL.APPLICATION")" needs to work somehow.
    – Zan Lynx
    Mar 11, 2011 at 23:28
4

Mostly because of the windows registry - even though your programs are in a certain directory, settings are often stored in the registry.

It can also be because the program puts files in other directories on your computer other than the install directory (system32 for example)

3

The .Net Framework is the platform to enable this type of functionality, and mostly installers are just used because this is what normal users are used to. The same way Mac users are used to copying files into the Applications folder.

Majority of installers simply expand files into the Program Files folder and creates a shortcut. It's more a case of what users know, and often it is just to simpler to keep the process the same even if the application is portable.

3

One big advantage to installers over the Xcopy/portable installation type is self-repair.

An app that uses the Windows Installer system properly will have all sorts of info about it saved in the Windows Installer database on your machine, as well as quite often a cache of important parts of the setup files.

If the app breaks for some reason (something else deletes/replaces a file, registry gets corrupted, disk problems, user deletes shortcut etc) then if its an "advertised shortcut" the Installer actually checks key files and keys every time it starts up and replaces if they're not present, or you can go into Add/Remove Programs and click Repair on the app.

1
  • Why is the only thing I can think about while reading this the Adobe Reader desktop icon? That one is so insanely self-repairing it boggles one's mind ^^ Oct 18, 2010 at 14:03
2

I think it's partly to do with the large amounts of cruft windows apps need. For example, Registry keys, User data (/Users//AppData). Perhaps OSX just handles this better/differently.

Then again it's not impossible to create apps that you can just extract from an archive - I'm always happy when this is the case.

2

Some programs require that the install location be in the registry, others may have their locations hard-coded into the program (this was the case for perl.exe).

Basically the main reason is programmers who took the easy way out, and hard-coded something into the programs, either registry keys, or actual hard-coded paths.

2

Many Windows applications must make use of system environments or services, such as SQL Server, IIS, WMI, security domains, Active Directory, and many others. A typical user may have no idea how to configure these, or may not even have access to them.

Applications like Microsoft Office are not single files; they contains dozens of files, executables, utilities, services, templates, plug-ins, drivers, and so on. When you install an application you can't just overwrite everything the new app uses, it has to fit in with what's already there. Windows installers do more than just copy files, they can query the system environment, run scripts and install services, and set up the machine as if they were an administrator.

dbkk101 asks why Windows apps "can't all just get along". They can, that is what installers are for.

2

Granted with some programs, installation is silly but theres a lot more than just "dragging a file into programs directory".

At the very least, a decent installer with decompress the installation file and set up the appropriate shortcuts and make it easy to remove the program when no longer wanted. I thnk the decompression and copy is probably what takes the longest.

Then there are shared files -- this is especially true in the Linux world though not so much in Windows IMO.

Most importantly, some programs need to be configured for the machine and some (I presume at least) attempt to optimize based on the machine or at least thats what adobe's dialog leads me to believe.

Also, I've never seen a reason to install on a separate partition. You tend to lose all your registry values and config settings. Plus, i actually prefer that loss cause it reduces the Windows bloat.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.