I just saw a great presentation on Erlang and concurrency by Joe Armstrong - the inventor of erlang. It is funny to see how someone is thinking completely different from the world you live in (in my case it is OO).
It really strikes me how clearly he sees that Objects are not very good models of the world. What he says is that OO is made for sequential programming, and when he looks at the world it is not sequential, ít is concurrent.
So he brought out "Concurrency Oriented Programming". The main problem with OO is shared memory. What is the problem here is that every time threads or processes has to communicate with each other you use shared memorys. In order to not step on each others feet you use locks or mutexes. But that approach is not very fault tolerant.
So what he does instead is he copies messages between processes. That way you don't do locking or mutexes or ...
When I saw this presentation on erlang I started thing about using WCF for this purpose (yeah I know I got a new hammer and now everything is a nail):
Well WCF is all about sending messages.
OK so this was like only in a brainstorming way, don't take this idea to seroius ....
But what if we use WCF and named pipes to communicate and we send messages, we would get a lot of the erlang features.
Only we would have a problem with the cost of spawning a thread or process....