Sunday, January 23, 2011

The disappearing setup program



The setup program had its genesis in the old set-up instructions of early IBM PC applications. Software was distributed on a floppy disk (a true floppy disk, the kind you could bend and flex), and these early applications had no setup program. Instead, you created a directory on your hard disk, copied all of the files to the new directory, and ran the program.

Then a step was added: add the directory to your PATH variable.

Then the process changed again: instead of copying the files, you unzipped them.

At this point, developers were creating batch files to perform these steps, as a convenience for their customers (and as a way to reduce support calls).

With the introduction of Windows, installation sequences become more complex (especially so with the introduction of the Windows Registry) and Microsoft set the bar with a setup program. Vendors such as InstallShield and Wyse provided setup-builders which allowed people to specify files and create fully-functional and professional-looking setup programs.

Microsoft raised the bar again with its MSI packaging. This moved the install engine into Windows yet retained flexibility for the application developers.

While all of this was happening for Windows, similar things were happening for MacIntosh applications and Linux applications.

Yet the rising visibility of the install program has ceased. Now, the setup program has all but disappeared (except in Windows).

Most Linux distributions use package managers. These package managers simplify the installation of software to a level equivalent to an automat. The user picks from a list of available packages and clicks on the "install" button. (You can also remove software this way, too.) The package manager resolves dependencies, adding required packages automatically. In the Linux and open source world, most packages are free, so installing them incurs no additional cost.

Apple has for along time had a setup operation that was simply a "drag and drop" from distribution media to your local hard disk. For iOS, they leverage iTunes to allow you to buy (some are free) and install apps, and dragging is no longer needed.

For Linux and iOS, the setup program has become invisible. It's there, but you the user (or system administrator) don't see it. The setup program has been equipped with an automatic transmission, so the clutch pedal is no longer needed. (There are a few programs that need to be configured after installation. These tend to be infrastructure programs, things like the Apache web server, or Samba, or and NTP client. Yet many of those infrastructure configurations tend to be limited to simple changes in configuration files.)

Microsoft has made improvements over time. The concept of a single setup engine and installable packages is a good one. But they have been surpassed by Linux and Apple, with package managers that make installation of applications invisible.


No comments: