Scripting in InDesign makes use of Visual Basic on the Windows platform and Applescript on the Mac and now, with InDesign CS, there is the cross platform choice of Javascript. You can import the scripts (in text format or as compiled scripts into the Script Palette, so they can be run at a double-click. On a Mac you can use OS Menu Lite (which comes with the OS) to add a menu to all menu bars.
Scripting for InDesign is not like scripting in PageMaker, which, in its simplest form could be just a series of commands almost identical to the menu commands. It will generally require more effort, but it is also capable of much more. Unlike programming (as required to produce a plug-in), the fact that scripts need not be compiled means they can be built on a trial and error basis: write a few lines and run it to see if it works. Scripts can be compiled on either platform (which means the code can be hidden and that means more people may be prepared to produce scripts for a fee, since their code cannot be easily stolen).
The scripting library built into InDesign also now includes a range of Dialog commands, which means that even with the cross platform scripting of Javascript users are not limited to the dialogs directly available from that language.
While InDesign has a Visual Basic library, it does not contain Visual Basic for Applications, and so a VBA application is required to create a working script. Windows users almost certainly have such an application as they include Word for Windows, Excel, Visio and others.
Alternatively, you can use Visual Basic itself, with the most cost effective form being the Learning Edition which enables you to compile standalone .exe files for single or multiple scripts.
At the heart of Visual Basic is the ability to construct dialog boxes, with code, and therefore scripts, associated to each control on the dialog.
InDesign does not yet support Microsoft's latest incarnation of that language, VB.Net, and while we'be seen a few retail references to VB6, they won't be around new for much longer. Olav Kvern of Adobe suggests that the best interim solution is to download the Visual Basic 5 Control Creation Edition (VB5 CCE)-- which you can find at <http://download.com.com/3000-2403-880768.html?tag=list> (7.1MB) or you can search for it on the Microsoft site itself. This version of VB has the advantage of being free and it is in fact the full edition of Visual Basic 5 -- which works quite well with the InDesign example scripts.
VB.Net has a setting called "Option Explicit" turned on. This was an optional setting in previous versions of VB, and is intended to force "good programming practice". It means that all scripts need to start by declaring the type of all of the variables used. Olav describes it as "pretty tedious", and adds that it tends to discourage non-programmers from approaching the script. The result is that if many of the scripts which come with InDesign are opened in VB.Net, you'll get green underlines on each instance of a variable such as myDocument and a message that they are "not declared".
InDesign scripting on the Mac is based on Applescript. The functionality of coding is similar to that of the core scripts in Visual Basic, so it is feasible to construct cross platform scripts by following a sequence in the code for one platform and creating it on the other.
The dialog box ability of Applescript itself is fairly limited, but there are additional programs such as Facespan which can be used to create standalone programs with extensive dialogs and running Applescript.
Hints and more about InDesign