Overview
IDL is vectorized, numerical, and interactive, and is commonly used for interactive processing of large amounts of data (including image processing). The syntax includes many constructs from Fortran and some from C.
IDL originated from early VAX/VMS/Fortran, and its syntax still shows its heritage:
x = findgen(100)/10 y = sin(x)/x plot,x,yThe findgen function in the above example returns a one-dimensional array of floating point numbers, with values equal to a series of integers starting at 0.
Note that the operation in the second line applies in a vectorized manner to the whole 100-element array created in the first line, analogous to the way general-purpose array programming languages (such as APL, J or K) would do it. This example contains a divide by zero; IDL will report an arithmetic overflow, and store a NaN value in the corresponding element of the y array (the first one), but the other array elements will be finite. The NaN is excluded from the visualization generated by the plot command.
As with most other array programming languages, IDL is very fast at doing vector operations (sometimes as fast as a well-coded custom loop in FORTRAN or C) but quite slow if elements need processing individually. Hence part of the art of using IDL (or any other array programming language, for that matter) for numerically heavy computations is to make use of the built-in vector operations.
Read more about this topic: IDL (programming Language)