[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/]