Talk:History of the Scheme programming language
Why an article on Scheme's history?
This stub article was born of my work on Scheme (programming language). As a Schemer I've been vaguely aware of much of this for some time, but as I've read that various articles on related subjects and external materials over the past few days in writing the Scheme article I've become aware that there's a lot of information scattered around but it isn't reflected anywhere on Wikipedia.
Writing computer history is fun because it's recent enough for most of the actors to still be around and commenting on their earlier work, most of them are academics who have spent their entire life publishing their thoughts and write with a reasonable degree of candor and considerable historical insight. There's bags of material and it cries out to be written about. --TS 19:50, 15 October 2009 (UTC)
- Thank you very much for this great article!
- Scheme history is particularly fascinating because it served as a vehicle for introducing a plethora of concepts (lambda calculus and formal semantics, closures, continuations and CPS, ...) to a wide audience, bridging the theoretic and pragmatic worlds; it's also one of the finest examples of a hacker culture product in origins. —Piet Delport (talk) 2009-10-20 05:56
Material deleted from "Carl Hewitt, the Actor model, and the birth of Scheme"
Some of the material below was deleted from the article.171.66.33.22 (talk) 23:10, 26 October 2009 (UTC)
(Deleted for readability; see the diff instead. —Piet Delport (talk) 2009-10-28 10:13)
- I think it would be great if this article could continue to focus on what Sussman and Steele got out of their investigation of the Actor model, and not on the obvious shortcomings of Scheme if one tries to view it as in any way a serious attempt to produce an alternative, which it isn't. --TS 17:17, 27 October 2009 (UTC)
The published quotations shed considerable light on the history. How can the peoples' intent be determined 35 years after the fact? And how can how it changed with time be tracked? 171.66.86.186 (talk) 00:48, 28 October 2009 (UTC)
- The quotations shed light on the history of Hewitt's work and opinions, but that is not the article's subject. —Piet Delport (talk) 2009-10-28 10:49
It's too bad that the above history was deleted. (Maybe someone who knows how could restore it.) It had good information on the early history of Scheme particularly with respect to the following:
- How hairy control structure was incorporated into Conniver and then propagated to Scheme although rejected by people like Pat Hayes and Carl Hewitt.
- The controversy over whether actors were just the lambda calculus in disguise.
I wonder if there are other topics like the above that should be included.171.66.109.31 (talk) 23:20, 29 October 2009 (UTC)
- What Hayes or Hewitt thought of the construct is not relevant to this article, unless it touched Scheme's history somehow.
- There is little evidence for the controversy you contend: Sussman and Steele made a claim about the subset of actors they implemented, not about the actor model in general, and specifically excepted that cells and serializers are not isomorphic to lambda calculus closures. Hewitt agreed with and confirmed both these observations. (See The First Report on Scheme Revisited.)
- —Piet Delport (talk) 2009-11-02 20:29
- Actually The First Report on Scheme Revisited Higher-Order and Symbolic Computation 1998 says that Hairy Control Structure did play an important role in the history of Scheme. Sussman thought that it was the answer to the control structure issues in Planner whereas Hewitt was skeptical of Hairy Control Structure and thought Actors were the answer to the control structure issues. This controversy is why Hayes and Hewitt published what they did at the time. Using re-invocable continuations, Scheme incorporated the Hairy Control Structure of Conniver thereby perpetuating the controversy. The interesting result that emerged from the Actor work was that Hairy Control Structure is not needed: ordinary message passing is a better solution to the control structure issues that arose in Planner. However, Scheme has pursued Hairy Control Structure to the bitter end.
- The thrust of the initial published work on Scheme was that Actors were just the lambda calculus in disguise. The fact that Actors implemented the lambda calculus was no surprise since both Sussman and Hewitt had taken a course from Peter Landin on the lambda calculus at MIT. Of course, cells are serialized Actors. Unfortunately, Scheme never developed any reasonable way to implement serialized Actors.171.66.109.173 (talk) 01:21, 3 November 2009 (UTC)
- The inventors wanted to generalize the lambda calculus using serialized Actors.171.66.109.180 (talk) 02:36, 3 November 2009 (UTC)
- Look, you're missing the point. It does not matter at all what Hewitt (or anyone else) thinks about first-class continuations versus actor message passing: this article is simply not concerned with their relative merits.
- If you think that the thrust of Sussman and Steele's work was that actors were just the lambda calculus in disguise, you must be grossly misreading or misunderstanding it. They were very explicit about Scheme not attempting to implement the full actor model, and carefully point out the exception of cells and serializers, as I pointed out above. They also clearly explain how "side effects, multiprocessing, and synchronization of processes [...] are very hard, if not impossible, to model using the substitution semantics of the lambda calculus, but [are] easily incorporated in other semantic models, including the environment interpreter and, perhaps more notably, the ACTORS model."
- I cannot imagine how you could read this and conclude that they're implying actors and lambda calculus are the same. Please, give this a rest.
- —Piet Delport (talk) 2009-11-03 11:32
It is important not to confuse the beginning of a controversy with how it ultimately turned out. The birth of Scheme was marked by two important controversies:
- The usefulness of Hairy Control Structure Even the revisionist history The First Report on Scheme Revisited Higher-Order and Symbolic Computation 1998 mentions that hairy control structure played an important role in the birth of Scheme. There is no doubt that contemporaneous publications document an important controversy about hairy control structure centered on the birth of Scheme.
- Whether Actors are just the lambda calculus in disguise People who were at MIT in 1975 report that there was even talk of Actors being a "fraud" because they were alleged to be just the lambda calculus in disguise. (Polities at MIT could be very fierce.) In later publications, it seems that Sussman and Steele backed off on this claim.
70.231.250.190 (talk) 17:34, 3 November 2009 (UTC)
- Scheme: An Interpreter for Extended Lambda Calculus. MIT AI Lab Memo 349. December 1975 missed the crucial importance of Actor message arrival ordering. Instead they have primitives like START!PROCESS, STOP!PROCESS and EVALUATE!UNINTERRUPTABLY . 76.254.235.105 (talk) 21:52, 3 November 2009 (UTC)
The quotation deleted from the article published in ActorScript(TM): Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing ArXiv 0907.3330 is as follows:
- [Sussman and Steele 1975] mistakenly concluded “we discovered that the 'Actors' and the lambda expressions were identical in implementation.” The actual situation is that the lambda calculus is capable of expressing some kinds of sequential and parallel control structures but, in general, not the concurrency expressed in the Actor model. On the other hand, the Actor model is capable of expressing everything in the lambda calculus and more.