--- On Wed, 9/22/10, Hans-Christoph Steiner <[email protected]> wrote:
> From: Hans-Christoph Steiner <[email protected]> > Subject: Re: [PD] jMax Phoenix > To: "Mathieu Bouchard" <[email protected]> > Cc: [email protected] > Date: Wednesday, September 22, 2010, 8:01 AM > > On Sep 21, 2010, at 6:36 PM, Mathieu Bouchard wrote: > > > On Tue, 21 Sep 2010, Maurizio De Cecco wrote: > > > >> Given the fact that jMax slept a few years, it > cannot compete with puredata in terms of available > libraries, patches, and in general maturity of the > solution. > > > > No, it wasn't in this order : first it already > couldn't compete with PureData, AND THEN jMax 4 appeared, > which finished killing it, as the API was all different and > no-one bothered porting externals to it (well, I tried, and > I had to give up because some features had been removed from > jMax). By the time the project was called dead, everybody > had already switched to Pd or was in the process of doing > so. > > > >> 6) The language: jMax support the use of > expressions in object definition, like in | int ( 10 + $foo) > | so that objects in abstractions can be parametrised with > respect to the arguments. > > > > I gave up jMax because this feature was introduced. > This is because it removed the possibility to pass an > arithmetic operator as an argument. It was a showstopper for > me. > > I agree for different reasons. This syntax does seem > overly complicated and takes away from one of the things I > like best about the Max paradigm: really simple syntax. > > .hc Here's a left-paddled pong engine using the [expr] object: expr if(bx<=20, if (py<=by && py+60>=by, 0, 1), -1); if (bx>=415, 2, -1); if (by<=0, 4, if (by>=500, 5, -1)) 0 = left paddle hit 1 = left paddle miss 2 = richochet off right wall 3 = die at right paddle (to be implemented) 4 = richochet off top 5 = richochet off bottom I've got three variables being used in the conditionals, all of which come from [value] objects. Also, I'm sending a bogus value -1 for the "else" clause that expr's if operator tries to force on me-- this keeps from having to nest an "if" two levels deep, which becomes hard to read. So at the end all I need is [sel 0 1 2 3 4 5] and everything is clear. The point is the [expr] object supplies a way to do the kind of syntax under discussion, and in certain cases it seems necessary to avoid the Max paradigm cliche of spaghetti/spider webs. At least that's my position-- if someone can patch my expr statement above without expr where a) objects don't overlap much and b) the patch is compact enough that it can be read at a glance, then I'm happy to be wrong. -Jonathan _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
