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

Re: a pure side effect language



At 04:49 PM 7/3/2003 -0700, James McCartney wrote:

>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.

I would be one of them.

Well, PD and jMax, anyway; MAX/MSP is too expensive for me right now. And, 
truth be told, I use PD more, since jMax is somewhat anemic on Windows. PD 
happens to have Scheme and Perl bindings that I know about, and quite 
possibly others.

I was always interested in Super Collider, by the way, along with Kyma, but 
never got around to using either. And there was a MAX/MSP-ish environment 
written in Common Lisp (MCL) way back in the day called Phorx, although it 
focused more on enabling composition via Markov Chains.


-- 
Dan Moniz <dnm@pobox.com> [http://www.pobox.com/~dnm/]