IDL Programming Concepts and Tools

IDL's programming environment provides tools that help you organize and accelerate code development. The IDL workspace and projects provide the basic framework for IDL programming. The different programming tools include object and GUI programming, including the iTools library. These concepts are introduced in the following sections, along with how to distribute your IDL applications.

Workspace

The Workbench in IDL uses the concept of a workspace, where IDL stores all projects, folders, and files in a single directory. All projects reside in the workspace. You can choose where the workspace physically resides on your system, and you can create multiple workspaces, but only one can be open at a time.

Projects

An IDL project is a virtual collection of folders, files, and metadata. Projects are not required by IDL, but the benefits of saving programs in projects include cross-project searching and easy navigation. You can also use projects for customizing builds, version management, sharing, and resource organization.

In the IDL workflow, you first create a project using the Workbench and specify a location for it in the file system. Code files are then associated with the project.

Object Programming

Object-oriented programming blurs the lines between routines and the data that they act upon. The benefits of using object-oriented programming include reusable classes and more modular code (easier to find and fix errors). Object-oriented applications can also be easier to maintain and extend.

IDL began as a procedural language, but object-oriented programming was introduced in IDL 5.0. One of the driving reasons was to simplify 3D graphics capabilities (known as Object graphics in IDL). The IDL Object graphics system is a collection of pre-defined object classes that act as building blocks. To build a useful application, you must use several of these building blocks together. Compared to IDL's Direct graphics, object graphics are more complex, but produce robust, 3-D visualizations. Another difference is that object graphics are meant for application development rather than for command-line users.

For more information, see The Basics of Using Objects in IDL.

Graphical User Interface (GUI) Programming

IDL provides several programming options for creating user interfaces. The following list shows the options in order from simplest to most complex:

iTool Programming

The term iTools stands for intelligent tools, which are a collection of IDL applications that share a common framework. The iTools all have a graphical user interface (GUI) that allows you to program applications with custom toolbars, menus, buttons, etc. IDL provides several predefined iTools, and you can develop your own using iTool programming.

Programming in iTools uses the iTools Component Framework, which is a set of class files and utilities that help you create new tools or extend the existing iTools.

For more information, see Creating an iTool.

Distributing Programs

Once you have completed your application, you can quickly and easily create a distribution of your software product. See Running and Building Projects for information on packaging your application for distribution.