[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

a pure side effect language




I don't know if anyone here knows about the MAX application, which is 
used by musicians (there are other ports known as jMAX and PD). It is a 
boxes and wires style visual language where the boxes are objects and 
the wires represent message sends to the objects. The message sends are 
implemented as C function calls passing a list of tagged argument 
values.

The interesting thing about this language is that is probably as far 
from functional as you can get. It is a pure side effect language. The 
function calls do not return a value. Therefore it can only do anything 
by mutating an object or causing i/o. There are no variables per se, 
but there are objects in which you can store a value by sending it a 
message, and get the stored value out by sending a message.

The diagrams (called "patches") in MAX quickly become hard to decipher, 
but the box and wires paradigm is very fast for new users to pick up. 
Though IMO there is a low ceiling for what you can write directly "in 
the language". Most power users eventually write their own C plug-in 
objects for it to do something complex.

This language has thousands of users.

-- 
--- james mccartney