From: Chris Rolfe (spamproof@shaw.ca)
Date: Fri Apr 08 2011 - 23:45:57 EDT
Modular programming is a design philosophy originating in the 60's that emphasizes independence of code sections. Rather than coding a monolithic project, one breaks the functionality down into parts and reduces cross-dependencies.
One can code modularly in C, for example, through disciplined design. Specific language support in C is limited, however, to header conventions, static and extern designations. Information hiding and code reuse are key concepts.
OOP languages (SmallTalk, Objective-C, C++ or Java) provide more syntactic features to encourage and enforce modularity, mainly inheritance, private/public designations, message passing, polymorphism and introspection.
Max/Pd, interestingly enough, are quite modular, *almost* OOP, even though written in C. But there is no built-in syntactic support for inheritance, although in Max/Java, there is some subclassing and encapsulation. Max/Pd implement a roll-your-own kind of message passing, but there's no polymorphism, multiple inheritance, etc.
cSound is modular, but only if the programmer keeps to the agenda. Again, a design discipline.
Neither Max/Pd or cSound should be properly called OO.
Mind you, the OOP craze is pretty much over. The goals of code re-use, interchangeability, etc. never materialized in practice. For smaller projects, the design and versioning headaches of OOP never really warranted the additional design effort and cruft.
Cheers,
Chris
On 2011-04-08, at 7:19 PM, Kevin Austin wrote:
>
> I read of two types of programing environments, modular programing environments, and object oriented programing environments. Regarding cSound, MAX, and Pd, are these three programs modular, object oriented, both or neither. Or is this a non-question¿
>
> Thanks
>
> Kevin
This archive was generated by hypermail 2.1.5 : Sat Apr 09 2011 - 05:16:28 EDT