I like this book Blaine refers to. It's been sitting on my shelf for a couple of years where I've picked it up and dusted off a few pages here and there. Recently I have been following it a bit in practicing *concurrent* programming as opposed to object programming per se.
Concurrent processes can be seen as "active objects". Not every object in your system should be concurrent (not even in a concurrent programming language like Oz, Erlang, or Gambit Scheme). But the significant ones almost certainly should.
An active object (concurrent process) in these systems are like smallish databases and application-specific protocols for accessing them. Each process has state and essentially implements a loop of selecting the next most important message, interpreting it, and updating its state (its little possibly-persistent "database"). These message-passing protocols are not unlike the protocols of messages sent to (sequential) objects.
More later. If you have any favorite references for concurrent programming leave a comment.
2 comments:
Joe Armstrong's (inventor of Erlang) PhD thesis Making Reliable Systems in the Presence of Software Errors is really good for explaining Joe's idea of Concurrency Oriented Programming (COP).
The Concepts of Zonnon: A language for systems engineering with
Modules, Objects and Concurrency
Post a Comment