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

Reply via email to