MAX is a visual programming language oriented towards realtime operation.

Originally developped at IRCAM (french major research center in music, founded by Pierre Boulez) by Miller Puckette for IRCAM's musical platform. The software was taken over and distributed commercially by Opcode whose most succesful version of MAX was the Macintosh version. Recently, all commercial activity has been handed over to cycling74

The language is interpreted and rely upon 'patches' as structural components of a program. Those patches contain objects linked together by typed or untyped inlets (inputs) and outlets (outputs)

When a value is sent to those inlets, the system is sending messages to the destination. This destination can be an object (which is an 'external', that is, is a binary program executed on the platform) or a subpatch, and perform whatever operation is defined.

The appeal of a visual language is that it's rather easy to develop programs in an intuitive/creative way, and it's also friendlier for a non-programmer. (as the application was to be used by musicians)

Of course, a visual programming language has its drawbacks, especially when a patch becomes complex (all you see is a mass of objects and connections) or because of implicit or hidden temporal effects: it is sometimes quite hard to figure out when this or that message will arrive. Also, the position of the elements in the patch matters.

MAX really shines in the way it permits realtime manipulation of incoming and outcoming MIDI (and audio) data, which makes it very useful in a live situation.

two free software versions of MAX exist:

  • jMAX developed by IRCAM (under GPL)
  • PureData developed by Miller Puckette (under a specific, BSD-like license)