Jump to content

Talk:History of the Scheme programming language

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 171.66.86.186 (talk) at 00:48, 28 October 2009 (Material deleted from "Carl Hewitt, the Actor model, and the birth of Scheme": How can the peoples' intent be determined 35 years after the fact?). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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)[reply]

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)[reply]

In 1970, Sussman and Hewitt had worked together along with others on Muddle (later MDL), an extended Lisp which formed a component of Hewitt's ambitious Planner project, and in 1971 Sussman, Drew McDermott, and Eugene Charniak had developed a system called Micro-Planner which was a partial and somewhat unsatisfactory implementation of Planner. Drew McDermott, and Sussman in 1972 developed the Lisp-based language Conniver based on "hairy control structure" that could implement non-chronological backtracking that was more general an the chronological backtracking in Planner. Hewitt and others were skeptical of hairy control structure. Pat Hayes remarked: "Their [Sussman and McDermott] solution, to give the user access to the implementation primitives of Planner, is however, something of a retrograde step (what are Conniver's semantics?), although pragmatically useful and important in the short term."[1]

In December 1972, Actors were invented as the universal primitives of computation.[2] Hewitt and Sussman had previously taken Peter Landin's course on the lambda calculus. Steele, then a graduate student at MIT, had been following these developments, and he and Sussman decided to implement a version of the Actor model in their own "tiny Lisp" developed on top of MacLisp, in order to understand the model better. Using this basis they then began to develop a Lisp system for implementing Actors named Schemer, eventually changing it to Scheme to fit the six-character limit on the ITS file system on their DEC PDP-10. They soon concluded that lambda calculus closures and the Actors were essentially identical concepts.[3] Hewitt disagrees: "[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."[4]

Scheme continued the "hairy control structure" of Conniver by incorporating re-invocable continuations. Hewitt responded: "One of the most important results that has emerged from the development of Actor semantics has been the further development of techniques to semantically analyze or synthesize control structures as patterns of passing messages. As a result of this work, we have found that we can do without the paraphernalia of "hairy control structure." "[5]

25 years later, in 1998, Sussman and Steele reflected that the minimalism of Scheme was not a conscious design goal, but rather the unintended outcome of the design process. "We were actually trying to build something complicated and discovered, serendipitously, that we had accidentally designed something that met all our goals but was much simpler than we had intended..we realized that the lambda calculus--a small, simple formalism—could serve as the core of a powerful and expressive programming language." [6]

  1. ^ Pat Hayes Some Problems and Non-Problems in Representation Theory AISB. Sussex. July, 1974.
  2. ^ Carl Hewitt (1973). "A Universal Modular Actor Formalism for Artificial Intelligence". IJCAI. {{cite journal}}: Cite journal requires |journal= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help)
  3. ^ Gerald Jay Sussman and Guy Lewis Steele, Jr.. "Scheme: An Interpreter for Extended Lambda Calculus". MIT AI Lab. AI Lab Memo AIM-349. December 1975.
  4. ^ ActorScript(TM): Industrial strength integration of local and nonlocal concurrency for Client-cloud Computing
  5. ^ Viewing Control Structures as Patterns of Passing Messages AI Memo 410. Dec. 1976 (emphasis in original)
  6. ^ Gerald Jay Sussman and Guy L. Steele, Jr. (1998). "The First Report on Scheme Revisited" (PDF). Higher-Order and Symbolic Computation. 11 (4): 399–404. doi:10.1023/A:1010079421970. ISSN 1388-3690. Retrieved 2006-06-19. {{cite journal}}: Unknown parameter |month= ignored (help)
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)[reply]

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)[reply]