Java Glossary : installer

CMP home Java glossary home Menu no menu Last updated 2004-06-28 by Roedy Green ©1996-2004 Canadian Mind Products

Java definitions: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

You are here : home : Java Glossary : I words : installer.

installer
Most programs now a days come with a commercial installation program. These are typically much better than the installs of yesteryear, but they still needlessly annoy and confuse the end users. Installation is the weakest link in Java. Dealing with conflicting JVM's, conflicting classpaths, conflicting versions of the plug-in mean the average user has little chance of successfully installing and running a Java application. See below for a list of the current installer tools. Before installers can be successful, JVM's must stop all use of autoexec.bat, and the SET environment, places where different JVMs can collide. Sun also has to start ensuring that multiple versions of its plug-in do not interfere with each other.

Here are my rules for writing a good install program:

  1. An install should display a pleasing graphic to start. This gives confidence that the product is of professional quality. However, it is quite unnecessary to have a Star-Wars level animated production to entertain during the setup. There should be no need to even look at the install except the first screen on two.
  2. The install should ask all its questions up front so you can have a short conversation with it, then walk away or run it in the background. If it needs a blank diskette, it should ask for it up front. If it wants a branding key, it should ask up front, not after 40 minutes.
  3. If an install required downloading 10 files, you should select the options up front, then go home and leave the install to automatically download all the files overnight and install them unattended. If the phone connection disconnects, it should restart it automatically, and optionally hang up when done.
  4. Keyed serial numbers are a dishonest ploy that have no effect on pirates and hurt legitimate users. A pirate can simply enter a known valid serial number. MS does all it can to make sure you will lose your serial numbers or confuse them between many different products, so that when it comes time to re-install, the codes won't work, and then you are forced to buy a new copy of the software. Serial numbers are evil, dishonest and useless. You can have a drawer full of Microsoft CDs and a drawer full of holograms/serial numbers and no way of matching the two. If you must use them, consider that users will properly write them on the CDs where they can't get lost. They have to remove the CD to read them. Don't abort the entire install if the next CD read after keying fails because the CD is not yet up to speed or because the user forgot to re-insert it.
  5. Branding keys, in contrast, are legitimate. To discourage piracy, the user's name is branded into the software in a way that if it is tampered with, the program will stop working. Ideally, software should come pre-branded, or you should be able to download a branding file when you purchase software that automates the branding process. If at all possible, installs should avoid making users type in long strings of gibberish to effect branding. At worst, they could just have to cut and paste the gibberish strings from some email.
  6. Registration branding keys ideally should be purely numeric, broken into groups of 4. Next best are pure alphabetic, case insensitive, avoiding the letters O, I and L. Spaces should be ignored. Ideally you can paste in the entire serial number in one fell swoop.
  7. The install should ask only one question per dialog box. It is too easy for the user to miss one of the questions otherwise, especially the crucial one, which drive to install on.
  8. The install should be prepared to run in the background unless it is a system level install. Programmers with immense egos believe that users have nothing better to do that watch their installs copy files. Their installs typically grab the entire screen and insist users watch them to completion, making users hit Enter every 15 seconds just to ensure they savour every little animated burble of ad copy.
  9. Installs should not require rebooting the machine, especially not more than once, even for system software.
  10. The install should display a conservative countdown timer of how much longer this is going take.
  11. Upgrade installs should carefully preserve existing preferences, configurations, plug-ins, hotlists, scripts etc. converting to new formats if necessary.
  12. Where it makes sense, upgrades should offer you the choice of preserving the old version. Where it does not make sense, the install should leave a result indistinguishable from a clean install of the new version and not leave junk files and registry entries left behind from the old version. It is extremely common for installs to fail over a previous version or a previously aborted install. Vendors should test the install to make sure it does not choke over any junk left behind by previous attempts.
  13. I implemented a zero-click install for save.com. It uses a tiny signed Applet that downloads an exe and execs it. The exe is a traditional install program. It asks no questions. It can't get any simpler than that for an initial install. All you have to do is visit the web page and grant security clearance.
  14. Java Web Start is the easiest way to implement one-click installs, and to ensure automatic updating. Java Web Start is rapidly becoming the way all Java applications are delivered. It is so much more convenient for the end user. It is free. The downloads are tiny. It is very little work to prepare a Web Start app. The only serious drawback is to work properly it needs a non-standard file server to deal with versioning.
  15. Check your questions with a variety of people to see if anyone can misinterpret them in an ambiguous way. One I question I saw recently "Exiting now will have a horrible consequence. Continue?" Did they mean continue with the exit or continue running the program without exiting? I often write letters to such authors telling them of the ambiguity. The fools write back telling me which they intended, and explain why there is no problem with ambiguity if you look at it the right way.
  16. You also have the problem to consider of preventing piracy by licensing your software. You can buy a canned solution like Alphabase or you can roll your own branding with ideas from my project of branding a software rental or the installer project. You might consider use of an obfuscator to make your code harder to reverse engineer.


CMP logo
CMP_home
home
Canadian Mind Products CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[24.87.56.253]
Your IP:[80.134.30.163]
You are visitor number 3728.
Please send errors, omissions and suggestions
to improve this page to Roedy Green.
You can get a fresh copy of this page from: or possibly from your local J: drive mirror:
http://mindprod.com/jgloss/installer.html J:\mindprod\jgloss\installer.html