typestar

Languages

Igor Pro

A scientific analysis environment with a programming language attached, and a devoted following in the lab.

First released
1988
Created by
WaveMetrics
Typing
Static declarations, few types, built around the wave
File extensions
.ipf

What it is for

Igor Pro is commercial scientific software from WaveMetrics, and its procedure language exists to automate it. It lives in experimental science: electrophysiology, spectroscopy, materials, geophysics. Places where the same instrument produces the same shape of data every day and someone has to turn it into a figure that will survive peer review.

Everything is built around the wave, a named numeric array that carries its own axis scaling and units. Because a wave knows its points are seconds or nanometres, an analysis can be written in the units of the experiment rather than in array indices, and a graph picks up the axis labels without being told. Wave assignment is implicitly vectorized, so most analysis has no loops in it at all.

The rest of the appeal is publication-quality graphics and the fact that analysis, graphs and data all live in one experiment file. What you give up is openness. Igor is proprietary, Windows and macOS only, and its procedure files run nowhere else. The labs that use it have considered that trade worth making for thirty years.

Where it came from

WaveMetrics released the first Igor in 1988, for the Macintosh, as a program for plotting and manipulating waveform data. The name comes from the assistant, fetching and processing on command. Igor Pro followed as it grew from a plotting tool into a full analysis environment with its own procedure language.

Development has been continuous since. Multidimensional waves, data folders, an integrated development environment, multithreading, a large built-in function library, all while keeping backwards compatibility with procedures written decades earlier. Windows support arrived in the 1990s.

Its longevity comes down to its users. Igor gets passed down inside research groups, and analysis procedures written by a postdoc in 2001 are often still running the lab's data today. That is why it endures, and also why its idioms can read like a message from another era.

What it is like to type

Igor is an unusual thing to type. Operations take slash-flags, as in Make/O/N=100/D, so the forward slash turns up mid-word constantly. Every block closes with a spelled-out keyword rather than a brace: End, endif, endfor, and endswitch even for a strswitch. String and wave references bring the dollar sign into it.

Practice Igor Pro

71 steps across 4 tours, from the basics to complete programs.

The tours

Official documentation

Other languages