[PD] low-level programming languageß

Mathieu Bouchard matju at artengine.ca
Wed Jun 30 17:44:51 CEST 2010


On Wed, 30 Jun 2010, Bernardo Barros wrote:

> You´re right. SuperCollider is a very high-level and object-oriented
> programming language. Also very expressive and has all tha
> characteristics of a object-oriented language (inheritance,
> polymorphism, classes etc). Low-level programming language, also OOP,
> would be C++.

To fit any sensible definitions of low and high, C++ would have to be 
classified in multi-level programming languages, which is sort of C++'s 
own category, as it allows you to do things you can't even directly do by 
gluing pieces of code of normal low-level languages and normal high-level 
languages together.

> PD is no object-oriented in any sense BTW.

I have to consider PD either object-oriented or nearly-object-oriented, 
but it's also sufficiently crippled to make lower one's expectations about 
what an object-oriented language should offer. But then I don't think that 
object-oriented as a language category makes that much sense compared to 
looking at the main features of it such as the self-context, messages, 
methods, classes, objects, method-lookup, inheritance, polymorphism. In 
the end, it's only really lacking inheritance. But the trouble comes from 
how you can create and delete objects, how you can send to them, and then, 
because of that, what the objects look like they are made for, in 
relationship with atoms. Because of that, pd/max class design is quite 
inside-out compared to anything (else) called object-oriented.

If it helps you, you could use a separate word for pd's "object-oriented", 
such as calling it not at all "object-oriented", but I'd believe that the 
reality is more subtle than that. For example, I need a category in which 
I put the early years of Java, in a way that expresses that their 
conception of polymorphism was so dysfunctional that it was only 
polymorphic on paper :

   MyLeafClassSaidTwice result = (MyLeafClassSaidTwice)
     ((MyContainerClassSaidExplicitlyWhenIShouldntNeedTo)
       bucket.getElement(new IntegerWrapperKludge(n))).getElement(m);

In any case, SC has a much deeper object-oriented design than Pd for 
sure... But I'm still not really aware of much of the details, because I 
don't have much of an incentive to try SC at this point (except to 
translate some SC snippets into Pd patches and/or externals). From that 
distance, though, I have a lot more esteem for SC than for Java.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801


More information about the Pd-list mailing list