Heading:
PE report (section 1)
Page Numbers: No
Inter-Office Memorandum
ToDistributionDateJuly 21, 1978
FromPE working group (names on next page)LocationPalo Alto
SubjectFirst report from Programming EnvironmentOrganizationCSL
Working Group
XEROX
Filed on: Ivy <Deutsch>per>
report>* - the report proper
future>* - the memos which were condensed into section 5b
minutes>* - the minutes of the working group’s meetings
Distribution:
CSL
SSL/LRG
SDD Palo Alto: Irby, Liddle, Lynch, Metcalfe, Wallace, Weaver, White, Wick
ASD Palo Alto: Brotz, Elkind, Spitzen, Wegbreit

Non-CSL recipients may distribute further copies as needed
Table of Contents
1. Charter and history
2. Introduction, rationale, and conclusions
3. Catalog and discussion of PE capabilities
a. Virtual machine and programming language
b. Tools
c. Packages
d. Other
4. Priority ranking and interrelation of capabilities
5. Relation to existing environments (Lisp, Mesa, Smalltalk)
a. Analysis of difficulty of high priority items in each environment
b. Projections for non-EPE development
Charter and History
The purpose of this report is to collect and set down CSL’s experience and intentions in the area of programming environments. Some eventual version of the report will reflect the contributions of all interested members of CSL, and other appropriate input from the rest of the Xerox Palo Alto community. This version, however, has been produced by a working group consisting of the following people:
Peter Deutsch
Jim Horning
Butler Lampson
Jim Morris
Ed Satterthwaite (SD)
Warren Teitelman
with the occasional participation of Al Perlis (consultant).
The original charter of the working group was to fill in an outline produced in consultation with Bob Taylor, reproduced below with Bob’s high-priority items in boldface. We quickly decided that the right way to proceed was to address what we felt was the real question requiring resolution, namely to produce a catalog of programming environment capabilities which included justified value, cost, and priority evaluations. Even though we did not attempt to fill in the original outline as such, our results can be fitted into it as indicated by the italicized text interspersed with the outline.
The working group was given a one-month deadline and held 8 two-hour meetings. Needless to say, there were many areas we had to treat superficially because of the time constraint, and some areas in which we realized we simply could not reach agreement. We also realize that we have undoubtedly overlooked some significant issues and viewpoints. However, we expected much more in the way of intractable disagreement than we actually experienced. This suggests that we were successful at avoiding "religious" debates, and concentrating on the technical issues.
------------------------------------------------------------------------------------------------
I. Introduction, Charter, History
A. What have we learned from Interlisp, Smalltalk, and Mesa that is important?
There is a collection of capabilities that we know from experience are of significant value in a programming environment. Each of these systems has contributed to this experience. No one of them possesses all these capabilities. In addition, the degree to which the capabilities are integrated into the system can have a profound effect on their utility.
B. What can we learn from Interlisp, Smalltalk, and Mesa that is important?
We did not really address this question. It might be possible to learn more about the value of certain capabilities by actual measurements of the use of these systems, but we think that (a) no one will feel motivated to do such measurements, and (b) the synergy between features makes it very difficult to measure their individual values.
II. Definition of Programming Environments
III. Survey of Local State-of-the-art
The local state-of-the-art is captured implicitly in section 5a.
A. Interlisp
B. Smalltalk
C. Mesa
D. Summary and catalog of proven features (what we already know)
This is the main body of the report, sections 3 and 4.
IV. Research Issues
A. Evaluating programming environments
As mentioned above, we believe that anecdotal, personal experience is our only realistic way to evaluate programming environments at present.
B. Preservation and transmission of lessons learned
Aside from the report itself, the main vehicle for transmitting the lessons learned will be the improvement of whatever environment(s) we choose for further development.
C. New ideas worth investigation in the Interlisp, Smalltalk, and/or Mesa environments
This is implicit in sections 3, 4, and 5a.
D. Selecting environmental features
E. Integrating the environment
V. Tool issues
A. CSL requirements for programming environment(s)
This is captured by sections 3 and 4.
B. Deficiencies in present CSL programming environments
This is implicit in the high-ranking items which do not exist in our present environments.
C. Tactics for meeting CSL requirements
We deliberately did not address this point, feeling it was premature before the entire lab had a chance to comment on the report. Section 2 has some comments on this.
D. Research issues in tool construction
VI. Resource Issues
In general, we did not address these issues, again because we felt it would be premature. Sections 2 and 5b touch on them indirectly.
A. What would various approaches cost?
We discuss the difficulties of implementing individual features in detail in section 5a, but only touch briefly on the global issues.
B. What should be CSL priorities?
C. A long-range plan for programming environments
D. Reasonable first steps in the next two years
------------------------------------------------------------------------------------------------