When a program asks you a question and then gets upset if you answer it


JeffDav's story of a program that didn't like it when he told it where to install reminded me of another program that we dealt with during Windows 95 development.

This was a big-name program developed by one of the biggest-of-the-big name software companies. Let's give this program the imaginary name "LitWare". Its setup program asked you where you wanted the program to be installed, and it suggested "C:\LITWARE". If you accepted the default, then everything proceeded normally.

However, if you changed the default to anything else, the setup program ran to completion, but the program itself wouldn't run.

Because the program contained the hard-coded path "C:\LITWARE" and insisted that it find its support files in that directory.

At least Jeff's program realized that it was about to be installed into a directory where it would fail to work!

Comments (33)
  1. Anonymous says:

    For one reason or another, some of Microsoft’s applications either didn’t ask for directory at all or install in some "hardcoded" directory even after user explicitly selects a different location.

  2. Anonymous says:

    Wow, remove the punctuation in the installation path you provided and suddenly this whole post takes on an entirely different direction…I did a double take when it showed up in NewsGator this morning…

  3. Anonymous says:

    What’s with fictional program names? If it a true story about a real program from a real company, why not just say the name?

  4. Anonymous says:

    <i>Wow, remove the punctuation in the installation path you provided and suddenly this whole post takes on an entirely different direction…I did a double take when it showed up in NewsGator this morning… </i>

    I suppose that would be more of a hard-core path then? ;)

  5. Anonymous says:

    Kind of reminds me how the latest version of Java and some of its dev tools (like JBuilder) refuse to work if you install them in a path containing spaces.

    Nice work guys, now I have to shove your crappy software in C:…

  6. Anonymous says:

    Nothing like an installation that fails but won’t tell you why. I’ve spent more than a year trying to get the .NET Framework to install on vanilla Windows boxen. Always gets to 99%, then says "Rolling back…" and uninstalls. No explanation whatsoevery. It’s becoming more irritating as more software and devices are requiring .NET.

  7. Anonymous says:

    I used to have this problem when I had a laptop that assigns the letter ‘E:’ to the hard drive and assigns ‘C:’ to the card reader. Even a nice application like Adobe Photoshop CS had quirks during the installation.

  8. Anonymous says:

    I hate lazy developers.

  9. Anonymous says:

    Hey it reminds me of an OS that forces you to install everything to the idiotically named "Program Files". Who came up with that? Do you know how much grief C:Progra~1 has caused? Why not C:Apps or C:Programs or anything except for a LFN name on an OS that barely supported LFNs.

    Yes, it’s lame it is to hard-code the application path. But have you tried to install MS apps anywhere other than "Program Files"? I have and it sucks.

  10. Anonymous says:

    Oooh … sounds like my favorite Database Management System!

  11. Anonymous says:

    The nice thing about "Program Files" is that it forces most developers to code support for path names that have spaces in them.

  12. Anonymous says:

    Reminds me of a popular development tool whose licensing manager failed if you installed to the "Program Files" directory, but your "Program Files" directory was not on your C drive.

    Nothing more infuriating than when copy protection prevents you from running a legally aquired product.

  13. Anonymous says:

    I was building an install program that was also hard coded to work only when installed in a particular path (the drive could be configured, the path could not). The folks insisted I provide a standard install program that allowed users to select the install folder. I reminded them that the program would not run unless in a particular folder. They countered they wanted to give the user freedom to install where they wish. I countered they were giving them only the freedom to fail. I won, and created an install program with a drop down list of drives and it was installed in the folder that the rest of the code (moronically) required.

  14. Anonymous says:

    Ah, one of my pet peeves. Programs installing directly in c:. Another thing nearly as irritating is programs insisting on installing themselves in c:Program Files, not realizing that this path may be different on international versions of Windows. Especially if these programs themselves are translated.

    And coming back to one of the main themes of this blog, I recently had to fix a C++ program that (amongst other headache-inducing idiosyncrasies) used something like 50 lines of code to determine the proper CSIDL_PROGRAM_FILES directory by reading in some environment variable (iirc not PROGRAMFILES but PATH), and parsing it, looking for fixed values of either the German and English versions etc.

    Using SHGetFolderPath() would have reduced the code by about 40 lines plus it would have worked for all versions and not only the English and the German ones.

    Alas, I was only supposed to fix one specific bug and change nothing else. What a shame.

  15. Anonymous says:

    Kennedy

    I don’t think it is not necessary to disclose the name of the "LITWARE" company. I have also seen this sort of problems with applications. It does happen quite a bit.

    Sometimes it has alot to due with the point Raymond makes with hardcoded pathnames. Sometimes its simply an app compat issue with the app not really being friendly with long file names.

    paul

  16. Anonymous says:

    My favorite question one .net asks when an add crashes.

    It asked this:

    An add-in has thrown an exception while sinking no ‘BeforeOpening’

    Would you like to terminate the applcation?

    [OK] [Help]

    That’s right, the two choices are "OK" and "Help." It’s a yes/no question with no "No" answer.

  17. Anonymous says:

    This was a big-name program developed by one

    > of the biggest-of-the-big name software

    > companies.

    It sure was. Half-way through JeffDav’s article, he switches from calling it a nameless third-party app to calling it a nameless Microsoft app.

    Regarding applications, drivers, etc. which insist on putting stuff on the C drive, this is a good reason to avoid installing any OS on the C drive at all. You need ntloader, ntdetect.com, boot.ini, and sometimes a renamed disk controller driver on the C drive. If a "Windows" or "Program Files" directory suddenly appears on the C drive then you know you’ve installed a defective program (and in this case usually it really is a third party). Also when it appears, you can be glad you didn’t really have another Windows installation on the C drive to get smashed by it.

  18. Anonymous says:

    JeffDav told two stories. The first (the one I was referring to) was about a nameless non-Microsoft program. The second was about a nameless Microsoft program. That’s why it changes halfway through – halfway through he changed stories. (I didn’t realize people would be confused by this, since he was describing two different ways setup programs mess up.)

  19. Anonymous says:

    My two favorite installer annoyances are where a company prompts you with c:program filesfoo but then creates c:program filesfoobar, so you should of installed it to c:program files instead (or ideally, they should have gotten a clue). And the other one is where you can enter the path, but if it doesn’t exist, it bitches instead of simply creating whatever folders necessary. They expect you to click on the standard browse for folders dialog box and click on the create folder button in that first.

  20. Anonymous says:

    asdf: They always seem to ask "are you sure you want to create the folder" AND "are you sure you want to install in an existing folder". I don’t get it; what I’m sure of is that I’d like it to shut up, and only tell me if I’m installing into a folder other than where it was previously installed.

    My other pet peeve being that once you install with custom options and later upgrade, and try to use typical, not only will it always forget which options you chose, it’ll install into a completely new default folder. Isn’t typical supposed to be quick and seamless transition, not change everything back to defaults? I have custom for that.

    And that’s my two setup pet peeves for the day. =D

  21. Anonymous says:

    You know what annoys me? Installations that decide they will extract their temporary files to C:, them moan when it comes to installing itself properly to C: that there’s not enough disk space.

    7gb clearly isn’t enough for windows these days.

  22. Anonymous says:

    It is only in windose "operating system" you choose install path. All other operating systems have it predefined once and for all. And it’s perfectly ok to demand config file(s) to be in /etc/<whatever>. And it’s also perfectly ok for installer to be completely silent like "rpm -i <whatever>". It either succed or fail.

    So, back to windows world: program files should be in "C:Program Files". And it’s perfectly ok to hard code it everywhere, including installer.

  23. Anonymous says:

    If I remember correctly, Visual Sourcesafe scans all local harddrives (atleast c:) for old installations. If the disk is large, slow & has a million files, it will take forever.

    And no, i don’t want to install to C:COPY_OF_ANOTHER_COMPUTERS_CDRIVEMY_OLD_PROGRAM_FILES_DIR_WHICH_ISNT_USED_ANY_MOREVSS…

  24. Anonymous says:

    Having a C: isn’t necessary. This happened to me when I installed on a SATA-disk and had a usb card-reader (whose drives became C: -> F:). G: and H: were IDE and I: was the SATA-drive with boot-files, Program Files & Windows. I suspect many apps doesn’t support this setup, reinstalled without card-reader and ide-drives attached.

  25. Anonymous says:

    xlink: There are actually operating systems other than Windows and Unix (and clones thereof). At least some of them (MacOS, AmigaOS) don’t have a convention of using compiled-in paths, and I suspect this is actually the norm. I know that compiled-in paths work reasonably well on Unix since the administrator can use mount points and symbolic links to create a fairly arbitrary mapping between paths and physical storage. Windows only got these features recently and since most Windows administrators – and that includes a lot of non-technical people – don’t know how to use them, it’s reasonable to expect applications to be more flexible.

  26. Anonymous says:

    Hardcoding is evil even on Unix.

    True, the administrator can create symlinks to make the program work. But that works only when you are the administrator. Sometimes you want to install the program in your home directory. You can’t create a symlink in /etc then.

  27. Anonymous says:

    Other things about installers that bother me is when they ask (or don’t have a check) to see answers to obvious questions.

    What I mean is when a game either asks you rather forcefully to install some older version of DirectX or shows a screen telling you that your version is more recent, but are you sure you don’t wish to install an older version. Same thing happens with older versions of Acrobat Reader and whatnot – I had some crappy thing for a PDF of a math textbook that didn’t even check that I had Acrobat Reader installed. And so it wanted to install Reader 4 (I had 5.0.5 or something) with a "You must install Adobe Acrobat Reader to use this program" dialogue box, but thankfully I was able to tell it off.

    I’m also of the opinion that if a program uses its own registry key section, perhaps it should be able to remove its own stuff as well… *sigh*

    Really, I hope that at some point in time, installers will stop asking stupid questions (such as installing older stuff) and will just bypass those pages instead.

    I put my hope in NSIS and similar products. (NSIS I have been quite impressed with so far.)

  28. Anonymous says:

    There are lots of apps, MS and otherwise, that nicely ask you where you want the program to be installed — and they honor your answer — but they also install stuff into C:Program FilesCommon FilesCompany NameProgram Name without asking you where you want the common files that are part of the program.

    I seem to remember more than one application that installed most of itself into the D:Program Files directory that I wanted it to, and the rest of itself went into C:Program FilesCommon FilesCompany Name\Program Name.

    Is this the way this is supposed to work?

    Also, while I’m ranting, I hate seeing C:Program FilesCompany NameProgam Name as the default anyway, especially with programs whose company name is not well-known (and so if I’m looking through Program Files to review what’s there, I see some unfamiliar company names rather than familiar program names). And then of course, programs get bought and sold to various companies, which makes things more complicated. Do they keep the old company name as a default when you install a new version?

    I know that using Company Name as part of the path for non-MS programs is a standard, but I don’t have to like it. I just change the path to C:Program FilesProgram Name to keep my own sanity.

    David

    P.S. I hope those backslashes come out OK in the post.

  29. Anonymous says:

    Another mini-rant. I installed a new program just recently for someone onto a brand-new computer, and it allowed the user to install third-party TeX compilers (or whatever they are called). It wanted to install itself into C:Something.

    I called my mom, who is an expert in this program and writes most of its user manuals, for guidance. She said some of the third-party TeX compilers that are called by this program won’t run from any path that has spaces. I told her that, while I would honor the program’s wishes and install directly into C:, I didn’t have much respect for any program that can’t handle long path names. After all, they have only been around for about 10 years.

  30. Anonymous says:

    Clitware… lol.

  31. Anonymous says:

    That reminds my recent attempt to install VS2005: minimum set of components for VC++ installs and then with error message it rolls back completely. To install it I had to choose one or more extra components, they fail but the first one installs fine.

  32. Anonymous says:

    Mike, you are aware that VS2005 is in beta and that it wasnt’ recommended to run less than the standard configureation.

  33. Anonymous says:

    Like windows setup requiring storage drivers to be inserted into the A: drive?

Comments are closed.