[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: OO vs. CSP - Papers, Arguments?

I am less of a language specialist, but maybe have a look at

Essentially OO is a good concept but badly implemented.  

The reason is the hidden shared memory model, hence Objects in e.g. C++ are
nothing else than inflated functions. As a result OO classes do not hide
their insides well enough as OO adepts like you to believe.

If however you make the information hiding total, you get the concept of a
"process" (= a function with its local workspace) and the only interface
possible is a message passing protocol (where you pass values). That's a
real object that can be passed around. I call this "Process Oriented

It solves a lot of issues because there is no global data to be protected
and once inside such a process object, you are automatically in a critical
section. CSP is a good formalism to reason about such systems, even if
"sequentialisation" is sometimes a necessary step to get the right
performance and our heavily pipelined von-Neuman machines.

As for GRID computing. Software programs are just models of something in the
real or virtual world. Hence a process oriented programming styl is much
more natural than e.g. Fortran where the natural parallism has been removed
(and then people got their PhD developing reverse engineering tools called
parallising compilers). What's the drama? Grid computing is mostly about
being able to run dusty deck fortran programs across a network. Very few
scientists want to rewrite that legacy. So, good luck.

----------------------  FROM : --------------------------
   Skype me at: ericverhulstskype
   Mob. +32 477 608339
   Systematic Systems Development Methodologies
   Trustworthy Embedded Components
" "Concept" is a vague concept", L. Wittgenstein 

-----Original Message-----
From: owner-occam-com@xxxxxxxxxx [mailto:owner-occam-com@xxxxxxxxxx] On
Behalf Of Koehne Kai
Sent: Wednesday, September 21, 2005 10:47 AM
To: occam-com@xxxxxxxxxx
Subject: OO vs. CSP - Papers, Arguments?


I am just starting to work on my master thesis that aims to extend Occam to
become a useful coordination language for Grid Computing. I already read a
lot about CSP, Occam and diverse extensions of it. However, I think that I
am still missing answers to an important question: What are the main
advantages/disadvantages of the CSP approach in contrast to concurrent
object oriented aproaches?

My perception is that CSP just feels more "natural" when it comes to
concurrent programming, but I am sure that there are a lot more sound and
sophisticated opinions on this topic 'out there'. The only reasoning I am
aware of is in a presentation of Peter Welch called "Communicating
Processes, Components and Scaleable Systems" where he states that OO is not
providing "real" data encapsulation. I would be very grateful if you could
provide me hints on further comparisons ...

Regards and thanks in advance,

Kai Koehne
University of Potsdam, Germany