-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"actors" forward in readme #210
Comments
This set of blog posts IMO further cements the above claim.
Python is not an actor programming language, thus trying to force actor types onto it doesn't necessarily accomplish anything. What's important is whether each actor can,
I'm fairly confident most advanced concurrency people can map the ideas / requirements from that post to functionality in |
Another entertaining example of non-actors in pop culture: Oh boi, even more material:
Can anyone point out what's wrong here? |
I think to prevent having to rehash/explain actor theory each time we get new onlookers there should be a quick rant in the readme under the hood section regarding what the literature, videos, and thus theory author's have to say about what constitutes being an actor model implementation.
This is obviously directly related to #18 which is of course for further involved discourse / research / interpretations of the theory.
The main issue I think we're finding is a lot of onlookers tend to have misconceptions about actor model theory mostly pertaining to this notion that actors are somehow realized as some kind of specific API or type system semantics; this is simply not true.
an "actor model" is a conceptual, computational model; it is specifically not strict about the limitations of an implementation of the system at hand. In fact, arguably most interpretations of the concepts which try to literally implement (usually with the same names) the distinguishing (abstract) elements from the model (eg. messages, ether, everything is an actor, strictly un-buffered channels, mailboxes) are simply misguided and not in line with original authors' intent.
Here are the true and minimal set of caveats:
the actor model came about specifically to cope with a controversial theory that proposes that unbounded non-determinism can exist in real systems.
the only absolute strict requirements for an implementation to be considered an "actor model" are that it must adhere to the 3 axioms:
this can be verified explicitly by Hewitt saying it plain and simple at this point, in this video
concepts from the actor model are more often mapped onto existing systems which can address the issue of UND as opposed to taking the concepts and trying to implement subjective author-perceived semantics literally; this is not what the original author proposes.
Since
tractor
does in fact have the ability to cope with UND (as far as we can tell), and it can suffice the 3 axioms, there is no reason it is not an actor model. We're of course willing to be proven wrong.My hope is we can quell confusion and misconceptions about all of this from the outset so that we can move on with adding more features to the project without getting caught up with superfluous "actor model concept forced semantics mappings" that don't fit with the idiomatics of python and
trio
style structured concurrency.I will say this again, we are not trying to look like what you think an actor model is supposed to look like.
Why?
Maybe you didn't grok the argument presented in the paragraph above?
Assertion: most new onlookers likely have no clue why they think that "actor model" things should look a certain way in the first place; they haven't read the canon literature.
The text was updated successfully, but these errors were encountered: