[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: OO vs. CSP - Papers, Arguments?
All isues regarding "data encapsulation in objects vs. CSP" is no issue.
Practical implementations of CSP (such as JCSP) don't provide any safer
ancapsulation than plain OO - since JCSP works on references to objects,
any abuse is possible and I do whatever I want by using iheritance in
The real problem with concurrent OO is "inheritance anomaly". This is
the phenomenon that inheritance from concurrently safe object can
violate the safety, and concurrently safe objects extended by
inheritance can be not concurrently safe. This practically eliminates
inheritance from concurrent objects landscape, what doesn't mean that
concurrent OO are useless - it is possible to use delegation, that as I
know does not create such problem.
See the following papers:
More you will find on Yonezawa page (Yonezawa published 2 books on OO
concurrent programming, walk to the library)
Check implementation of actors paradigm for Smalltalk by Briot. Look on
his publications, you will find a lot about objects/concurrency
CSP is not a silver bullet either. It scales up poorly. Try to implement
system with 400 channels (I did) and debug such system. "Spagetti
channels" is no fun, and maintaining large systems based on CSP is
> -----Original Message-----
> From: owner-occam-com@xxxxxxxxxx
> [mailto:owner-occam-com@xxxxxxxxxx] On Behalf Of Koehne Kai
> Sent: Wednesday, September 21, 2005 3: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