[PD-dev] "object" lib

Mathieu Bouchard matju at artengine.ca
Fri Apr 7 19:47:51 CEST 2006


On Fri, 7 Apr 2006, Chris McCormick wrote:
> On Fri, Apr 07, 2006 at 05:25:41AM -0400, Mathieu Bouchard wrote:
> > On Fri, 7 Apr 2006, Hans-Christoph Steiner wrote:
> > > Pd is not an object-oriented programming language, so a classtree is
> > > totally irrelevant.
> > There are things that are both called OOP and don't have classes.  
> > (http://en.wikipedia.org/wiki/Self_programming_language)
> So? That isn't at all why Pd shouldn't be considered OOP. Puredata
> doesn't even properly support this type of 'copy-and-modify' inheritance
> that Self and Javascript do. A save operation is required in between,

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.

What I was trying to say is that there are assumptions made about OOP that 
are broken by some languages that happen to be very much called OOP; so 
the definition of OOP might be more flexible than what most think.

> and then if another save operation is performed all "objects" of the
> same "type" are modified. It's a very different behaviour to those two
> languages.

No it's not: those languages have the "class" role played by ordinary
objects: if you modify an object that is a "class" for other objects,
those other objects immediately start behaving differently. That's even 
better than Pd because then, modifying code and applying changes doesn't 
need lose your settings: e.g. if [+ 42] is configured to add 37 instead, 
then changing the abstraction in a SELF-like way doesn't reset the 
changes.

I was not meaning Pd has particular affinities with SELF/Javascript but
just that SELF/Javascript are good examples of things that are called OOP
but breaks assumptions that people make about OOP.

Another great example of that is CommonLISP's CLOS library (and other such
libraries it was based on): CLOS is both very different from
SELF/Javascript and very different from every other OOP language/library.
(note: CLOS is part of the standard library of LISP, but it's still just a
_library_!)

 _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada




More information about the Pd-dev mailing list