ITT VIS hosted a users group meeting at AGU to announce IDL 8.0. With over 40 IDL users in attendance, Bill Okuko, IDL Product Manager, gave an introduction to the major features while Chris Torrence, IDL Development Manager, provided the details.

The main goals of this release are to “modernize and simplify” IDL. The features discussed fell into four categories: Workbench, language, graphics, and a new graphics API.

The Workbench will be simplified: eliminating perspectives, removing menu items and toolbars that are not appropriate for IDL, etc. Projects will be optional. Startup will be faster. But the Workbench feature that I am most excited about is one that I had asked for years ago: an integrated command line/output log.

There are many new language features. ITT VIS is collecting feedback now about these changes, since some of them will not be backward compatible. Some of these features are:

  1. use of negative subscripts to count make from the end of an array
  2. adding DIMENSION keyword to MEAN, MOMENT, etc.
  3. operator overloading; users will be able to define operations for objects of a class which will be called when the corresponding operator is used on the object (and nearly all the operators are supported)
  4. FOREACH loop construct
  5. (possible, but not done yet) null arrays and structures

I am particularly excited about the operator overloading; I intend to make a lot of use of that in some of my current projects.

The only new graphics feature I heard were new plotting symbols. I am sure there must have been others mentioned, but that is the only one I have in my notes.

The new graphics API will create some procedural wrappers which use some of the new language features to make a simple way to create object graphics visualizations. Code will look something like:

IDL> p = plot(x, y)
IDL> p.color = [255, 0, 0]

This will create a simple plot which can be interactively or programmatically annotated.

IDL 8.0 is currently scheduled for release in May 2010 with a technical preview in February.