On Thu, Apr 13, 2006 at 02:17:54AM -0400, Mathieu Bouchard wrote:
On Sun, 9 Apr 2006, Chris McCormick wrote:
On Fri, Apr 07, 2006 at 01:47:51PM -0400, Mathieu Bouchard wrote:
The "copy-and-modify" part of those languages isn't inheritance, it's construction: they don't have ordinary "constructors". They both support inheritance but they both don't use classes to do inheritance.
I don't beleive this is true of Javascript. The only way to "inherit" in javascript is to copy an existing object and then add methods to it from the object you want to inherit from.
No, you have to set a property called "prototype", to which property lookup of missing properties will be delegated. I don't know whether Javascript supports multiple prototypes, but the SELF language does. (SELF was a major inspiration for JavaScript)
That is a cool feature; I did not know about the prototype property of objects in Javascript. Thanks for the heads up.
If you ask me, this is more like having a fixed method of an object and giving it an argument that re-configures the way it works than modifying the code. But not entirely. This highlights the problem with trying to map concepts like "method" and "object" onto Pd.
I was talking about modifying the objects inside the abstraction. If you consider whatever you do in Edit Mode to be just "re-configuration", then you may as well call all code as "data" and coding as "re-configuring the compiler".
Yes, point taken. But in my opinion, there isn't a one-to-one exact match between these concepts in programming and Pd patching. Patching is not programming. It's like programming. A number of features of 'patching' intersect with those of 'programming'.
In any case:
"Musicians have often used Max as a programming environment, at which Max succeeds only very awkwardly... This decision was made to remove a layer of complexity that didn't seem to be strictly necessary in the context of computer music production, in order to make Max as accessible as possible to people who aren't professional computer programmers... Rather than a programming environment, Max is fundamentally a system for scheduling real-time tasks and managing intercommunication between them."
-- MSP, http://crca.ucsd.edu/~msp/Publications/dartmouth-reprint.dir/
Maybe we should stop thinking "The diagram is the program. (TM)" and start thinking "The diagram is the audio/visual [real time] composition." instead. That is certainly closer to how I use Puredata.
Best,
Chris.
------------------- chris@mccormick.cx http://mccormick.cx