35

This is the inverse to "Why don't developers make installation wizards on linux?", which is interesting, but made me think "Automatic installation is the natural way. Why do they use wizards?".
So here is the inverse question:

I'm sure it's not about laziness, or anything like that, but I fail to understand why developers, of even mainly consumer facing apps, don't make a fully automatic sort of installation where you are not bothered at all. The same apps usually have automatic installation on Linux, so why not Windows and Mac OS?

Is there any technical reason for this trend, or is it just convention?

Malachi
  • 608
  • 5
  • 18
Volker Siegel
  • 491
  • 4
  • 12
  • 6
    MacOs is also automatic (almost) - you normally only drag the icon to "Applications" folder. I guess in windows it doesn't work because of some weird registry things – Lovis Sep 21 '14 at 18:10
  • 3
    "asked the wrong way around" is really an opinion. I don't think that it's fair to fragment the answers to that question with this inverse because you don't like how it was asked (and a bit pedantic _imo_). Any answer that ends up here will simply be the inverse of a valid answer to the other. I feel the appropriate response if you feel the question is backwards is to add your own _answer_ that explains why you feel that way, and then answer the question from that viewpoint. – Selali Adobor Sep 21 '14 at 18:13
  • 1
    Oh, it was not about how it was asked, but really that I am interested in the answers to the oposite question, which are probably not inverse, but about totally different things. When I would add an answer to the original, I could only guess about what will be answered here. The "asked the wrong way around" was trying to be funny; maybe it should be clear first... – Volker Siegel Sep 21 '14 at 18:33
  • If you feel they're really _totally different things_ it's fine I guess. But I don't, and you can already see that all these answers would have worked for the other question (you don't even have to invert them, they're really just answering the same question). – Selali Adobor Sep 21 '14 at 18:53
  • @AssortedTrailmix I edited it trying to be clear instead of funny. Does it make sense like this? Of course, I just turned the original question around. But it works well both ways. – Volker Siegel Sep 21 '14 at 18:54
  • @AssortedTrailmix Some technical answers could be "just inverse", but i think there are some psychological and UI desigh aspects in the background, where the sides are mainly unrelated. – Volker Siegel Sep 21 '14 at 19:01
  • Well it always made sense to me, but my problem is that: _"But it works well both ways"_. It's not really asking a new question, it's fragmenting answers between two questions. In fact, the only difference I see is that your version's merit is much easier to debate. What is "automatic installation"? Headless installation is provided by many installers (even over a network). And isn't simply having to press Next automatic? (apt-get still has it's y/n). It's adding to the subjective aspect of the original, and here that lowers it's quality (opinion-wars already creeping into the original...) – Selali Adobor Sep 21 '14 at 19:04
  • But again, if you feel the question is warranted, don't let my grumbling worry you. It's my opinion that they're too similar, not a fact, and this answer has still gotten answers, so that's validation of a sort. – Selali Adobor Sep 21 '14 at 19:07
  • I think there is a separate, valid question in this direction too - but I'm not so sure now whether that is understandable from what I wrote. – Volker Siegel Sep 21 '14 at 19:17
  • Well they do: https://chocolatey.org – Esben Skov Pedersen Sep 21 '14 at 21:24
  • 2
    The windows 8 app store is an attempt to establish a centralized software repository just like most Linux distributions have. – Philipp Sep 21 '14 at 23:09
  • 10
    If they make it automatic, how can they bundle malicious adwares without avoiding court? – Raestloz Sep 22 '14 at 06:33
  • 2
    On windows the standard is MSI which does everything including walk your dog, if you give it your home address. A basic MSI installation goes "Do you want to install this?" "Doing it...", "OK, done". And you can go all the way up to picking install-on-demand features albeit that is becoming irrelevant as storage prices fall. – Ben Sep 22 '14 at 12:13
  • can we expect "why don't develop installation wizard for IOs?" and "why don't develop installation wizard for android?" questions? – BЈовић Sep 22 '14 at 14:44
  • 4
    I think the premise of this question is wrong - many Windows applications can install via a streamlined 'use standard settings' option in an installer. Providing additional options, such as where to install the program, is simply the polite thing to do. I really dislike programs that don't let me decide where on a drive they will be installed. – GrandmasterB Sep 22 '14 at 17:18
  • Note: Some programs *have* command line switches that allow automatic installation and configuration without annoying wizards. But you have to look up the manual/help, so unless you have to do repeated installations, there's no real value in it. – Karoly Horvath Sep 22 '14 at 20:46
  • @BЈовић iOS and Android does not actually allow installation wizard, only setup wizard, because the installation process is untouchable. – Raestloz Sep 23 '14 at 04:20
  • @DonL. it doesn't relate anything to registry. When installing any software you mostly select next, next, OK, next... without allowing the program to write into registry or not, except pressing yes in UAC dialog if any. If the program is allowed to write files in to system folders or write registry hives then it doesn't even need your interaction. – phuclv Sep 23 '14 at 10:37

6 Answers6

49

Informed Consent

Users should be able to decide, first of all, whether they even want the program to be installed on their computer or not. It may seem self-evident to you that people are obviously choosing to install a program, but the prime characteristic of a malicious program is that it can be installed without the computer user knowing about it.

Informed consent is made even more explicit through UAC.

License Agreement

Most modern software follows a "click-through" model for licensing; that is, the user agrees to the terms of the license during the installation process as a condition of installing the program. That users seldom read these agreements doesn't mean they're not bound by them, especially if they have clicked the checkbox labeled "I agree to these terms."

Configuring Options

Many software packages have options that allow you to change the way the software is installed in certain ways. The most trivial of these lets you decide whether or not you want an icon on the desktop, but in larger applications you can decide which features you want installed.

Installation Progress

While programs in the Windows ecosystem are getting better at being less intrusive during the installation process (e.g. registry-free installation), installation is still often a non-trivial operation. Progress bars and other visual aids give an indication that something is actually happening. The final page in the wizard tells you whether or not the installation succeeded.

Getting Started

Finally, the best software packages tell you what to do next. What are the first steps, how to get started, how to get help. Most software, when installed, leaves you with a startup icon, and that's it. Never overestimate the level of expertise of your users; as incredible as it may seem to you, there are still folks that don't know how to find and start software programs they just installed.

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
  • 1
    While these are all valid reasons, it's worthy to note in the context of the question that some of these, such as *License Agreement* and *Getting Started* could easily be replaced by in-software dialogs when the user first runs the application. – Rotem Sep 21 '14 at 18:30
  • What's the difference? – Robert Harvey Sep 21 '14 at 18:33
  • 5
    The illusion that the installation process was quick and painless. – Rotem Sep 21 '14 at 18:38
  • 6
    At the cost that the software itself is not quick and painless. An annoying installer is easier to forgive than an annoying application. – nwp Sep 21 '14 at 19:02
  • 18
    Asking somebody to agree to terms _after_ installation seems to me to be a problematic way of going about things. – Eric King Sep 21 '14 at 21:42
  • 1. Users _are_ consenting when they choose to install something on Linux, even for dependencies you'll be prompted to confirm. 2. When the license normally differs from GPL, it _is_ shown to the user (e.g. JVM/JDK installation on Linux). 3. This is where Linux lacks, but it's not a problem because there is in-program configuration. 4. Progress _is_ shown to the user. And the result of installation. 5. I think this is a universal truth for _all_ platforms. – sampathsris Sep 22 '14 at 01:24
  • 7
    Your first reason "Informed Consent" is bogus. Automated installation doesn't mean silent installation without the user's even knowing they're installing it. Automated installation means that you start the installer and it takes care of the rest from there. The mere fact of starting the installer itself is already consent, if the user want to figure out what a program does before installation, then they have already long figured that out from the website where they downloaded the installer from or the package description in the package manager. – Lie Ryan Sep 22 '14 at 01:25
  • 8
    @LieRyan: Many Windows Installer programs include a "silent" switch. If a person is smart enough to know about that and use it, then yes, it is informed consent. – Robert Harvey Sep 22 '14 at 01:29
  • `registry-free installation` - why would i ever want this? How do I uninstall the application without registry entries? – Gusdor Sep 22 '14 at 07:22
  • These are all non-issues that can be and *are* addressed in package managers. Packages that do need license agreement or setup just open up a prompt when it is their turn -- but most don't and install/update happily away. – Raphael Sep 22 '14 at 11:45
  • 1
    How about adding a "GUI" section? Much of what the installer is about is exposing a GUI way to change what is configurable via the command line in Linux. – Roman Starkov Sep 22 '14 at 12:01
  • 1
    The first point doesn't belong. "Automatic" in the context of the question does NOT mean "without consent". – jcm Sep 22 '14 at 12:54
  • 2
    @jcm: Why are you guys having difficulty understanding this? Malware is installed *automatically, without consent.* [See here](http://programmers.stackexchange.com/questions/256864/why-dont-developers-make-installation-automatic-on-windows/256866?noredirect=1#comment519694_256866). – Robert Harvey Sep 22 '14 at 15:13
  • 2
    @Gusdor registry-free is a great way to install applications to a flash drive so you can run them correctly on multiple systems that are locked down. I used to do this all the time in a QA lab. A university computer lab or library is another good example. –  Sep 22 '14 at 15:55
  • 3
    Installer already offer the "just install it" option along with a 'custom' option that I *always* use. I don't need a useless search toolbar or AV program being installed with any program, no matter how unrelated they are. – gbjbaanb Sep 22 '14 at 17:12
  • @Gusdor, A program which does not use the registry will (should) know the means by which it can be uninstalled. Often this is because the entire program is contained within its installation directory, instead of spread between install dir, user dir, system dirs, etc. and the "uninstall" is merely a matter of deleting the install directory. Such programs are also convenient for installation onto portable media, so they can be used on any machine without further setup. – Brian S Sep 22 '14 at 20:48
  • I would have said something about the same as this answer. – programmingaddict Sep 22 '14 at 21:51
  • @RobertHarvey yes, but that's not what the question means by "automatically". In the context of the question "automatically" just means non-wizard style, e.g. package managers. – jcm Sep 22 '14 at 22:55
  • @EricKing you're implying anyone is reading the terms these days – Raestloz Sep 23 '14 at 04:21
  • @BrianS that sounds like a self extracting zip file, not an installation. 'Installation' should have a better definition than 'puts it on a disk'. – Gusdor Sep 23 '14 at 07:06
  • @Raestloz Yeah, I know that's not happening. :-) The point is, we have to provide the opportunity to read it at the correct time; whether the user takes advantage of it is up to them. – Eric King Sep 23 '14 at 16:13
21

From what I've seen, it really boils down to the whole "Windows experience". That is, making any action or option as visible to the user as possible.

The reason I say this is that a GUI is not necessary for installation. MSI-based installers can be silently installed in a similar fashion to Linux-based packages. The GUI is completely optional, but again is there to give the user a visual representation of what is going on in the background.

In Linux, this is easily accomplished by use of a package manager. If I want to install a package, I have to specifically request that package. For the less technically include, usually a GUI-based package manager is available for the user to install desired software.

In Windows, no such thing exists. If a user wants to install Windows-based software, they have to find and download the software separately. There is no standardized tool to assist the user in configuring and installing the software. Therefore the install GUI that comes bundled with each software is very much alike the package manager GUI in Linux. It simply exists to allow the user to configure the installation and track its progress.

There are plenty of cases where an install GUI is not necessary due to the presence of a management GUI. For example, the popular Steam platform will install any games or software available through the steam store automatically with the assistance of install scripts.

Another great example would be SCCM. System Center Configuration Manager (SCCM for short) is a software used to manage groups of computers on a network. It includes the ability to make software available for install through a GUI called Software Center. Any MSI-based installer can be made available to install at the click of a button. In the environment that I work in, we have software ranging from Adobe's Creative Suite to things such as WinZip available. All a user needs to do is search the catalog to find what's available, click install, and wait for confirmation. It is almost the exact same process as if I wanted to install something on my home computer running Linux Mint.

Thebluefish
  • 676
  • 1
  • 5
  • 11
  • 5
    "That is, making any action or option as visible to the user as possible." -- Definitely. Just like Windows will happily detail what updates it installs in the background; who would be satisfied with a simple message "Reboot to finish installing 67 updates."? – Raphael Sep 22 '14 at 11:47
  • Long before OS X's App Store or Homebrew, the installation process was still automatic. Centralized package management isn't the main driver here. – james_womack Sep 22 '14 at 21:56
7

Window use msi files, which largely work the same way as other program packages. They can be installed silently by setting a flag, but the default behaviour is that Windows present a GUI with all the configuration options defined in the package. To a normal user msi files therefore behave just like exe installers.

As a user who will often choose to change the defaults, I find that using the GUI is the easiest way to learn what options I have when installing a program, and it is convenient for changing them at the same time.

Concerning the possibility of an installer that is by default completely silent. On Windows it is customary that the user is allowed to choose the installation directory, you'd get on the wrong side of a lot of users if you didn't allow that option in a GUI. Also, users are used to see at least a minimum of dialogue when installing a program, if you show nothing they might think that the installation failed.

aaaaaaaaaaaa
  • 1,076
  • 6
  • 11
5

Developers do make installation automatic on Windows, but not all software is offered in this format. Contrary to many other answers here, Windows does have a standard and widely used "package manager" (bear with me), but it is relatively little known even among developers because it targets enterprises, not end users.

It's called SCCM and is used by every large enterprise to manage their Windows installations. In addition to being able to manage packages (push software and dependencies to client machines), it also manages updates to Windows and other installed software.

SCCM is not used even by technical users for managing their own computers. It isn't really meant to offer much of a benefit for managing a single computer; in fact it may not even work without Active Directory / non-domain-joined machines. So I wouldn't really call it a Windows package manager, even if it does manage software & update deployment.

However, my point here is that there are automatic installations on Windows, and they are widely used – by system administrators in large enterprises. If you see a product offering an .msi download, it's probably because it wants to be automatically deployable to thousands of machines via SCCM.

Disclaimer: I myself have not used SCCM, and know little about it, so I could be wrong about some subtleties above.

Roman Starkov
  • 4,469
  • 3
  • 31
  • 38
0

Disclaimer: This is largely speculation, however is based on my experiences packaging Windows applications for installation & deployment.

Its all down to what the de-facto standard for installation is on a platform. On linux the standard is to use package management tools such as apt (dpkg/Debian based) or yum (rpm/RedHat based) for installation. Once you have provided a package for deployment building a wizard is pretty much a waste of time as the vast majority of users will just use the package anyway (as its the standard).

Converely on Windows the standard is a GUI based installation. There are alternatives, however none of these alternatives are suitable as 100% replacements for an installer:

  • There are package management tools (such as Chocolatey, however none of them have reached critical mass yet - if you only provide package management based installation then many users are going to be annoyed that they need to install some other piece of software just to install your program (think of how annoying download managers are). Most package management tools are also targeted firmly at technical users, and so if your software isn't intended for that userbase then providing a package for Chocolatey is going to be a complete waste of time as nobody will use it.
  • Some software is suitable for XCopy deployment, however this only works for relatively simple software products. Its good for users who want to install to a flash drive (for example), however for everyone else its faff. As a result many projects that choose to release files for XCopy installation also provide an installer.
  • Chocolatey provides a command line snippet which downloads and runs the installation. Again, while its quick and works well for technical users, non-technical users will struggle and be put off by this installation method.

If your software is complex enough to require deployment its pretty much mandatory to provide a GUI installation as its what users expect. There are also a number of products which make building these wizards fairly easy, so a providing a GUI based installer is generally one of the lowest-effort options in terms of development time. Once you have a GUI based installer you need to evaluate the cost-benefit ratio for each of the above (remember that new featues start with minus 100 points), and for many products its simply not worth the effort to build and maintain these alternatives.

Note that installers with some sort of "silent" mode are pretty common on Windows, however this tends not to be the default mode - again as its not the standard. Most Windows users would find an installer that immediately installs itself as soon as you run it fairly disconcerting.

felixphew
  • 103
  • 1
Justin
  • 1,728
  • 10
  • 16
0

On the technical side, Windows tends towards greater integration between programs (via the registry) than Linux. That requires an official 'installation' process rather than just copy the program to your hard drive (for example, to enable context menus). Some OSs (Mac OS for example) will do some of that behind the scenes or on first run, but Windows prefers to make it an explicit part of installation.

On the non-technical side, Windows prefers the model of set it and forget it. Linux, for example, tends not to have as much set up (installation options), but often you use flags when you run a program - because you're used to doing so; or you change options once you're in a program. Windows prefers the experience of set options during a designated time (installation), and not expect a user to use command line flags or otherwise set options each time a program is run. This decreases flexibility (as you can use different flags each time), although often this is exposed for power users (options in a shortcut for example); but provides a simpler interface for most users, and allows the developer to present to users a clean interface for setting the necessary options and defaults.

Joe
  • 109
  • 4