The early history of Smalltalk

Most ideas come from previous ideas. The sixties, particularly in the ARPA community, gave rise to a host of notions about "human-computer symbiosis" through interactive time-shared computers, graphics screens, and pointing devices. Advanced computer languages were invented to simulate complex systems such as oil refineries and semi-intelligent behavior. The soon to follow paradigm shift of modern personal computing, overlapping window interfaces, and object-oriented design came from seeing the work of the sixties as something more than a "better old thing." That is, more than a better way: to do mainframe computing; for end-users to invoke functionality; to make data structures more abstract. Instead the promise of exponential growth in computing/$/volume demanded that the sixties be regarded as "almost a new thing" and to find out what the actual "new things" might be. For example, one would compute with a handheld "Dynabook" in a way that would not be possible on a shared main-frame; millions of potential users meant that the user interface would have to become a learning environment along the lines of Montessori and Bruner; and needs for large scope, reduction in complexity, and end-user literacy would require that data and control structures be done away with in favor of a more biological scheme of protected universal cells interacting only through messages that could mimic any desired behavior.Early Smalltalk was the first complete realization of these new points of view as parented by its many predecessors in hardware, language, and user interface design. It became the exemplar of the new computing, in part, because we were actually trying for a qualitative shift in belief structures---a new Kuhnian paradigm in the same spirit as the invention of the printing press---and thus took highly extreme positions that almost forced these new styles to be invented.

[1]  Robert Balzer Dataless programming , 1967, AFIPS '67 (Fall).

[2]  D. V. Schorre META II a syntax-oriented compiler writing language , 1964 .

[3]  Niklaus Wirth,et al.  EULER: A generalization of ALGOL and its formal definition: Part 1 , 1966, Commun. ACM.

[4]  Douglas T. Ross A generalized technique for symbol manipulation and numerical calculation , 1961, CACM.

[5]  Marvin Minsky,et al.  A framework for representing knowledge , 1974 .

[6]  Carl Hewitt,et al.  Actor induction and meta-evaluation , 1973, POPL.

[7]  L. Peter Deutsch The Past, Present and Future of Smalltalk , 1989, ECOOP.

[8]  Ivan E. Sutherland,et al.  Sketchpad a Man-Machine Graphical Communication System , 1899, Outstanding Dissertations in the Computer Sciences.

[9]  K.-H. Bachmann van Wijngaarden, A. (Ed.), B. J. Mailloux, J. E. L. Peck, and C. H. A. Koster: Report on the algorithmic language Algol 68. Mathematisch Centrum, Amsterdam, AS MR 101, 1969. Preis US $ 4.50 , 1970 .

[10]  Daniel H. H. Ingalls,et al.  The Smalltalk-76 programming system design and implementation , 1978, POPL.

[11]  John F. Shoch,et al.  An overview of the programming language Smalltalk-72 , 1979, SIGP.

[12]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[13]  Alan C Kay FLEX - A Flexible Extendable Language , 1968 .

[14]  Patrick Henry Winston,et al.  Learning structural descriptions from examples , 1970 .

[15]  R. S. Barton,et al.  A new approach to the functional design of a digital computer , 1961, IRE-AIEE-ACM '61 (Western).

[16]  David J. Farber,et al.  SNOBOL , A String Manipulation Language , 1964, JACM.

[17]  Alan C. Kay A Personal Computer for Children of All Ages , 1972, ACM Annual Conference.

[18]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[19]  Chuck Thacker,et al.  Personal distributed computing: the Alto and Ethernet hardware , 1986, HPW '86.

[20]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[21]  Robert W. Floyd,et al.  Notes on Avoiding "go to" Statements , 1971, Information Processing Letters.

[22]  C. Hewitt Planner: a language for manipulating models and proving theorems in a robot" ijcai-69 , 1970 .

[23]  Melvin E. Conway,et al.  Design of a separable transition-diagram compiler , 1963, CACM.

[24]  David Allen Fisher,et al.  Control structures for programming languages , 1970 .

[25]  R. Carnap Meaning and necessity : a study in semantics and modal logic , 1948 .

[26]  Jerome A. Feldman A formal semantics for computer languages and its application in a compiler-compiler , 1966, CACM.

[27]  Gabriel F. Groner Real-time recognition of handprinted text , 1966, AFIPS '66 (Fall).

[28]  Edgar T. Irons,et al.  Experience with an extensible language , 1970, CACM.

[29]  Adele Goldberg,et al.  Personal Dynamic Media , 1977, Computer.

[30]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[31]  Alan Kay,et al.  The reactive engine , 1969 .

[32]  Douglas C. Engelbart,et al.  A research center for augmenting human intellect , 1968, AFIPS Fall Joint Computing Conference.

[33]  Charles T. Zahn,et al.  A control statement for natural top-down structured programming , 1974, Symposium on Programming.