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