6 ms·
Probably not a good idea to burden application programmers with having to annotate each message send with whether the receiver is on the current computer or a
by ProfHewitt 5y ago
Probably not a good idea to burden application programmers
with having to annotate each message send with whether the
receiver is on the current computer or another one in a
Citadel.
Since Actors can move between computers in a Citadel, such
annotations are infeasible in practice.
Of course, modularity, security, and performance should not be
ignored.
- eternalban 5y agoThis notion of an agent moving between computers has always been problematic for me to understand. If we accept that an agent ("actor") is a combination of code and state, and that code and state are both reducible to data, then an agent moving between computers is no more noteworthy than saying data moved between computers and that move engendered computation based on and over that data, which is a defined sequence of RPC calls: send code; send data; execute(code, data). What distinguishes an "actor" from passing scripts in RPC calls? I think it is a false conceptual paradigm: "actors" in general conceptual world carry their own processing ("mind") unit. This attribute is not reproducible in software. So, if the Actor Model is in fact reducible to a complex RPC framework, the question remains if we should distinguish between RPC and local PC without throwing ~mystical bits about actors into the question. In any event, I was wrong in my OP about Swift's approach: it is in fact the Waldo approach with distinct treatment of remote ops, except instead of annotations, it is language level support and instead of instrumenting existing code (ala Java byte codes), it is the compiler that writes the boiler plate for the underlying RPCs.