Jump to content

Talk:Actor model/Archive 1

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Archive 1Archive 2

General Discussion

This is the discussion page for the Wikipedia article Actor model.

Although in some sense the Actor model is conceptually very simple, it is also highly technical. There were mistakes made in its development. Unfortunately, as shown in the discussion below, it is still quite possible for those who are not versed in its intricacies to make serious errors.

So it is suggested that changes to this article first be proposed in this discussion page rather than just editing the article. Of course typos, spelling, grammar, etc. should just be corrected as usual.--Carl Hewitt 09:13, 21 November 2005 (UTC)

Interaction with Koffieyahoo

I believe there are a number of problems with the page as it is now:

  • It is biased towards the Actor model being a good thing?

Where in the article does it say that the Actor model is a "good thing"?

While reading the article I get the distinct impression that comparisions are trying to show that the actor model is best. Koffieyahoo 6 July 2005 06:43 (UTC)
For what purpose do you think that the article argues that the Actor model is best?--CarlHewitt 2005 July 6 16:24 (UTC)
Because it is the best your answer will certainly be. Koffieyahoo 6 July 2005 17:54 (UTC)
  • A definition of the actor model is actually lacking from the article
The article states: "Actors are the universal primitives of concurrent digital computation. In response to a message that it receives, an Actor can make local decisions, create more Actors, send more messages, and determine how to respond to the next message received."--CarlHewitt 2005 July 6 16:10 (UTC)
That statement is incomplete, it omits the notions or terms of script, list of acquaintances and that messages are themselves actors. --Blissex
There should be a clear and informal description first and only a abstract definition later. The article should be readable for people with only little knowledge on the subject. Koffieyahoo 6 July 2005 06:43 (UTC)
Good point. It would be good to have a new article "Actor model formalism".--CarlHewitt 2005 July 6 16:10 (UTC)
  • It is unclear for me in which of the references actually deals the Actor model
Some discussion needs to be added to relate a couple of the references.
More than this, is my impression. Koffieyahoo 6 July 2005 06:43 (UTC)
Perhaps there should be a new article "Theories of concurrency".--CarlHewitt 2005 July 6 16:31 (UTC)
Now this is a very good point, as this would allow the move of a stuff you are trying to add all the concurrency pages to one page. However, I would name it Models of concurrency. Koffieyahoo 6 July 2005 17:54 (UTC)
I agree that "models" is probably better.--CarlHewitt 2005 July 6 18:30 (UTC)
  • Atm the page only compares the model with other models, although this should be part of this page it should not be 99% of the page

The page discusses many issues in addition to comparing with other models.

Hence, the page should be structured better. Koffieyahoo 6 July 2005 06:43 (UTC)
  • Please clarify how this model was inspired by the laws of physics
The laws of physics were definitely an inspiration for the Actor model; see for example the laws for Actor systems and Clinger's dissertation.
I'll repeat the missing link to the laws of locality by Carl Hewitt (the real one) that shows that they don't look at all like physical laws, except in the parody of calling them laws. --Blissex
That is not enough, please give some hints in the article, or omit is altogether. Koffieyahoo 6 July 2005 06:43 (UTC)
The article also talks about indeterminacy in physics. What areas would you like to see expanded?--CarlHewitt 2005 July 6 16:24 (UTC)
  • How does the actor model relate to agent systems?
Agent systems tend to have a psychological basis as in the Belief Desire Intention model. Actors tend more to a anthropological, sociological, organizational, and philosophy of science basis as in the Scientific Community Metaphor.
This is just one view of agents. In another view agents are just pieces of code to can move from machine to machine and that can activate other pieces of code. 6 July 2005 06:43 (UTC)
I added Agent to the See Also section.--CarlHewitt 2005 July 6 16:32 (UTC)
You're not answering the question. Koffieyahoo 13:59, 13 July 2005 (UTC)

I have just fixed (Blissex, 050705) some of the most glaring problems with this page, for example:

  • adding a good if brief and informal definition of Actor system;
The new definition needs to made a further specification of the original definition.
  • removed the utterly misleading link to SOAP, which is just an RPC mechanism;
If you read the SOAP reference, you will discover that it specifies a general message passing communication mechanism, not just RPC.
No SOAP is just an RPC mechanism based on HTTP and XML. Koffieyahoo 6 July 2005 06:43 (UTC)
You might be interested in reading some of the literature on SOAP including the specification in the reference to which you are objecting. SOAP is explicitly not restricted to using HTTP as a transport.--CarlHewitt 2005 July 6 16:24 (UTC)
But it is still an RPC mechanism based on XML, so I don't see your point. Koffieyahoo 6 July 2005 17:54 (UTC)
SOAP includes one-way messages and other non RPC capabilities.--CarlHewitt 2005 July 6 18:09 (UTC)
I can do one way messages with any RPC mechanism, so I don't see your point. Koffieyahoo 6 July 2005 18:16 (UTC)
I reckon that this CarlHewitt impersonator is trying to argue that any form of message sending or concurrency is in effect the Actor model (and viceversa). --Blissex
  • added the reasons why Actor model systems and languages have not become popular;
It is important to distinguish between the abstract Actor model mathematical theory and various uses and implementations.
Please separate these two things then, but deal with them both. Koffieyahoo 6 July 2005 06:43 (UTC)
It would be good to have a new article "Actor model implementations".--CarlHewitt 2005 July 6 16:24 (UTC)
I don't believe that something like that can be something more than a list of external links. So, no. Koffieyahoo 6 July 2005 17:54 (UTC)
Actually there is a lot to say on this subject.--CarlHewitt 2005 July 6 18:09 (UTC)
And now we have finally reached the core of the problem: wikipedia is not a discussion forum, it's a encyclopedia. If there is discussion on some topic you can, no, you must, say something about that, but it should not dominate the articles. Koffieyahoo 6 July 2005 18:16 (UTC)
Actually what there is to say is that a lot of work has been published on the subject (and not by me!) which could usefully contribute to an encyclopedia article.--CarlHewitt 2005 July 6 18:30 (UTC)
The laws of physics were definitely an inspiration; see for example the laws for Actor systems and Clinger's dissertation.

There are many other fixes that remain to do in the rest of of the page, like the pointless mentions of Java or C# which are not even remotely related.

There are currently two common use cases for the Actor model: Web Services and concurrent programming languages like Java and C#.
This is one of the most glaring absurdities I have read in a long time: how do you square that Actor systems have only local state and support fine grained parallelism with Java and C# having global state and heavyweight threads? Never mind that Java and C# are primarily based on function calls, not message sending, for computation, and that when they send each other data that cannot be an Actor, which is required by the Actor model. --Blissex
It can also be argued that Web services form just a message passing system, so your claim should be substantiated. Koffieyahoo 6 July 2005 06:46 (UTC)
And not every message passing system is an Actor system. --Blissex

I also suspect that the CarlHewitt that has been been doing some edits is a case of mistaken identity :-).

Just whose identity do you suppose is mistaken? User talk:CarlHewitt = Carl Hewitt!
Well, some of the text seems to me poorly written and contains some absurdities and irrelevancies (never mind the lack of use of fundamental terms like acquaintance or script or society) and that makes me suspect that the real Carl Hewitt is not even an acquaintance :-).
Some online Actor pages that present a rather different view of Actors than the one presented in this page:
--Blissex

Thanks for your comments. There is not doubt that the text could stand improvement! It is true that the history in this article, like all histories, is somewhat of an idealization.

To me it looks like a betrayal and an attempt to belittle an important if little known part of the research on computational systems. Linking the Actor model with SOAP, Java, and C# (instead of ACT-1 for example) just invites ridicule, if only because of the glaring contradiction with the no global state principle of the Actor model. --Blissex

It only covers the essential points that have stood the test of time. In this respect it is akin to the history of the early days of quantum theory. Many twists, turns, and false starts are omitted. But maybe this is as it should be in a brief encyclopedia article.--CarlHewitt 2005 July 6 02:49 (UTC)

Do you mean that no global state and fine grained concurrency and asynchronous message/actor sending have not stood the test of time and that therefore any IPC tranport, like SOAP, and any programming language with IPC and concurrency, even Java or C#, are based on your new millennium's Actor model?
And if so, what's the point? The Actor model as described in the works of Hewitt, Lieberman, Baker, and all the others, was a really interesting and distinctive branch of research for which widespread adoption may yet come. But yet another theory of IPC and concurrency that covers banalities like SOAP, Java or C# looks much less valuable to me, that's why I say a betrayal and an attempt to belittle. --Blissex

Relationship to process calculi

Can you make clear to me why the actor model is not a process calculus? As it seems to me to have very stong connections to the Ambients, which are a process calculus. Koffieyahoo 8 July 2005 09:46 (UTC)

Please see the article Actor model and process calculi--Carl Hewitt 21:09, 11 July 2005 (UTC)

You're not answering my question. I don't see any reference to ambients on the page you mention. -- Koffieyahoo 12:59, 13 July 2005 (UTC)
It's in the "Migration" section.--Carl Hewitt 14:50, 13 July 2005 (UTC)

AFAICS, the actor model is not a process calculus because a calculus in this sense is a single language (with syntax and intended semantics), whereas the actor model is a computational model that is defined axiomatically (by the actor laws). Any language that satisfies those laws is an actor language; which programming constructs it supports is a secondary issue. Each process calculus, on the other hand, is primarily defined by the constructs that it supports. DavidHopwood 01:51, 9 March 2006 (UTC)

Incidentally, actors is even closer to the Join calculus, which is essentially a reinvention of it -- except that the join calculus is also a language rather than an axiomatically defined computation model. DavidHopwood 01:59, 9 March 2006 (UTC)

Parts moved to new articles

Please note that parts of this article have been moved to Actor model, mathematical logic, and physics and Actor model and process calculi.--Carl Hewitt 9 July 2005 05:02 (UTC)

Interaction with Blissex

I've just been looking over your edits, and I'm pretty sure you are the distinguished researcher I thought you might be: a big welcome to Wikipedia.

I guess that's ill-founded, as several of things written in the Actor model pages are utterly ridiculous (e.g. Java systems being Actor systems), there have been glaring omissions (e.g. even the terms acquaintance and script) and the real Carl Hewitt (I hope) would know better, never mind the crank-style references to quantum physics.
I have tried to add some of the missing bits and fix the most obvious absurdities, but all my changes were reverted willy-nilly. So I re-added some of them under Alternative view.
My impression is that most of what CarlHewitt writes is a poor assemblage of half digested cut-and-paste jobs, which might indicate an undergraduate or postgrad doing some dissertation and having a laugh.
The other possibility is that the real Carl Hewitt is retroactively trying to redefine much of his research in order to claim after-the-fact victory (because unfortunately much of his research as originally defined has had zero impact on the so called real world, which has gone down a rather worse path), and he should not get away with it.
Another possibility is that this is the work of BarbaraLiskov under a CarlHewitt persona, as an ironical joke, as a case can be made that almost all concurrent languages today, and in particular Java and C#, are (regrettably perhaps) fairly similar to CLU and its underlying model of concurrency, while having essentially no relationship to the Actor model. Only half-joking here... :-)
--Blissex
Unfortunately Blissex you have it all wrong.
It is very easy to just go I-say-so. Even when obvious, ridiculous internal contradictions (e.g., no-global-state, good, but then Java and C#, which have it), never mind the contradictions with the published works of Hewitt and Lieberman and others, which I have extensively referenced. --Blissex
I suggest that you start your own article with your own personal "Alternative view".
It is not personal, it is taken straight from the original sources. For example Lieberman's quite canonical ACT-1 paper contains the use of the terminology and the concepts I have reported (When a message is received, the script of the target of the message is given control., The acquaintances of an actor are the local data, or variables associated with each actor.), the mention of the society of agents as metaphor (Actors meet the requirements for organizing programs as societies), the notion that every entity in the actor model is an actor (Everything, including procedures and data, is uniformly represented by actors), and Hewitt's own laws of locality show clearly they are not modeled after physical laws, but involve event chains in fine granularity, highly concurrent, no global state systems.
I suggest that you start your own article with your own personal "Alternative view". I have reverted your edits so that you can get started doing this. If you would like to continue editing Actor model, I suggest that you put your suggested changes on this discussion page first and not just change the article.--Carl Hewitt 17:43, 10 July 2005 (UTC)
The usual I-say-so attitude, a bit different here from the one in Talk:Lambda_calculus: The accepted practice on the Wikipedia is that if you disagree with something in the text is as follows: maintain a neutral point of view by laying out the arguments for and against instead of imposing your own point of view by simply reverting anything that you disagree with.--CarlHewitt 2005 July 6 15:34 (UTC) --Blissex
Also please learn how to create an account for yourself, log in, and sign your comments.--Carl Hewitt 17:37, 10 July 2005 (UTC)

NCapitalisation of "actor"

(I'd fix this myself, but it seems to be under heavy edit). The article capitalises lots of terms which should be lower case. Stuff that is a proper name, or is derived from one (e.g. Turing machine and Lisp) should be capitalised. Stuff that isn't should be lower case (e.g. lambda calculus, web services, actor model). -- Finlay McWalter | Talk 19:43, July 10, 2005 (UTC)

Good point. However there is a convention to use "Actor" for the entity defined in the model to distinguish it from a generic "actor".--Carl Hewitt 20:08, 10 July 2005 (UTC)

Okay. That fact is worthy of a footnote. -- Finlay McWalter | Talk 20:14, July 10, 2005 (UTC)
But Lieberman himself uses actor lowercase everywhere. How is it possible that he ignores the convention? -- Blissex
It's not used everywhere but I think that it helps.--Carl Hewitt 21:09, 12 July 2005 (UTC)
Thanks for a proper argument (first one? :->). I can see your preference has a point; but I prefer, like I see in most/many papers, to capitalize Actor model because it is proper name, but to leave actor lower case, because in the context of a discussion on the Actor model it is clear it is a context dependent term-of-art and thus understood to mean something else than a live/screen performer. A bit like anchor in HTML, where it is obvious one is not using it in its maritime sense. --Blissex
Good point. However, in animation it is common to use both senses at the same time, e.g., see the disseration of Ken Kahn.--Carl Hewitt 14:38, 13 July 2005 (UTC)
Other publications may use different styling conventions. According to the Wikipedia:Manual of Style, this use of "actor" should not be capitalized. -Pgan002 03:37, 12 February 2007 (UTC)

Lambda calculus is purely functional

The article currently states lambda calculus is state based.

The first models of computation (e.g.. Turing machines, Post productions, the lambda calculus, etc.) were based on mathematics and made use of a global state to represent a computational step. Then models were developed based on computers, the so-called von Neumann machines. Computational models were developed in automata theory for finite state machines and push down stack machines including their nondeterministic versions.

This, I think, is incorrect under normal interpretations. Though "implementations" of lambda calculus (e.g. the Scheme programming language) are not stateless, (e.g. define changes the global environment), there is no global environmnent in pure lambda calculus. One significant fact about the Church-Turing thesis is precisely that equal computational power is obtained by a stateful model (e.g. Turing machines) and stateless ones (e.g. lambda calculus).--CSTAR 19:59, 10 July 2005 (UTC)

Good point. I am editing the article to clarify.--Carl Hewitt 20:09, 10 July 2005 (UTC)

  • Does anybody reckon that the real Carl Hewitt would for a second forget that the lambda calculus is purely functional? And consider the other comical inanity: The lambda calculus of Alonzo Church can be viewed as the earliest message passing programming language.; in which two absurdities are contained, that the lambda calculus is a programming language, and that if it were it would be based on message passing. --Blissex
What is this, a conspiracy theory?--CSTAR 20:09, 12 July 2005 (UTC)
No, just pointing out glaring inconsistencies between what someone claims to be and what is written. Someone who had really done decades of research on lambda calculus and research on models of computation would find it hard to make such undergraduate level howlers beven by distraction. --Blissex
Note also that there has been no clarification as the page still says (e.g.. Turing machines, Post productions, the lambda calculus, etc.) were based on mathematics and made use of a global state, which as CSTAR pointed out is quite absurd... --Blissex
Actually it reads "The first models of computation (e.g.. Turing machines, Post productions, the lambda calculus, etc.) were based on mathematics and made use of a global state to represent a computational step. Each computational step was from one global state of the computation to the next global state. The global state approach was continued in automata theory for finite state machines and push down stack machines including their nondeterministic versions."--Carl Hewitt 21:12, 12 July 2005 (UTC)
There was no point in requoting the whole paragraph, as CSTAR had already a long quote at the start. As to the emphasis on step, do you really think that both the Turing and the lambda models have computational steps involving a global state? That could be an interesting discovery... :-) I suspect that there might be some approximate sense in what you say if global state really means simultaneous evaluation/reduction for the lambda calculus, and that would be a property of the evaluator, more than of the model of computation. --Blissex.
A computational step in the lambda calculus is an application of a lambda reduction rule. It's thus possible to "think" of the lambda calculus as a labelled transition system wher the labels are lambda terms and transitions are reduction rules. Strictly speaking this LTS is not the lambda calculus but in some more or less obvious sense is equivalent to it.--CSTAR 13:17, 13 July 2005 (UTC)
But it is possible to think of the lambda calculus is very many ways, which as you point out are more or less equivalent to it. And to me it is quite misleading to describe both Turing machines and lambda calculus as having a global state and a computational step in the same way. --Blissex
Thanks for your comment CSTAR. The paragraph as it stands is accurate about the mathematics of these systems being defined in terms of a global computational step. As discussed in the article, it is a difficult problem mathematically to proceed in any other way. How someone might think about the lambda calculus is an entirely different matter.--Carl Hewitt 13:59, 13 July 2005 (UTC)
Now you are changing your position: what you wrote is global state, not global computational step. What is the global state in a Turing machine is pretty obvious, the read/write tape, but please let's hear what kind of read/write thing is present in the lambda calculus... --Blissex
Read Church's paper.--Carl Hewitt 16:51, 15 July 2005 (UTC)

I created articles Actor model theory and Actor model implementation for these specialized subtopics.--Carl Hewitt 20:15, 12 July 2005 (UTC)

  • But so far you have discussed practically nothing, as in providing argument and evidence for a very slanted view of a rather respectable field of research. Just about the only discussion you have done is to vandalize the page, for example removing the list of online resources I had provided (perhaps jsut because they contradict directly what you are writing). --Blissex

More from Blissex

  • Since I am getting a bit bored about the waste of time discussing with a persona that seems to refuse to provide arguments instead of arrogant and ignorant I say-so I have had a dip in one of my boxes for old papers I keep about the Actor model and related work at MIT AI and here is the earliest Actor model description I could find, which I photocopied about twenty five years ago (it is a bit faded), a survey of the Planner/Plasma/Actor model research from the MIT LCS.
From the page of references, the last of which is dated 1976, this introduction was probably published in early 1976 (there is a paper in the references, An Actor-based Computer Animation Language, which is given as in progress but was published in 1976). It is pretty obvious that the CarlHewitt persona has never seen this introductory, authentic, from the source, reference, or anything remotely similar; it also pretty obvious that this reference is consistent with Lieberman's introduction and with my own definitions and writings, but of course please check for yourselves how well these authentic source document match.
This shows very clearly that the Actor model design is based foremostly on a society of cooperating agents metaphor, rather than physics, the canonical use of terminology like script and acquaintance, that the definition of Actor I have given is much closer to the original than the other; I also note that the CarlHewitt persona has omitted any mention of PLASMA, which instead would be very familiar indeed to the real Carl Hewitt.
I also found together with that paper a 1979 printout I made of the 1972 SAIL MicroPlanner documentation (I think I still have the sources somewhere), of which I have scanned in pages 01 and 02; perhaps to reinforce the point that maybe unlike some other people I have had and I have familiarty with original documents on or related to the Actor model (MicroPlanner is not quite an Actor language). Enough I think...

--Blissex

  • Well, not enough, I also found accidentally my copy of Carl Hewitt's (the real one), Attardi's and Baker's paper on Guardians, and here are some pages:
Two notes: in these pages the word actor is always lower case, and in the ancestry of PLASMA (page 28), SIMULA is credited with ideas on modularity, but message passing is credited to Alan Kay (strangely, because message passing was already at the time already known as a term to network people; but then Alan Kay's message passing had a twist). --Blissex
  • Well, a bit more still... These are pages from History of Programming Languages, the section on Lisp, which summarizes the Actor model story from a Lisp perspective (quite legitimately of course):
  • page 294,
  • page 295 Actor transmission is entirely free of side effects... (square that with Java and C# :->),
  • page 296.
Note that I don't agree entirely with all that is said in these scans, but I hope they give enough of a context for people to appreciate the difference between I-say-so attitudes and my own opinions. --Blissex
Later papers show a remarkable continuity of terminology and concepts, for example the Agha etc. paper from 1993 shows clearly that the understanding and terminology of the Actor model that I have summarized is accurate:

1.2. The Actor Model of Computation
In this subsection we discuss the principles underlying the actor model of computation, compare it to other models, and illustrate programming in our actor language. See [1] for more discussion of the actor model, and for many examples of programming using them.

1.2.1. The Actor Philosophy
The early work on Actors [12, 13, 14, 3, 4, 5, 16, 17] proposed some fundamental principles:
* Every object is an actor; this includes messages and numbers.
* No actor can be operated on, looked at, taken apart or modified in anyway except by sending a message to that actor requesting it perform the operation itself.
* The only thing that happens in an actor system is an event, which consists of an actor receiving a message.
* An actor can send many messages at the same time but can only receive them one at a time. In other words the arrival order is linear; while the structure of events is only partially ordered by the notion of one event preceding another.
* Actors have a set of acquaintances, other actors it knows about and can send messages to. This set can increase in time since the actor may create new acquaintances, and it may also hear about them in messages it receives. These are the only ways the set of acquaintances can increase.

The key features of actor based computation, that have evolved from these guiding principles are:
* Message passing is fundamental.
* Mail delivery is guaranteed, i.e. fairness.
* There is arrival-order non-determinism in message delivery.
* Actors are history sensitive shared objects.
* Resource allocation and interconnection topology are dynamic.

--Blissex

Interaction with User talk:82.69.39.138 aka Blissex

Blissex (User talk:82.69.39.138) who wrote the sections below should read the references in Actor model theory and Actor model implementation.--Carl Hewitt 20:46, 12 July 2005 (UTC)

  • I am trying to discuss the contents of the ActorModel page, like the definition of actor, and you are still refusing to do so.
Please read yourself any readily available references, like my the scans of original papers on the actor model that I have provided, or at least Lieberman's introduction, which I continue to cite because it is simple, clear, unimpeachably authentic, and accessible even to undergraduate level readers. -- Blissex.
  • Now you have responded to some points (e.g. on capitalization), still in a I-say-so way, just like Unfortunately Blissex you have it all wrong. Note that unlike you I have provided extensive references, scans from original documents, verbatim quotes from very well known researchers (Lieberman, Dahl) in support.
So your claims that some discussion is needed before any updates are made to the comical betrayal of Actor model research currently in the Actor model page sound just quite dishonest to me. Discussion means providing counterarguments, not I-say-so inanities, or nothing at all. --Blissex
  • it is amazing that you have even removed the list of references to online resources on the Actor model that I have provided (presumably because they allow easy checking that what you write is ridiculous in so many ways), and that is indeed vandalism, and you have removed the numerous other references and quotes I have provided, and that is vandalism too. --Blissex

Additions and clarifications by Blissex, which were forcibly removed by the CarlHewitt persona

Check for yourself if these snippets are in any way improper or uniformative, or even remotely critical of the Actor model (I am actually somewhat biased in its favour):

Definition of actor and terminology for the Actor model

This discussion belongs in Actor model theory--Carl Hewitt 02:37, 13 July 2005 (UTC)

  • This is just a dishonest way of avoiding discussion, because the definition of Actor is in Actor model. --Blissex

Alternative definition
An actor is defined as an entity that has an identity, a list of the identities of some other actors that are its acquaintances, and a script that is executed to examine each (free form) message received from any acquaintance, and that can create a replacement for itself with a new list of acquantainces and/or send messages to the acquaintances. Messages are themselves actors, just as everything else in the Actor model is an actor.
Since the state of an actor is its list of acquantainces and that is unmodifiable and actors execute their scripts independently, the Actor model implies potentially very high degree of very fine grain concurrent execution, as the only serialization constraint is the wait for the arrival of an incoming message, and there is no global state, as the laws of locality describe.

This discussion belongs in Actor model implementation--Carl Hewitt 02:39, 13 July 2005 (UTC)

This is just a dishonest way of avoiding discussion, because the definition of Actor is in Actor model. --Blissex
The paragraph below discusses implementations.--Carl Hewitt 14:54, 13 July 2005 (UTC)
Then if you had a moment of honesty you would have already moved your offending paragraph I am providing another point of view on, The keys to practical success with the Actor model are specialization for functionality and optimization for performance. Currently the most common use cases are through Web Services (using SOAP) and concurrent programming languages (e.g. Java and C#). from the Actor_model page to the Actor model implementation one.
Or do the rules you make never apply to yourself, like the one in the Talk:Lambda_calculus: The accepted practice on the Wikipedia is that if you disagree with something in the text is as follows: maintain a neutral point of view by laying out the arguments for and against instead of imposing your own point of view by simply reverting anything that you disagree with.--CarlHewitt 2005 July 6 15:34 (UTC) which you so shrewdly did not apply to Actor model. --Blissex

Alternative view
Java and C# have nothing to do with the Actor model, because they have global state and their computational model is based on procedure calls and heavy weight threads, not asynchronous message copying and fine grained concurrency. SOAP is just an IPC mechanism based on HTTP and XML and while it can be used to send messages then just about any IPC mechanism can, and this does not make them all Actor model implementations (or use cases whatever that means here).
Conversely, the description of ACT-1 gives an example of a language that is authentically inspired by the Actor model, and SALSA is a derivative of Java with Actor model inspired extensions.
With some stretch of the imagination programs running on massively parallel clusters and using message passing libraries like PVM or MPI might be considered to be societies of actors engaged in actor model-like computations, with some important limitations and at a much coarser level of granularity.

Online resources


The above link is dead.--Carl Hewitt 14:42, 14 July 2005 (UTC)
The above link is not authoritative because there are errors and currently there is no public way to edit to correct these errors.--Carl Hewitt 14:48, 14 July 2005 (UTC)
The papers in the reference section should be given live links.--Carl Hewitt 15:44, 14 July 2005 (UTC)
The above link is to old implementations that should be discussed in Actor model implementation.--Carl Hewitt 15:47, 14 July 2005 (UTC)
The above link is to an old paper that is in the reference section. See also Act-2 and Act-3.--Carl Hewitt 15:31, 14 July 2005 (UTC)
  • SALSA, an Actor-like language that looks like Java, but is not Java as Java is not an Actor language.
This belongs in Actor model implementation The work was performed at University of Illinois Open Systems Laboratory referenced at the beginning of the article.

A note on something funny in the Actor_model#Reference list of references in the Actor model page, which is entirely textual: so far I have been the only one to provide any links to the quite vast number of Actor documents online (which are easily found too), so that anybody may check from the sources materials. The CarlHewitt persona has instead just been waving hands should read the references, and has ignored the many verbatim quotes from original papers I have made that contradict his claims. Even worse, s/he has removed this list of online references I had provided, which contains most of those should read the references.

The papers in the reference section should be given live links.--Carl Hewitt 15:50, 14 July 2005 (UTC)

Very peculiar indeed; also because many if not most computer science research people carefully keep online repositories and link lists of their own work, for example Lieberman and Baker.

An alternative is to contribute to the Wikipedia;-)--Carl Hewitt 14:41, 14 July 2005 (UTC)

The influence and popularity of the Actor model

This discussion belongs in Actor model implementation--Carl Hewitt 02:42, 13 July 2005

This is just a dishonest way of avoiding discussion, because the relevant paragraph is in Actor_model#Prospects_for_the_Actor_model. --Blissex (UTC)
The Actor model article is already too long. Detailed discussion as in the paragraphs below should be in Actor model implementation and Actor model theory.--Carl Hewitt 14:58, 13 July 2005 (UTC)
If it is already too long, and if you had a moment of honesty, you would have already moved your own Actor_model#Prospects_for_the_Actor_model section to one of those pages. --Blissex

While the Actor model has been very influential in research on concurrent systems and its formalization (arguably the CSP model is inspire by it), there are currently no Actor model based languages or systems in widespread use, in part because fine grained highly concurrent computations do not map well onto most current computers.

This model of computation maps well onto fine grained massively parallel, NUMA or distributed computer systems, because there is no global state, and maximum concurrency is allowed in the message passing patterns thanks to the laws of locality. The Actor model may be regarded as at the opposite end of the spectrum from the Tuple spaces model of computation used in the Linda programming language.

The motivation for the Actor model was in part as a formal model, and in part arising from Carl Hewitt's vision that a possible evolutionary path of computer systems was as chips and boxes containing very large numbers of simple general purpose processors.

Therefore part of the research on Actor model implementation involved for example concept like greedy, speculative execution (futures), and the consequent need for garbage collection of processes.

However, so far the dominant evolutionary path of computer systems has been towards even more complex and faster single processor systems for which the more conventional procedural model of computation is more suitable.

But on the 40th anniversary of the publication of Moore's Law, hardware development is starting to hit limits with the single processor system model, and is going towards both local and nonlocal massive concurrency.

[ ... ]

All of the above developments favor the Actor model, or at least systems that might be considered inspired by it such as massively parallel cluster systems using message passing libraries like PVM or MPI, which might be considered to be societies of actors engaged in actor computations, with some important limitations with respect to the full Actor model and at a much coarser level of granularity.


Some of the same concepts are expressed in Clinger's thesis on page 24:

The actor model is perhaps best motivated by the prospect of highly parallel computing machines consisting of dozens, hundreds or even thousands of independent monoprocessors, each with its own memory and communications processor, communicating vias a high performance communications network in a system much like the computer networks now coming in widespread use.

also a little below on the same page:

The primitive objects of the simplified model are events and actors. The actors represent computational agents. In the idealization suggested above, an actor may be though of as a program that has been given its own very processor on which to run. An event represents the arrival of a message at a target actor.

and of course this tallies very well with the attitude in the paper on garbage collection of processes.

On SIMULA not having message passing


Alternative view
SIMULA has no message passing whatsoever. If you think otherwise, try to find a single SIMULA language primitive that allows sending or receiving messages. There are some event queing facilities in the discrete simulation libraries written in SIMULA, but these have been there in every simulation library, and do not even conceptually amount to message passing.

The virtual methods in Simula are generally considered to implement a message passing metaphor and were the inspiration for message passing in Smalltalk.--Carl Hewitt 01:30, 13 July 2005 (UTC)
But that does not allow sending or receiving of messages, because calling virtual: procedures/labels/switches has nothing to do with sending or receiving.
Perhaps it may be generally considered (still I-say-so, but in this this I agree that many make this mistake) so by ignoramuses that haven't figured out yet that they are just semi-dynamically dispatched function calls (or control transfers), just like in C++, Ada, CLOS, Java, and C#, and by those unaware that there is not one language called Smalltalk, but a series of languages, of which the first few had very different semantics from the latter few: while the first were based on something quite different from a dynamically dispatched function call paradigm, but on another one that indeed inspired the Actor's model message passing, Smalltalk-76 and later languages reverted back to conventional dynamically dispatched function calls. Consider this scan pf page 28 of (the real) Carl Hewitt's paper on Actor model guardians, in which he (correctly) credits SIMULA for modularity but Alan Kay for message passing.
In more detail, as to virtual: in SIMULA, Dahl, one of the very authors of SIMULA in his 2001 paper on the birth of OO, an original source, not a I-say-so, states clarly and unambiguously that it is about a semi-dynamic procedure call/dispatch mechanism:

It is fair to say that Simula 67 invites to bottom up program design, especially through the possibility of separate compilation of classes. As a last minute extension, however, we introduced a top down oriented mechanism through a concept of "virtual procedures".


In general attribute identifiers may be redeclared in subclasses, as is the case of inner blocks. The identity of an attribute is determined by the prefix level of the accessing occurrence, or, if the access is remote, by the class qualifying the object reference in question. In this way any ambiguity of identifier binding is resolved textually, i.e at compile time; we call it static binding.
On the other hand, if a procedure P is specified as virtual in a class C the binding scheme is semi-dynamic. Any call for P occurring in C or in any subclass of C will bind to that declaration of P which occurs at the innermost prefix level of the actual object containing such a declaration (and similarly for remote accesses). Thus, the body of the procedure P may, at the prefix level of C , be postponed to occur in any subclass of C . It may even be replaced by more appropriate ones in further subclasses.
This binding scheme is dynamic in the sense that it depends on the class membership of the actual object. But there is nevertheless a degree of compiler control; the access can be implemented as indirect through a table produced by the compiler for C and for each of its subclasses.

In more detail as to the evolution of the semantics of the Smalltalk-xx languages, some more scans from the original documents. In Smalltalk-80: Bits of History, Words of Advice, an original source (not a I-say-so), it is fairly clear (page 11, page 12, page 13) that the original Smalltalk-72 semantics and syntax were based on a token stream model, which is what inspired (the real) Carl Hewitt to base the Actor model on entities with scripts to examine and react to a stream of incoming messages (themselves actors of course). Note also the somewhat similar role of the eye operator in Smalltalk-72 and => in PLASMA.
But in later versions of Smalltalk-xx both the syntax and the semantics were switched back to be the same as dynamically dispatched procedure calls (for the reason given in those pages, which I would paraphrase as excessive locality); this is clearly (but belatedly) stated in page 575 scanned from Smalltalk-80: The Language and its Implementation, but unfortunately the message passing stream terminology was retained in the main, engendering endless confusion in the naive (and regrettably sometimes even in those that should know better) that don't know that early Smalltalk-xx languages were based on a rather different and less conventional semantics than more recent (and popular) ones.

You have some good points. I have updated the discussion in the article.--Carl Hewitt 19:14, 14 July 2005 (UTC)

Lambda calculus and message passing

The following statement definitely needs further clarification (if it indeed is true):

The lambda calculus of Alonzo Church can be viewed as the earliest message passing programming language.

I am willing to admit that the lambda calculus can be viewed as a labelled transition system (see my note above) but this statement about the pure lambda calculus message passing does seem mysterious. Again, I'll shut up if somebody explains this to me, since I am not expert (although I know enough about it to have an intelligent convesation) --CSTAR 16:44, 14 July 2005 (UTC)

Good question. See what you think of the explanatory material that I have inserted.--Carl Hewitt 20:09, 14 July 2005 (UTC)

Now, what has sharing to do with message passing? -- Koffieyahoo 13:04, 15 July 2005 (UTC)

The article states:

"The lambda calculus of Alonzo Church can be viewed as the earliest message passing programming language. For example the lambda expression below implements a tree data structure when supplied with parameters for a leftSubTree and rightSubTree. When such a tree is given a parameter message "getLeft", it returns leftSubTree and likewise when given the message "getRight" it returns rightSubTree.
 λ(leftSubTree,rightSubTree)
   λ(message)
     if (message == "getLeft") then leftSubTree
     else if (message == "getRight") then rightSubTree

Now it should not be too hard to see that "getLeft" and "getRight" are being used as messages in the above example.

Regards,--Carl Hewitt 07:00, 22 November 2005 (UTC)

Improving the Reference section

The most helpful way to improve the Reference section would be for someone to make each reference live so that clicking on it would take you to a online version of the referenced work.

Secondarily it would help if the references were put in Wikipedia standard form.--Carl Hewitt 18:11, 15 July 2005 (UTC)

Continuity

I have a question on some recently added material: ``Baker and Hewitt used the Actor laws to prove the continuity criterion for computable functions of Dana Scott. I wonder, how can you prove this? Continuity is just some definition, so there seems awfully little to prove. -- Koffieyahoo 09:56, 23 August 2005 (UTC)

Please see
  • Carl Hewitt and Henry Baker Actors and Continuous Functionals Proceeding of IFIP Working Conference on Formal Description of Programming Concepts. August 1-5, 1977.
--Carl Hewitt 13:14, 23 August 2005 (UTC)
Is that available online somewhere? My local library doesn't have it. -- Koffieyahoo 14:59, 23 August 2005 (UTC)
http://www.lcs.mit.edu/specpub.php?id=762 DavidHopwood 02:30, 9 March 2006 (UTC)
Also, given my question, I think this requires some elaboration in the article. -- Koffieyahoo 15:05, 23 August 2005 (UTC)
I do have some comments on that also: Dana Scott's construction of a model for the lambda calculus was somewhat unnatural (compared say to models involving posets) but I seem to recall that he did show that application was jointly continuous (I don't have the [paper in front of me though) and I guess continuity of the least fixed point functional. Strachey at about the same time of Baker Hewitt gave lectures which were later written up as an MIT Press book, where continuity does play a role (and again continuity of application). What exactly are you saying by that entry --- you were the first to prove continuity of computable functions? --CSTAR 15:17, 23 August 2005 (UTC)
to prove continuity of computable functions since the lambda calculus can be identified with the computable functions, I would say that Dana Scott already proved this. -- Koffieyahoo 15:30, 23 August 2005 (UTC)
Hewitt and Baker proved continuity from the laws of the Actor model, not from the lambda calculus.--Carl Hewitt 21:55, 23 August 2005 (UTC)
OK, that's reasonable.--CSTAR 22:11, 23 August 2005 (UTC)
So, should I read the statement as: given the domain theoretical interpretation of the laws of the Actor model, continuity is implied for all functions definable in the model (and these functions turn out to be precisely the computable functions)? -- Koffieyahoo 08:58, 24 August 2005 (UTC)
The actual statement is that that any Actor that behaves like a function is continuous in the sense defined by Dana Scott. Futhermore lambda expressions can be modeled as Actors.--Carl Hewitt 12:58, 24 August 2005 (UTC)
Right, can you put in any Actor that behaves etc., becuase that's much clearer than the current text. -- Koffieyahoo 13:05, 24 August 2005 (UTC)

Miscategorication?

Hi, Carl, it seems that at 18:21 on 12 September 2005 you added Category:General relativity. I assume that was a typo so removed it.---CH (talk) 03:00, 14 September 2005 (UTC)

Thanks for look out. It's not a miscategorization. I clarified the article and restored categorization.--Carl Hewitt 07:25, 14 September 2005 (UTC)
Carl, you wrote it differs from previous models of computation in that the Actor model was inspired by the laws of physics (physical laws) especially quantum physics and general relativity. This link might exist in your mind, but I don't see it. I have removed the category. See WikiProject GTR draft policy statement for more information.---CH (talk) 22:11, 14 September 2005 (UTC)
The article actually says
"The Actor model was influenced by Lisp, Simula, capability-based systems, packet switching and early versions of Smalltalk. It differs from previous models of computation in that the Actor model was inspired by the laws of physics (physical laws) especially quantum physics (see Actor model, mathematical logic, and quantum physics) and general relativity (see Actor model history).
So the link is in the article; not just in my mind;-)
Consequently I have restored the categorization.--Carl Hewitt 02:25, 15 September 2005 (UTC)
I have to agree with User:Hillman here. To say the actor model is influenced by GR and QM is one thing but categorizing it as GR or QM is really a stretch. For example, Lamport clocks as far as I know are influenced by GR, but categorizing that subject under the rubric GR seems absurd to me. --CSTAR 02:40, 15 September 2005 (UTC)
As another GR editor, I also see this article as not belonging in category:general relativity. That cateogry is for items directly related to GR theory itself. It is nice to see GR being referenced here, but your desired category placement is akin to placing Washington, D.C. into category:China because Washington and Beijing are sister cities. --EMS | Talk 03:54, 15 September 2005 (UTC)

Hi again, Carl, I put links to the articles general relativity and quantum physics in the see also section. Would this be an acceptable compromise to you? After reading the article again, I have to say I still don't see the connection. Perhaps in future you can elaborate a bit on exactly what you think the connection is. TIA--CH (talk) 04:06, 15 September 2005 (UTC)

The see also is good. At the suggestion of another editor (see elsewhere in this article), I have created subcategories. See what you think.--Carl Hewitt 07:52, 15 September 2005 (UTC)
The new category Relativistic Information Science stinks. The clock timing issues have nothing to do with relativity! Computers cycles are not controlled with atomic clocks!!! Instead the internal clock rates for computers differ due to mechanical differences between the clocks due to differences in manufacture, environment and treatment of the equipment. At the least I challenge you to produce for me a study that shows that the internal clocks of computers run slower only on the lower floors of the same building and do so by an amount of 1 part in 1016 per meter of elevation as called for by general relativity. I can tell you right now that there are a lot of physicists who would love to know about it if you can. --EMS | Talk 15:07, 15 September 2005 (UTC)
:Do you think that we don't put computers in satellites? Also do you believe Moore's law? See Category talk:Relativistic Information Science 20:07, 15 September 2005 (UTC)

Carl, what subcategories did you create? I am glad that you find the "see also" suggestion acceptable for links out of your articles to gtr articles or whatever. As for clocks in satellites, no-one here (I suspect not even you) knows what you are trying to imply about the dubious alleged relationship between GPS and actor model. ---CH (talk) 00:52, 18 September 2005 (UTC)

Pseudoscience

Based on the discussions above, and also at Talk:Actor model history, I am forced to conclude that Carl Hewitt is either an imposter, or that the content of this article is some sort of pernicious pseudo-science. I am thus sticking POV and accuracy labels on this article, and classifying it as pseudoscience. I am not sure how to proceed. We need to determine if this is the real Carl Hewitt or not, and we need to talk to MIT to find out what is going on here. linas 20:50, 17 September 2005 (UTC)

I dunno, linas this is getting really weird. I certainly don't agree with categorizing the Actor Model as GR, but on the other hand, evrybody seems to be jumping on Carl Hewitt. --CSTAR 21:04, 17 September 2005 (UTC)
Linas - I too must question your actions. I think that it is the job of the computer science editors to police this page, not the physics editors. I must express concerns that you are making the same kind of mistake that Carl Hewitt was making: sticking yourself into a place where your views don't belong.
I will not contest the statement that Carl's views of GR and QM are pseudoscience. However, I would not paint the whole of his work as that. As best I can tell, he is a competent computer scientist and his work being tolerated here seems to speak of his being known and at least somewhat respected in the computer science community. To me, Carl's fault is a lack of perspective resulting in his overrating the applicatibility of his work. (That speaks very much of his being the real Carl Hewitt BTW.) As I mentioned on Chris's GTR Project page, our goal should be to get Carl out of our hair. Getting ourselves this deeply into his hair very much works against that goal.
At this time, I am reverting the page back to Chris' last edit, thereby removing questionable material added by both you and by Carl. I must also ask you to please stop questioning this user's credentials and competence. It is not good wikiquette to begin with. Only if you have solid evidence of fraud or maliciousness should you be making allegations such as yours above. Also, NPOV and accuracy tags should be slapped on only if you have knowledge of the subject sufficient to state a proper justification for them. The fact that Carl is ignorant of GR does not justify the global tag. Perhaps a sectional accuracy tag would work, but I fail to see a good case for that either.
Please remember that the issue is whether this work belongs in the GR category. We are competent to judge that. However, I do not see us as competent to judge much else about Carl's work. Please recognize and respect that. Thank you. --EMS | Talk 22:13, 17 September 2005 (UTC)
I also have doubts about some assertions Carl has made in this article other than the specific claims we are all objecting to (the ones mentioning relativistic physics and quantum physics), but I don't much care about the others, at least not right now. Provided Carl moves the suspect claims to his user pages, I would not be inclined to recategorize this article as pseudoscience. Linas, would you be willing to remove that category? We are making limited progress by negotiating with Carl, but I do see some signs that he might eventually listen to reason (see his acknowledgement of my suggestion about links out of his articles in a "see also" section, and I still hope to resolve this by taking the moral high ground and reasoning with him.
CSTAR, all of us (expect maybe you) are probably rather irritated by Carl's intransigence at this point (I know I am), but let's not lose sight of the fact that our specific objections to the specific questionable claims are valid. (Our = "everyone but maybe you".) As for the real life identity of User:CarlHewitt, well, at one time or another we've probably all said something regretable, and I'd advise you both to just forget this example of that.
I think the point about "wikicommunity" is that if users are good listeners to the concerns of other users, they are likely to be able to spend more time happily writing articles and less time in disputes like this one. Carl, do you see the wisdom in that? There are smart ways to rock boats, and not so smart ways. Gratuitously annoying users here is not a smart way.
I whole heartedly agree with the above paragraph. I had no intention of gratuitously annoying anyone. In fact I walked into this by attempting to report on a linkage between some published work. It turns out that I accidently stirred up a hornet's nest. And then when (as requested in the talk pages) I reported clarifications it seemed to make things worse! I would like to express my apology for any offense caused by my bumbling.
One thing that I have learned from this experience is something about the limitations of our current Wikipedia technology. We have known for a long time about the limitations of email communications. (Email "flame wars" are infamous.) I am afraid that we have some similar challenges here.--Carl Hewitt 02:00, 18 September 2005 (UTC)
Publishing a good paper in CQG is a smart way, and I think you should focus on that goal. Hope you agree---CH (talk) 01:10, 18 September 2005 (UTC)
I have already reverted this page and actor model history to remove Linas' edits from them. (IMO, Linas' edits bordered on vandalism. The accuracy tag is one thing, but to replace all of the categories with "psudoscience" because he did not like Carl's responses is more than a little overboard.) For this article my reversion also removed the categories that we are trying to delete from this page, but that I because I just could not bring myself to re-insert them. Carl is free to do so if he desires. I just felt that the current page was the last "good" edit, after which there were only items that others had objected to and either were removed or which needed removing. --EMS | Talk 04:04, 18 September 2005 (UTC)
:I am not sure exactly how to proceed here. There are various passages that have been removed that are not controversial and so should be restored. On the other hand there are various passages that are controversial. So what I propose to do is to restore the parts that are uncontroversial and move the parts that are controversial to the talk page with an appropriately named section for each one where they can be debated. If there are further passages that become controversial, then we can move them to the talk page rather than just deleting them which leads to chaos and revert wars. It would also be good to add passages that might be controversial first to the talk page. But it is not always possible to predict what will become controversial. Also given the chaos that we face now, I may not get this perfectly right the first time. But at least I have expressed the intent of what I am trying to do. What do you think?--Carl Hewitt 06:35, 18 September 2005 (UTC)
I think that you are the chief editor of this page, and should proceed as you best see fit, albeit with some consideration being given to recent events. If you are out-of-line, you will get feedback after all. I really do not want to be much involved with this page, but instead just wanted to back off of what Linas did. I advise looking at the history to see why I fell back as far as I did. For example, referencing the conflict between GR and QM is not germane to the actor model, as another editor noted. (Note: To see the article history first click on the "article" tab above and then the "history" tab. Note that clicking on the history tab directly will give you the history of this talk page, and I am not refering to that.) --EMS | Talk 18:30, 18 September 2005 (UTC)
I see Carl has complained several times that someone edited the articles themselves to delete paragraphs or something like that. I don't know what he's talking about, but as long as the material he wants to restore are not the questionable claims that there is some established deep relationship between his work and relativistic or quantum physics, I have no objection to his restoring them. I expect the two questioned categories will be deleted soon; as long as Carl doesn't attempt to recreate those or similarly misleading categories, I have no objection to the current categorization of this article (which doesn't include the VfD'd categories).
Carl, I would just add that you shouldn't draw the wrong lesson from this experience. The lesson you should draw is that you should be more cautious, not less cautious, about making strong claims than you might be in a published paper arguing for your views. This is an encyclopedia, not a research journal, so author/editors need to be more conservative in their claims than they might be on their web pages or even in their papers. I think the principle role of technical articles here is to orient readers in NPOV fashion by describing the most important, influential, and best understood concepts in each field, plus widely discussed controversies, conjectures, and speculations, explaining how these fit together into the big picture, and helping scholarly readers locate more information, by providing citations to review articles and writing sufficiently detailed articles that interested readers can note search terms for use in the arXiv and similar resources.
Another lesson which I think you can draw is that the Wikipedia community includes users with impressive expertise in a variety of highly technical fields, and if you ask for help on project pages, or simply listen carefully to comments in article talk pages, they can offer invaluable advice which will in the long run help you further your own agenda, by helping you to write much better articles!
Whew! I hope this matter will be resolved to everyone's satisfication as soon as Carl makes the changes I mentioned above.---CH (talk) 00:31, 20 September 2005 (UTC)

Why Actor is capitalized

Some readers have asked why Actor is capitalized. The answer is that in some computer systems (especially animation) that we have to deal with two kinds of "actors": the characters (called actors) and the concurrent entities that pass messages around to implement the characters (called Actors). Capitalizing the latter helps to disambiguate them.--Carl Hewitt 21:36, 26 October 2005 (UTC)

I suggest that we follow Clinger and Agha, regardless of this possible ambiguity. It is also closer to the WP style guide for capitalization.--CSTAR 21:39, 26 October 2005 (UTC)
Excuse me, I think you should have given me the chance of replying before reverting.--CSTAR 21:44, 26 October 2005 (UTC)
Sorry. The article was in an inconsistent state with just a couple of instances at the very beginning capitalized.--Carl Hewitt 22:01, 26 October 2005 (UTC)
I still maintain that it should not be capitalized. Besides the WP style guideline, I have given two authoritative published sources in which actor is not capitalized. Can you do likewise? Referring to your sayso is not a valid justification, although a refereed publication or a technical report at a university or company (written by you) would be justification.--CSTAR 02:38, 27 October 2005 (UTC)
Well, I am capitalizing it in my publications, e.g, see the abstract Talk:Carl_Hewitt#Semantics_for_Autonomy_and_Interdependence_in_Agents which is submitted for publication.--Carl Hewitt 14:23, 27 October 2005 (UTC)
I had written a response to this [1] which I see you deleted and replaced with the comments above. It is particularly irksome that you refer to "some outsider" (presumably me). Though your article reference is not what I had asked (it's just another page on WP), it will do. Note that my asking you this is not in the cpapacity of an outsider determining the stylistic norms of the actor research community. In fact, it seems that you have appointed yourself as the official spokesperson for that community. I don't see them yet agreeing with you.--CSTAR 15:21, 27 October 2005 (UTC)
I have not appointed myself as official spokesperson. We will see who follows the convention. The ones working in animation probably have the strongest reason. However, it would be surprising if everyone followed the convention.--Carl Hewitt 15:56, 27 October 2005 (UTC)
Whether Actor is capitalized or not is (probably) not that important; nevertheless, I wouldn't want to have Wikipedia become the standard the actor community (of which you are a member, but there are others as you point out) (or any community) relies on to determine a particular notational convention. No? --CSTAR 03:23, 28 October 2005 (UTC)

For the record

Please note the following facts gleaned from the history pages of this talk page [2] and the those of the Carl Hewitt WP talk page [3]:

  1. Time at which Hewitt made the first response to my comment on this talk page (which I had posted at 02:38, 27 October 2005 (UTC)): 14:23, 27 October 2005 (UTC)
  2. Time at which Hewitt added the section to the talk page Talk:Carl Hewitt which contained the abstract to his SRI talk: 14:30, 27 October 2005 (UTC)
  3. Time at which Hewitt deleted part of his earlier comment and modified another part on this talk page: 14:47, 27 October 2005 (UTC). At this time he did not revise the timestamp in the signature.

--CSTAR 15:58, 27 October 2005 (UTC)

I apologize for not revising the time stamp when I revised my comment. I forgot to do it and will try to do better in the future. At the time when I revised my comment no one had yet responded. The Wikipedia seems to be very unstable at this time.--Carl Hewitt 16:26, 27 October 2005 (UTC)

Focus of this article

This article seems very unfocused to me. In addition to discussing the Actor model, it contains digressions on control structures, Smalltalk, Planner, Simula, unbounded nondeterminism. All of this makes the article very hard to follow (especially for someone trying to obtain a quick understanding of what the Actor model is). I understand that a lot of this material is here to provide context, but it seems like in many cases the information is a duplicate of information available elsewhere in the Wikipedia. It might be better to condense this contextual information into a sentence or two identifying the basic relationship between the Actor model and the concept in question, along with an appropriate wikilink. I will be happy to undertake these edits if there are no objections. --Allan McInnes 01:36, 9 December 2005 (UTC)

The issues discussed in the sections on ontrol structures, Smalltalk, Planner, Simula, unbounded nondeterminism, etc. are all important to the Actor model. What is needed is to explain why they are important. This will require some expansion of the material and that raises the question of organization: What is the best way to organize this new material? Regards,--Carl Hewitt 02:26, 9 December 2005 (UTC)
I agree that the issues are important. It's all of the extraneous background (such as the detailed discussion of the history of message-passing in Smalltalk) that I'm concerned about. As I said, it makes the article seem very unfocused. I'd suggest creating a single section entitled “Key issues in the development of Actors” (or something along those lines) and collecting all of the issues there in precis form (this is supposed to be an encyclopedia, not a textbook). Providing external links to published literature that contains more detailed accounts of these issues would probably make sense as well.
My suggested structure for the entire Actor model article is something along the lines of:
It's important realize that, just as with the process calculi, we have a growing family of articles reporting on three decades of published research by a large number of researchers.--Carl Hewitt 07:50, 9 December 2005 (UTC)
I understand that. I am simply trying to make suggestions that will get this article into a form that (a) provides readers with a basic understanding of what the Actors model is, and (b) provides an overview more detailed material, along with appropriate external or wikilinks. Please understand that I am not trying to minimize the importance of the Actors model in any way. I am simply trying to help make the material on the Actors model more accessible to those not familiar with it. --Allan McInnes 07:40, 9 December 2005 (UTC)
  • Intro
  • History (precis form - a paragraph or two)
Have you seen Actor model early history? It only covers some of the history of the first 8 years.--Carl Hewitt 06:29, 9 December 2005 (UTC)
I have. But I think it would be reasonable to provide a brief overview of the truly major highlights in Actors model development here, and a pointer to Actor model early history for anyone who wants more detail. --Allan McInnes 07:40, 9 December 2005 (UTC)
A brief overview would be great, but as the current article shows there are a number of issues to be covered. Maybe what we need is a new article Actor model history to provide an overview for Actor model early history as well as the not yet written Actor model middle history and Actor model later history.--Carl Hewitt 07:50, 9 December 2005 (UTC)
  • Informal description (what is an actor, how do they interact, send, become, initadr, newbeh, etc.)
The article already has a informal description that could be improved. What you seem to be calling for here is a new article on a mathematical operational characterization of the behavior of Actors. I agree that this would be a valuable addition although hopefully it will be done more elegantly than what you have described (of course you undoubtedly meant a more elegant approach and just used "send, become, initadr, newbeh, etc." as a short hand.--Carl Hewitt 06:29, 9 December 2005 (UTC)
What I'm calling for is a basic description of what an Actor is, and how a system of Actors interacts. Possibly with some simple examples. The existing definition is, in my opinion, vague at best. This article should provide a reader with a basic working understanding of what the Actors model is. And yes, it was shorthand. --Allan McInnes 07:40, 9 December 2005 (UTC)
You have a good idea. But I think that it is going to take a whole Wikipedia article to do it. See
  • Gul Agha, Ian Mason, Scott Smith, and Carolyn Talcott. A Foundation for Actor Computation Journal of Functional Programming January 1993.
Regards, --Carl Hewitt 08:00, 9 December 2005 (UTC)
  • Formal description (brief overview of Clinger's semantics, Agha's transition semantics, and any other semantic models that are in wide use)
Much of Clinger's thesis work is currently pretty much already covered in other articles
Agha's transition semantics is an article its own right that needs to be written
Also an article needs to be writtten on the semantics of Gul Agha, Ian Mason, Scott Smith, and Carolyn Talcott.
There is a new denotational semantics that will be published next summer that will either need to be an article in its own right or be integrated into other articles
Then we will need an article that reports on an overview of the published material on the above 4 approaches
Regards, --Carl Hewitt 06:29, 9 December 2005 (UTC)
Again, I am suggesting a brief overview that makes people aware of these different semantic models. As you rightly point out, there is (or could be) more detail in other, linked articles.--Allan McInnes 07:40, 9 December 2005 (UTC)
  • Key issues during development (or some similar title)
Key issues during development is what the article Actor model is largely about. I do think that it is important to provide historical perspective for key issues during development because it makes the material more understandable and it is necessary for intellectual honesty in attributing scientific credit. For example it really is necessary to discuss the relationship to the lambda calculus, Simula, and Smalltalk.
Some of the material currently in Actor model may be extraneous. But I have found that people disagree as to which parts. I have more own favorite candidate to remove. So I will try taking it out and see if anyone screams;-) What's yours?
Regards,--Carl Hewitt 07:13, 9 December 2005 (UTC)
I agree that providing some context is important. It's mostly a question of how much. Redunduancy in and of itself is not necessarily a bad thing. But I think the article will be a lot more readable if it has a tighter focus. --Allan McInnes 07:40, 9 December 2005 (UTC)
There is not much redundancy in the current article. Based on your input, I moved a lot of material to Planner programming language where I think that it is more appropriate. How else can we gain a tighter focus?--Carl Hewitt 08:06, 9 December 2005 (UTC)
Might I suggest moving some of the more detailed material to wikibooks where that level of detail is more appropriate and better structures exist for expanding on it, including large sections devoted to nothing but history etc. I would also suggest that, as much as is feasible, material should be moved into sub-pages. Consider, for example, the page on Lie groups; there is a great deal that can be said about Lie groups and a remarkable wealth of published papers on the subject - the Lie groups article, however, does its best to simply provide a concise but accessible definition and then briefly touch on the major points of interest, farming out most of the material to other pages with more specific information. Leland McInnes 22:48, 10 December 2005 (UTC)
  • Applications
  • Actor researchers
  • See also
  • References
  • External links
I'm basing this structure on the way articles such as the one on the λ-calculus have been structured. I think that such a structure does a good job of giving the casual reader a basic idea of what's going on, while providing interested readers the opportunity to bore down a bit (without getting bogged down in details better left to other, external references, or a Wikibook). --Allan McInnes 04:19, 9 December 2005 (UTC)
It's true that the λ-calculus is very much simpler than Actor model or process calculi so that we have our work cut out for us in organizing this material for the Wikipedia. However the job of the Wikipedia is to report on the published literature in an organized encyclopedic fashion. So we simply have to do the hard work to do this.--Carl Hewitt 06:29, 9 December 2005 (UTC)
It's less a question of the simplicity of the subject matter, and more a question of clarity of the articles. The the λ-calculus article is, I think, clear and well-structured, and as a result does not overwhelm the reader. --Allan McInnes 07:40, 9 December 2005 (UTC)

Rewrite

Folks,

I moved some material to Planner programming language where I think that it may be more appropriate. What do you think?

Also other ideas for improvement are greatly appreciated.

Thanks, --Carl Hewitt 06:48, 9 December 2005 (UTC)

Carl, I think this was a good edit to make. --Allan McInnes 07:40, 9 December 2005 (UTC)

The crystal ball

Carl,

Wikipedia is not a crystal ball. To quote from that article, “It is appropriate to report discussion and arguments about the prospects for success of future proposals and projects or whether some development will occur, provided that discussion is properly referenced. It is not appropriate for an editor to insert their own opinions or analysis, because of Wikipedia's prohibition on original research.

As it stands, the section on Actor prospects is not referenced at all (aside from a pointer related to many-core processors). As such, it represents speculative opinion, and violates Wikipedia policy. That is why I removed that section. Please add some specific citations for that claims made in the Actor prospects section, or remove the section. --Allan McInnes 01:04, 10 December 2005 (UTC)

Alan,
I have toned down the wording and added more links and references. Please see what you think.
Further suggestions for improvement are most welcome.
Regards, --Carl Hewitt 01:52, 10 December 2005 (UTC)
Carl,
I think that the rewrite is an improvement, but it still seems speculative to me. Is there any work currently being done on applying the Actors model to solving the scalability and transparency problems that you outline? I agree that it seems probable that Actors would be very helpful in those areas, but it's still speculation without references to work in that area. I'm trying to think of a way to reword things so it's less speculative, so I'll leave that section as it stands for now. But unless we can come up with a better wording, or some references to current work, I think it should eventually be removed. --Allan McInnes 04:08, 10 December 2005 (UTC)
Alan,
Articles are allowed to do analysis of the published literature as to what developments mean. However they are not allowed to be forums for original research. This can be a fine line! So, the current references are to published work that raise the issues. The current article should not claim that Actor model will be helpful in addressing the issues, it should say only that the Actor model must address the issues.
In answer to your question: Yes, there is an increasing amount of work being done on applying the Actor model to address the scalability and transparency problems discussed as issues in the article that has been submitted for publication. As soon as it is published, it can be reported in the Wikipedia articles.
Regards, --Carl Hewitt 04:22, 10 December 2005 (UTC)
Fair enough. --Allan McInnes 04:51, 10 December 2005 (UTC)

Reference section

The present reference list seems (to me at least) extremely long. Nor is it obvious that all of these references are actually directly relevant to the article at hand. I would like to suggest that we move all references (except those that are already wikilinked via ref_harvard) to the talk page, and then gradually repopulate the reference list only with those references that can be directly tied to (again via ref_harvard links) specific claims. I'm hopeful that this will help to trim the reference list down to a more manageable length. Any objections to this plan? --Allan McInnes (talk) 18:46, 14 February 2006 (UTC)

I have trimmed the reference lists. However, it looks like it is time to write the articles Actor model middle history and Actor model later history as discussed above. So unless there are objections, I will do so. This will make the reference lists more manageable. --Carl Hewitt 21:46, 14 February 2006 (UTC)
I have contributed drafts of the articles.
Your comments, questions, suggestions, and improvements are appreciated.
Regards, --Carl Hewitt 07:02, 15 February 2006 (UTC)

Monitors and encapsulation

First Edsger Dijkstra developed semaphores and then Tony Hoare [1974] and Per Brinch Hansen developed monitors to solve the mutual exclusion problem. However, neither of these solutions provided a programming language construct that encapsulated access to shared resources.

Arguably monitors do encapsulate access to shared resources. They are a bit more low-level than serializers (especially when used with condition variables), but they achieve a similar effect. It would be interesting to have a subsection comparing monitors and serializers. DavidHopwood 01:18, 9 March 2006 (UTC)

Moved Sutherland to Dataflow_language#History

I moved the material on Bert Sutherland's thesis to Dataflow_language#History for the following reasons:

  • The thesis does not treat concurrency at all. It doesn't even seem to be aware of semaphores.
  • The thesis does not treat message passing at all. It only has expression level parallelism as in early data flow languages.
  • The main point of the thesis is the implementation of a graphical system for simple data flow expressions.--24.23.212.54 03:39, 4 April 2007 (UTC)