4 ms·
Honestly, the source code of the examples looks rather complicated, like something that should better be generated from a nicer high-level language that has a n
by Koshkin 7y ago
Honestly, the source code of the examples looks rather complicated, like something that should better be generated from a nicer high-level language that has a native actor concept. (Obviously, the power of C++ templates does not come for free - you pay with noisy code and increased cognitive load.)
- jfkebwjsbx 7y agoAnd compilation times and memory requirements for it.
- ekez 7y agoZeek uses CAF internally for data exchange over networks and workers [1]. It's not quite a "native actor concept", but it is a nice way to interact with the framework. I've used it before and its worked quite smoothly. [1] https://docs.zeek.org/en/current/frameworks/broker.html https://docs.zeek.org/en/current/frameworks/broker.html
- eao197 7y ago> Honestly, the source code of the examples looks rather complicated There are several CAF alternatives with very different usages of C++ features: * QP/C++: https://www.state-machine.com/qpcpp/ https://www.state-machine.com/qpcpp/ * SObjectizer: https://github.com/Stiffstream/sobjectizer https://github.com/Stiffstream/sobjectizer * actor-zeta: https://github.com/jinncrafters/actor-zeta https://github.com/jinncrafters/actor-zeta * rotor: https://github.com/basiliscos/cpp-rotor https://github.com/basiliscos/cpp-rotor At least two of them (QP/C++ and SObjectizer) are evolved and used for a longer time than CAF.
- alexeiz 7y agoOn the contrary, I worked with CAF and I found it one of the simpler frameworks that provide the actor model (simpler to use, that is). Later I learned about Erlang and I noticed a lot of similarities between CAF and message passing in Erlang. Look at this https://github.com/actor-framework/actor-framework/blob/master/examples/message_passing/calculator.cpp https://github.com/actor-framework/actor-framework/blob/mast..., for example. There are multiple implementations of the same thing (calculator). But each implementation is simple enough to grasp without any prior knowledge of the framework.