On Wed, Apr 10, 2013 at 5:35 AM, Tristan Slominski < tristan.slomin...@gmail.com> wrote:
> I think it's more of a pessimism about other models. [..] My > non-pessimism about actors is linked to Wolfram's cellular automata turing > machine [..] overwhelming consideration across all those hints is > unbounded scalability. > I'm confused. Why would you be pessimistic about non-actor models when your argument is essentially that very simple, deterministic, non-actor models can be both Turing complete and address unbounded scalability? Hmm. Perhaps what you're really arguing is "pessimistic about procedural" - which today is the mainstream paradigm of choice. The imperial nature of procedures makes it difficult to compose or integrate them in any extensional or collaborative manner - imperative works best when there is exactly one imperator (emperor). I can agree with that pessimism. In practice, the limits of scalability are very often limits of reasoning (too hard to reason about the interactions, safety, security, consistency, progress, process control, partial failure) or limits of extensibility (to inject or integrate new behaviors with existing systems requires invasive changes that are inconvenient or unauthorized). If either of those limits exist, scaling will stall. E.g. pure functional programming fails to scale for extensibility reasons, even though it admits a lot of natural parallelism. Of course, scalable performance is sometimes the issue, especially in models that have global 'instantaneous' relationships (e.g. ad-hoc non-modular logic programming) or global maintenance issues (like garbage collection). Unbounded scalability requires a consideration for locality of computation, and that it takes time for information to propagate. Actors model is one (of many) models that provides some of the considerations necessary for unbounded performance scalability. But actors model fails with regards to extensibility(*) and reasoning. So do most of the other models you mention - e.g. cellular automatons are even less extensible than actors (cells only talk to a fixed set of immediate neighbors), though one can address that with a notion of visitors (mobile agents). >From what you say, I get the impression that you aren't very aware of other models that might compete with actors, that attempt to address not only unbounded performance scalability but some of the other limiting factors on growth. Have you read about Bloom and the CALM conjecture? Lightweight time warp? What do you know of synchronous reactive programming? There is a lot to be optimistic about, just not with actors. (*) People tend to think of actors as extensible since you just need names of actors. But, without invasive code changes or some other form of cheating (e.g. global reflection) it can be difficult to obtain the name of an actor that is part of an actor configuration. This wouldn't be a problem except that actors pervasively encapsulate state, and ad-hoc extension of applications often requires access to internal state [1], especially to data models represented in that state [2]. Regards, Dave [1] http://awelonblue.wordpress.com/2012/10/21/local-state-is-poison/ [2] http://awelonblue.wordpress.com/2011/06/15/data-model-independence/
_______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc