Bugs in installers. And where are they not?
Recently on habr there was an article about a bug of the Adobe installer. This article touched me with the fact that the author, citing a bug, concludes that even such large and well-known companies as Adobe “forget, at times, about the ease of installation.” and they can "write the colossal complexity and volume of the program, but save on the dynamic determination of the installation path, the implementation of which is even possible for a student." Then it seemed to me that this is a stone in the garden of the developers of the Adobe installer. Therefore, I decided to write a return post and consider the installers, their price and a couple of bugs. I have nothing to do with Adobe.
UPD: Added a picture about the difficulties of localization))
Transferred InstallSHield 12 from one machine to another. The fact is that the activation / deactivation of InstallSHield 12 is done via the Internet, it should be noted that deactivation is done automatically. Reinstallation was delayed for a month, because they could not activate InstallShield on the new machine, they received an error that the key is already being used on another.
Correspondence with the InstallShield support lasted until an American colleague using rude vocabulary asked them to rectify the situation in our favor. During the correspondence, a beautiful brochure with pictures came in which wrote something like: problems with InstallShield transfer? Buy a new license with more flexible settings!
And who is to blame for the uninstaller to work crookedly? The developer?
Advice for this problem: you should be rude, if the situation requires it, loudly declare that the license costs a lot of money, and its benefits are zero. Or buy a new license, if conditions are satisfactory.
For brevity, I will call the program for creating installers "IDE", although this is not the best name. You can divide IDE into two types of multi-platform and native.
Multiplatform - one design for multiple platforms. These are such IDEs as InstallAnywhere, InstallBuilder, InstallShield Multiplatform, Install4j. Table 1 shows prices.
Native - one project for one platform family. Most often they are written for the Windows family. For example, InstallShield 2010, InnoSetup, InstallAware, etc. Table 2 shows the prices.
Needless to say, the free and paid versions of the IDE differ in both heaven and earth. Although this does not at all plead with the work of the developers, neither one nor the other.
From the prices we can conclude that installers are not cheap. I am sure that at times it will be more expensive to write your IDE and make an installer based on it.
Let's start with Windows.
1. for the most part (and in the case of Adobe), Windows installation programs are based on the Windows Installer (.msi), it, like any other product, has its own bugs.
2. When developing the installer, an IDE is used, like any other product, it has its own bugs.
3. the installer does the man and he will definitely leave a couple of bugs somewhere. I repent, I did it more than once ...
4. there are licenses, and this is a very important issue! Of course, not for everyone :)
A similar situation for multi-platform installers.
As you can see, not all bugs in the installers talk about the developer.
Consider, for example, a couple of InstallAnywhere 2008 bugs, as I am working with it now. I have an Enterprise version, it costs about $ 4,500 .
This is an IDE for creating Java project installers. The good news is that when developing the installer, you can use Java to its full
potential :) The figure shows an example of a standard dialog box, and there is a scroll when the text is entered into the IDE. Where can I get on a rake? If some way is dynamically inserted in the text and it is very long for the user, then such a bug can pass by the developer and testers ... Who has crooked hands? The installer developer also has some guilt ...

There are actions that are not visible to the user, they run .bat files or something like that. Naturally, the path to the .bat file must be quoted in case of spaces. The IDE insolently removes the last quotation marks when saving. You can get on the rake if the developers and testers have met paths without spaces, and the user has a treasured gap. If the previous bug was cosmetic, then the batch file definitely launches something you need. Who has crooked hands? The installer developer also has some guilt ...
There are actions that run the developer code, packed in .jar files. If there is a META-INF folder in the .jar file, the code will be ignored. Strangely enough, but this feature is described in the documentation ...
eyeofhell reminded a bug about localization difficulties. In the picture, the translation “Uninstall is completed” instead of “Uninstall completely”

A serious bug that runs from version to version in InstallAnywhere. To account for the installed software, an .xml file is used; it can be found like this: “C: \ Program Files \ Zero G Registry \ .com.zerog.registry.xml”. The fact is that writing to this registry occurs after the user clicks the “DONE” button on the last installation / uninstallation dialog, so he can safely reboot the computer, run another installer or something like that. The most annoying thing is that changing this behavior is impossible. Problems that arise in this case:
1. There is a record that the program is installed, but the path to it is empty ...
2. We get an error reading the file, the installer quietly says "Hmm, the registry file is some kind of curve, I'll make a new one" and create :)
To correct the situation several times on his machine, he deleted this file during development and testing.
Eternal question - what to do? Set as if there was nothing? And if the services are spinning, or they are and are not running, or is there conflicting features in the project? Not all files are copied to the installation directory. There is no definite answer for developers here, you need to proceed from the requirements of the project and the manual ...
Another question, why do you use an xml file in case of InstallAnywhere or SQLite in case of Adobe to store data about installed programs?
This is done in order to provide a single interface when installing on various platforms.
I'm more than sure that the problem with the Adobe product installer rests on issues related to the license, internal conflict of features and components, or something similar. And in no way connected with the professionalism of the installer developers.
UPD: Added a picture about the difficulties of localization))
From personal experience.
Transferred InstallSHield 12 from one machine to another. The fact is that the activation / deactivation of InstallSHield 12 is done via the Internet, it should be noted that deactivation is done automatically. Reinstallation was delayed for a month, because they could not activate InstallShield on the new machine, they received an error that the key is already being used on another.
Correspondence with the InstallShield support lasted until an American colleague using rude vocabulary asked them to rectify the situation in our favor. During the correspondence, a beautiful brochure with pictures came in which wrote something like: problems with InstallShield transfer? Buy a new license with more flexible settings!
And who is to blame for the uninstaller to work crookedly? The developer?
Advice for this problem: you should be rude, if the situation requires it, loudly declare that the license costs a lot of money, and its benefits are zero. Or buy a new license, if conditions are satisfactory.
Multiplatform and native.
For brevity, I will call the program for creating installers "IDE", although this is not the best name. You can divide IDE into two types of multi-platform and native.
Multiplatform - one design for multiple platforms. These are such IDEs as InstallAnywhere, InstallBuilder, InstallShield Multiplatform, Install4j. Table 1 shows prices.
InstallAnywhere 2009 Enterprise / Standard Edition | $ 4,499.00 / $ 1,999.00 | shop.flexerasoftware.com/product/fullproducts.asp |
InstallBuilder Enterprise / Professional | $ 1,995 / $ 1,395 | installbuilder.bitrock.com/purchase.html |
InstallShield Multiplatform | - | Out of production. |
Install4j Standard License | $ 1199 | www.ej-technologies.com/buy/install4j/single?currency=USD |
Native - one project for one platform family. Most often they are written for the Windows family. For example, InstallShield 2010, InnoSetup, InstallAware, etc. Table 2 shows the prices.
InstallShield 2010 Professional / Premier | $ 1,999.00 / $ 3,999.00 | shop.flexerasoftware.com/product/fullproducts.asp |
Inno setup | free | www.jrsoftware.org/isinfo.php |
InstallAvare Developer / Studio Admin | $ 1499 / $ 2999 | www.cleverbridge.com/client/185/index.html?studio |
Needless to say, the free and paid versions of the IDE differ in both heaven and earth. Although this does not at all plead with the work of the developers, neither one nor the other.
From the prices we can conclude that installers are not cheap. I am sure that at times it will be more expensive to write your IDE and make an installer based on it.
Bugs of installers.
Let's start with Windows.
1. for the most part (and in the case of Adobe), Windows installation programs are based on the Windows Installer (.msi), it, like any other product, has its own bugs.
2. When developing the installer, an IDE is used, like any other product, it has its own bugs.
3. the installer does the man and he will definitely leave a couple of bugs somewhere. I repent, I did it more than once ...
4. there are licenses, and this is a very important issue! Of course, not for everyone :)
A similar situation for multi-platform installers.
As you can see, not all bugs in the installers talk about the developer.
Consider, for example, a couple of InstallAnywhere 2008 bugs, as I am working with it now. I have an Enterprise version, it costs about $ 4,500 .
This is an IDE for creating Java project installers. The good news is that when developing the installer, you can use Java to its full
potential :) The figure shows an example of a standard dialog box, and there is a scroll when the text is entered into the IDE. Where can I get on a rake? If some way is dynamically inserted in the text and it is very long for the user, then such a bug can pass by the developer and testers ... Who has crooked hands? The installer developer also has some guilt ...

There are actions that are not visible to the user, they run .bat files or something like that. Naturally, the path to the .bat file must be quoted in case of spaces. The IDE insolently removes the last quotation marks when saving. You can get on the rake if the developers and testers have met paths without spaces, and the user has a treasured gap. If the previous bug was cosmetic, then the batch file definitely launches something you need. Who has crooked hands? The installer developer also has some guilt ...
There are actions that run the developer code, packed in .jar files. If there is a META-INF folder in the .jar file, the code will be ignored. Strangely enough, but this feature is described in the documentation ...
eyeofhell reminded a bug about localization difficulties. In the picture, the translation “Uninstall is completed” instead of “Uninstall completely”

A serious bug that runs from version to version in InstallAnywhere. To account for the installed software, an .xml file is used; it can be found like this: “C: \ Program Files \ Zero G Registry \ .com.zerog.registry.xml”. The fact is that writing to this registry occurs after the user clicks the “DONE” button on the last installation / uninstallation dialog, so he can safely reboot the computer, run another installer or something like that. The most annoying thing is that changing this behavior is impossible. Problems that arise in this case:
1. There is a record that the program is installed, but the path to it is empty ...
2. We get an error reading the file, the installer quietly says "Hmm, the registry file is some kind of curve, I'll make a new one" and create :)
To correct the situation several times on his machine, he deleted this file during development and testing.
Eternal question - what to do? Set as if there was nothing? And if the services are spinning, or they are and are not running, or is there conflicting features in the project? Not all files are copied to the installation directory. There is no definite answer for developers here, you need to proceed from the requirements of the project and the manual ...
Another question, why do you use an xml file in case of InstallAnywhere or SQLite in case of Adobe to store data about installed programs?
This is done in order to provide a single interface when installing on various platforms.
I'm more than sure that the problem with the Adobe product installer rests on issues related to the license, internal conflict of features and components, or something similar. And in no way connected with the professionalism of the installer developers.