An incarnation of pure evil in the guise of a software installation program. Created by the InstallShield Software Corporation (http://www.installshield.com), which describes itself as "a leading provider of professional Windows software development tools." Best known for programs such as InstallShield Professional and InstallShield for Windows Installer ... of Doom.
Contrary to chaosdiscord's writeup, InstallShield is not the actual programming language. InstallScript is the scripting langauge in which InstallShield installations are written. It is similar to C and related languages, but much more diabolical. InstallScript consists mostly of functions, which are used to create event-driven scripts that run setup, configuration, and uninstallation procedures. (And you can control uninstallation events, but it often does leave files or registry entries behind after uninstallation.) Frequently, these functions are difficult to understand at best, and require advanced degrees in programming, engineering, physics, higher math, and/or a background in interpretive dance.
Anyone who has ever been unfortunate enough to have been required by an employer or other entity to create or modify an InstallShield project will understand what I am talking about, even if they do not wholly agree with my assessment. While, in essence, InstallShield is a nifty little tool for creating installations, it often breaks, does not do what you expect/want it to, and may even cause damage to existing software or operating systems, for no apparent reason. And of course, like other programming languages, leave out one little semi-colon and watch the compiler blow up, but God forbid it should clue you in to what you did wrong, or where your syntax error is (frequently prompting me to scream obscenities at my computer and bitch about how the stupid code won't compile). Furthermore, trying to talk to their support staff is like trying to squeeze orange juice out of a lemon. You can almost get them to understand you, if you're lucky enough to get someone who speaks fluent English, and you can come close to a resolution, but you can never quite achieve your goal of actually solving your problem. However, they may insult your intelligence several times in the process, if you like that sort of thing.
Luckily, there are newsgroups and a website to bitch about the inefficacy of InstallShield, and to beg other users for help. You can try the news.installshield.com server, which offers such fascinating lists as installshield.is6.general, installshield.is6.installscript, and even the installshield.is6.wishlist, where you can fervently pray and sacrifice small woodland creatures (or your sanity/job security/hard drive, whichever is more highly valued) to the demi-gods of InstallShield to enhance crappy features, and fix age-old bugs (which are, not surprisingly, just called "features"). There's also http://www.installsite.org which maintains lists of bugs and fixes, software updates, and a searchable support database. It is not run by InstallShield; therefore, it may actually provide some insight and help.
This is the knowledge I accumulated in the past three days of intensive shielding from installation. One of the nice things about InstallShield, and with it InstallScript, is that it has a great deal of functionality. This is probably why it gives people so much trouble. Basically, having come close to mastering InstallScript (with little choice in the matter), I found myself developing more and more complex algorithms. Often I would be missing other programming language features only to discover they were in there somewhere. It's got what you want. You just need to weed out what you don't. The only really useful thing it seems to be missing is Regular Expressions. Short of that it's got just about everything. One of its best features is that there is a lot in the help files, it isn't always organized and linked as thoroughly as it might be, but everything is there if you look around with just a little ingenuity.
InstallScript itself is a strange mutation of VB and C-like syntax. For someone who is familliar with both, you can pretty much guess how to do what you need, a glance at the help files every now and again will go a long way. One of the things which is most difficult to accept is that you can't return strings from functions.(Not with the return statement anyway, though you can return them ByRef.) I imagine you could use pointers (which InstallScript has) to do that, but really people, we're just installing files here. In that particular sense the language is surprisingly unabstract. It's lower lever than VB, but nothing like C. There are also many convenient functions, especially VerCompare which lets you compare version numbers.
It's not all fun and games. It took me a whole day to figure out how to properly add Custom Dialogs. Once you find the right help page (CtrlSetText example code) you know how the code is supposed to look, but there was no nice walkthrough that explained what settings needed to be set to make a Dialog which you could use with such example code. The example cops out and loads a standard dialog so it can teach you how to manipulate it. In this rare instance the help file is not your friend. This is why my agony lasted the better part of a day. Here are some of the secrets:
EzDefineDialog("WhatYouWillCallYourDialogFromNowOn","","",TheNumberYouTypedInTheDirectEditor);
WaitOnDialog("WhatYouAreCallingYourDialog");
printable version chaos
Everything2 Help