Re: MAX / Pd / cSound question

From: Chris Rolfe (spamproof@shaw.ca)
Date: Sun Apr 10 2011 - 18:31:00 EDT


Yes, your points on parallel programming are well taken, not just with regard to C++, but imperative programming in general. Let's add distributed computing, too. I'd quibble, though, that templates and the STL are not OO, but genericity.

My point about the OOP "craze" is that many languages, while having incorporated OO features, ultimately adopted a mixed-paradigm. C++ and Objective-C, for example, extend C rather than replace it. Pure OO is relatively rare.

I'm definitely not saying that C++ is going away any time soon, but I think the days when OO concepts drove language innovation are past. To paraphrase someone or other, OOP is not dead, it's done. It's useful where it's useful, but there are still many problem domains where OOP is needlessly inefficient or inelegant, or overly restrictive.

It seems to me that recent computer programming language developments are driven by people clamouring for better concurrency support (as you say) and more functional programming (Haskell, Lisp, F#) features like first-order functions, anonymous functions and closures, not more rigid OO features.

Chris

On 2011-04-09, at 2:16 AM, Richard Dobson wrote:

> On 09/04/2011 04:45, Chris Rolfe wrote:
>> 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.
>>
>
> I don't see this myself; C++ at least is still going very strong with the new C++0x standard on the horizon with implementations already "out there". The STL is a very successful expression of code reuse. However, everyone faces a new challenge, which neither C nor C++ are really geared up to meet (notwithstanding the new threading support in C++0x), of multi-core/parallel programming where the number of cores operating in parallel may be counted in the hundreds or even thousands. It is possible that some OOP principles and idioms (such as templates) will prove sustainable in a parallel environment, but some new style of langauge would seem to be inevitable - these languages have really fallen behind where the hardware is at. Perhaps it will be OSP - Object-Synchronous Programming, or something. New programming models such as CUDA/OpenCL, tied to massively parallel hardware such as GPU devices, seem to indicate the way things are moving. In the meantime, all those who thought OCCAM was a fringe obsolete language, or the transputer an obsolete hardware model, are now having to rethink, as the days we once enjoyed of the monolithic super-fast, super-size, and essentially sequential CPU are passed and almost forgotten.
>
> Richard Dobson



This archive was generated by hypermail 2.1.5 : Sun Apr 10 2011 - 21:59:55 EDT