When I wanted to draw my first line plot in IDL (Interactive Data Language from Research Systems, Inc.) over 10 years ago, I had to read through the entire manual–twice–to understand how it was done. Although the documentation has changed dramatically in the intervening years, it is still difficult for someone new to IDL to sift through the documentation, separating the twenty percent of the information they need daily from the eighty percent they need infrequently.
What I set out to do in this book is to describe by example those IDL programming techniques I find essential in my own daily programming tasks. The book has been refined over so many years I feel confident predicting you will find described within its pages over eighty percent of what you ever want to do in IDL.
Another goal for this book was to demonstrate for fellow scientists who may have taught themselves computer programming how to write an “elegant” IDL program. I’ve been teaching people how to use IDL for almost as long as I have been using it myself. I’ve seen a lot of programs that “work”, but are otherwise poorly written. (Alas, many of these programs have been my own.) These programs are difficult to extend, modify, and maintain.
In this book I wanted to lay out a handful of simple IDL programming principles that would allow users to write elegant programs with resizeable graphics windows, easy and automatic access to PostScript, GIF, and JPEG file output, intelligent use of color, and with intuitive graphical user interfaces. Moreover, I wanted to describe an object-oriented programming style that makes programs easy to maintain, modify, and extend over time. These principles (and especially the information on writing widget programs, or programs with graphical user interfaces) can be found nowhere else.
More than anything, I wanted this book to be the one I wish someone had given me when I was learning to use IDL all those years ago.