There are two primary ways of using IDL: the command line (CLI*) and the Workbench (WB). The CLI allows direct access to the IDL interpreter. The WB is a separate program that sits on top of IDL and provides a slew of organizing, editing and debugging tools for working with IDL.
What are the pros and cons of these two ways of using IDL? Here’s how I see it.
CLI
Pros:
- Lightweight.
- Fast. The CLI provides direct access to the IDL interpreter.
Cons:
- Limited shell-like support; e.g., no color syntaxing, command completion or keybinding definition. (However, see rIDL.)
- An external editor is needed to develop and debug code. (For many, this may not be a negative.)
WB
Pros:
- Integrated editor with command completion, color syntaxing, code formatting and code templates.
- Projects for organizing files and controlling IDL’s path.
- A consistent interface across platforms supported by IDL (Windows, Mac OS X, Linux).
Cons:
- The WB is built on Eclipse, which is a big, complex Java application. As the size and complexity of an application grows, the likelihood of bugs grows, as well.
It’s part of my job to use the WB, so I’m clearly biased, but there are several features that I miss when I go back to Emacs + the CLI, among them:
- projects for file operations and path management,
- the Outline view for jumping between programs in a file, and
- the Open Resource dialog for opening files.
I’d like to demonstrate these in a set of subsequent posts, as well as other WB features that I find useful.
How do you prefer to use IDL?

Mark, I use the WB to do adhoc analysis and debugging (e.g. histogram of this, plot of that), and processing chain development. I use the CLI for batch runs or for long term processing whos progress I want to be able to easily monitor remotely. Once I have fleshed out a processing chain, I quickly switch to the CLI, running several CLIs to maximize the use of my multi-core system. It would be nice if the WB could export an init procedure that would setup the environment of a CLI to be just like the WB for a specific project. This would make the transition much more efficient.
If you are interested in a command line replacement, try rIDL. You can download the current version on the project site. It’s not to version 1.0 yet, but it has quite a few useful features.
After about the age of 30 or so, it becomes impossible for your fingers to learn anything approaching the complexity of EMACS. I happen to really like the IDL workbench, so I find it a Godsend to be able to use it on a LINUX system. It doesn’t matter where I am running IDL now, I can always feel comfortable writing and running IDL programs.