On Mon, 13 Dec 2010, Hans-Christoph Steiner wrote:
Pd doesn't really have classes like OOP (i.e. no inheritance),
Inheritance is not an essential feature of OOP, if you consider how much this feature varies a lot from one OOP language to another, moreso than other features.
The more essential features of OOP are data-abstraction, encapsulation, polymorphism, modularity, ... and in nearly all lists of typical OOP features, one is missing (but essential in practice) : the idea that multiple objects share a single class definition (that is, "methods" belong to "classes", not directly to "objects"). Pd's "abstractions" are precisely that : one patch is a class, and each use of that patch as an objectbox in any another patch is an object.
In short, there's a lot that programming languages have in common, that are typical OOP features, without having to even speak about inheritance.
so I think it can be confusing to use that term.
Confusing with what ? What's confusing is that you guys use one word for two things that are normally given two different names in every other language : object vs class in most cases, object vs prototype in some others, instance vs class, etc.
The confusion comes from people who insist on using the word "object" to mean "class".
People have been saying objects for a long time with Pd and Max.
In itself, that doesn't make it a good idea.
The Pd/Max mentality of "we're soooo completely different from everything else !" doesn't serve much more than egos. In the end, problem-solving in Pd/Max is fundamentally similar to that of any other computer programming (in the strategies, not the tactics), so, any kind of isolationism is a manner of making it unnecessarily harder for other programmers to understand us, and vice-versa. If we adopted standard vocabulary, we could focus on real differences between Pd/Max and other languages, instead of terminology.
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC