On 10/06/2013 13:59, Dominik Charousset wrote:
On 08.06.2013, at 20:11, David Sankel
wrote: The same argument can be used for any dynamic vs. static type argument. The user base of this library has already taken a stance on the issue by their choice of C++. That may be why there is so much push back to the current dynamic approach of libcppa. I think providing a strongly typed subset of the library along with the "fully dynamic" version should be a good middle ground. Type safe actors will be more or less lifted functions, where we can derive all the type information we need from the signature. If you are going to be strongly typed then I would suggest using some kind of message and actor interface compiler and generating code. Using something that is strongly typed with C++ at both ends of the wire is going to be fragile in terms of requiring 'big bang' deployments and also extremely constraining through an inability to communicate with other language runtimes.
This mimics the python approach to check types at runtime. The whole benefit of compile time safety is that we get guarantees about code correctness*before* we run.
(to David - sorry!) I don't think that the limited correctness you get from that is very useful in a concurrent system. It may ensure that teh form of messages is compatible, but not what they mean, nor any ordering guarantees, and the flip-side is that you have the schema migration issues. IMO its why object databases never went anywhere, and the lingua-franca of SQL (and blob databases with JSON-like data) have been supreme. James