Alan Kay: The History of SmallTalk (Abstract and Introduction)

I have a goal - to understand what happened in the 60-70s in Xerox PARC and in the vicinity, how it happened that several teams of engineers, working hand in hand, created incredible technologies that determined our present, and their ideas will shape the future. Why is this not happening now? (and if it happens, then where?). How to assemble a similar team? Where did we turn the wrong way? What ideas did we miss, but should we take a closer look at them?

I bring to your attention a translation of the beginning of a large text by Alan Kay (150,000 characters), to which he repeatedly refers in all his speeches and answers to Quora and HackerNews.

Who is ready to help with the translation - write in a personal.

The Early History Of Smalltalk


image

annotation


Most ideas are based on previous ideas. In the sixties, especially in the ARPA community (Advanced Research Projects Agency - Advanced Research Agency), a lot of concepts appeared regarding the “human-computer symbiosis” based on interactive time-sharing systems, graphic displays and pointing devices. Advanced programming languages ​​were invented to simulate complex systems such as refineries and semi-reasonable behavior. The upcoming paradigm shift in the field of modern personal computers, overlapping window interfaces and object-oriented design has arisen thanks to works from the 60s, which were something more than an "improved old".

Here's what's even better: the appearance of mainframes; activation of functionality for end users; translation of data structures into more abstract ones. Instead, promises of exponential growth in computing / revenue / volumes forced the 60s to be perceived as “almost new,” as well as deciding what truly “new” was. For example, when someone would do the calculations on a portable “Dynabook” in a way that would not be possible to implement on the mainframe. Or when millions of potential users thought that the user interface should become a learning environment, something like Montessori and Bruner did. Or when the need for great opportunities, in reducing complexity,and end-user literacy would require getting rid of data and control structures in favor of a more biological scheme of protected universal cells that interact only through messages that mimic any desired behavior.

In the early stages, Smalltalk was the first full-fledged embodiment of these new perspectives, as he was “raised” by numerous predecessors in the design of hardware, languages, and user interfaces. He became a model of new calculations, partly because we actually tried to bring about qualitative changes in the structure of beliefs (like Kuhn’s new paradigm in the spirit of the invention of the printing press), and thus, to take very extreme positions that practically forced us to come up with these new directions.

—Dedicated to Daniel Ingalls, Adele Goldberg, and everyone working at Xerox PARC LRG
—Dedicated to Dave Evans, Bob Barton, Marvin Minsky, and Seymour Peiper —
Dedicated to SKETCHPAD, JOSS, LISP, and SIMULA, the four-and-four-six

Introduction


I am writing this entry while on the plane at an altitude of almost 10.5 thousand meters. On my lap is a laptop weighing a couple kilograms, the 1992 Interim Dynabook, which by the end of this year cost less than $ 700. It has a flat, clear screen with high resolution, overlapping windows, icons and a cursor control device, a large amount of memory and computing power, object-oriented software. The laptop has advanced built-in networking capabilities, and also already had support for wireless networks. Smalltalk is present in this system and is one of the main tools that I use in my current work with children. In a way, this is more than Dynabook (in quantitative terms), but in a way, it still does not quite reach its (Dynabook) level (in quality). Overall,in the late 60s, a lot of all sorts of thoughts in my head spun.

Smalltalk was part of the ambitious ambitions of ARPA, and then Xerox PARC, which I designated as a personal computer. At each stage of this project, so many people from the research communities were involved that the exact localization of the main source of ideas is rather difficult. Instead, as Goethe Bob Barton liked to quote, we should “share the joy of discovery without futile attempts to claim our authorship.”

I will try to show where the majority of trends came from, and how they formed the center of attraction based on the new expression “personal computer”. It was the installations along with the great ideas of the pioneers that helped to invent Smalltalk. It seemed that many people whom I most admired at that time (Ivan Sutherland, Marvin Minsky, Seymour Peypert, Gordon Moore, Bob Barton, Dave Evans, Butler Lampson, Jerome Bruner, etc.), perfectly understood that their creations although they were wonderful in their own way, but they did not come close to the absolute frontiers, which they really wanted to overcome. Limited minds are trying to create a religion, and great ones just want better routes to the top of the mountain. According to Newton, he saw further, because he stood on the shoulders of giants. All computer scientists often step on each other's feet. In a situationwhen there are giants on whose shoulders you can stand, myopia still causes problems, because “observation” (from the outside) is better than intuitive understanding. In this case, you can reduce the negative effect with the help of glasses, in which the lenses have a high sensitivity to aesthetics and criticism.

Programming languages ​​can be divided according to different criteria: imperative, applied, logical, problem-oriented, etc. But there is a feeling that they all represent either “agglutination (combination) of properties” or “crystallization of style”. COBOL, PL / 1, Ada, etc., belong to the first type, and LISP, APL, and Smalltalk belong to the second. Perhaps it is not by chance that all agglutinative languages ​​were initiated by entire committees, and languages ​​with crystallization by one person.

The structure (and existence) of Smalltalk is based on the following view: everything that we can describe can be represented through a recursive composition of one type of behavioral block, hiding its set of state and process inside. This unit can only be interacted with through messaging. From a philosophical point of view, objects in Smalltalk have much in common with Leibniz monads and concepts from 20th century physics and biology. The way to create objects is just like Plato’s, in the sense that some of them act as idealization of concepts (Ideas) from which material things can be created. Ideas themselves are a certain form (Idea of ​​an Idea), and an Idea of ​​an Idea is a kind of Substantial Idea that refers to itself. Thus, the system is completely self-describing. Plato would rate this as a good joke [Plato].

From a computer point of view, Smalltalk is a recursion on the very idea of ​​a “computer." Instead of dividing the “computer” into parts, each of which is weaker than the whole (for example, data structures, procedures and functions, that is, ordinary attributes of programming languages), each Smalltalk object is a recursion to the entire set of computer capabilities. Thus, semantically, it is like connecting thousands of thousands of computers through a very fast network. Questions about a specific presentation can be postponed indefinitely, because we are more concerned with matching the behavior of computers to our expectations, and we are only interested in specific strategies when the results are incorrect or return too slowly.

Although Smalltalk is truly of noble origin, its contribution can be described as a new design concept, which I called object-oriented, because it focuses on the large tasks of a professional programmer and allows solving small tasks of a novice user. An object-oriented structure is a successful attempt to qualitatively improve the efficiency of modeling the relationships between even more complex dynamic systems and the user that arose as a result of the rapid development of silicon.

“We would know what they were thinking when they would do it.”
- Richard Hamming

“Memory and imagination are just two words to describe the same thing.”
- Thomas Hobbs

In this text, I will try to comply with Hamming's request, guided by Hobbs' remark. The last time I tried to write about Smalltalk, I ran into some difficulties because my emotional involvement was always tied to personal computers that would move human achievements (rather than developing a programming system) forward, and we had not reached this point yet. Although I was the initiator and first designer of the Smalltalk language, it always belonged more to the people who supported its work and brought it to light. I would especially like to single out Daniel Ingolls and Adele Goldberg. Each member of the LRG (Learning Research Group) has contributed to the project, and I'm sorry that there is not enough space to pay tribute to them. I think everyone agreesthat in the development of Smalltalk, Daniel became a central figure. Programming, in its essence, is an applied art, where real things are created, and therefore there must be real application. In fact, many languages, if not most, are used today not because they have any real advantages, but because they are simply already present on one or more machines, therefore it is possible to perform bootstrapping in them, etc. . Daniel was great at implementing, and over time, he went deeper and deeper into the development, not only of the language, but also of the user interface, as Smalltalk made its way into the real world.In fact, many languages, if not most, are used today not because they have any real advantages, but because they are simply already present on one or more machines, therefore it is possible to perform bootstrapping in them, etc. . Daniel was great at implementing, and over time, he went deeper and deeper into the development, not only of the language, but also of the user interface, as Smalltalk made its way into the real world.In fact, many languages, if not most, are used today not because they have any real advantages, but because they are simply already present on one or more machines, therefore it is possible to perform bootstrapping in them, etc. . Daniel was great at implementing, and over time, he went deeper and deeper into the development, not only of the language, but also of the user interface, as Smalltalk made its way into the real world.and not only the language, but also the user interface, as Smalltalk made its way into the real world.and not only the language, but also the user interface, as Smalltalk made its way into the real world.

Here I will try to focus on the events that led to the emergence of Smalltalk-72 and its further transformation into its modern form in the form of Smalltalk-76. Most of the ideas arose precisely at this time, and many of the early stages of OOP were poorly documented and almost impossible to find in the list of references.

The story turned out to be too long, but I was amazed at how many people and systems that have influenced are mentioned casually or not at all. I'm sorry that I can’t talk more about Bob Balzer, Bob Burton, Daniel Bobrow, Steve Carr, Wesley Clark, Barbara Deutsch, Peter Deutsch, Bill Duval, Bob Flegal, Laura Gould, Bruce Horne, Butler Lampids, Dave Lave Newman, Bill Paxton, Tryugwe Reenskaug, Dave Robinson, Douglas Ross, Paul Rovner, Bob Sproull, Dan Swinehart, Burt Sutherland, Bob Taylor, Warren Teitelman, Bonnie Tennenbaum, Chuck Tucker and John Woron. To make matters worse, I omitted the names of many systems whose structures I hated, but as a result it brought me to very useful ideas and points of view. In other words, do not take “stories” too seriously,and to perceive them as “weak gestures with a request to leave,” performed after the actors left the stage.

I want to thank the many reviewers for the proofreading of the draft versions to which they had to write comments. Special thanks to Mike Mahoney for such unobtrusive help. It made me listen to his suggestions, so fortunately that my essay improved significantly. I would also like to thank Jean Sammet, an old friend who literally scared me so that I finished work (I didn’t want to know what would happen if I was late). Sherry McLachlen and Kim Rose provided invaluable assistance in compiling all the material.

Translation: Yana Shchekotova

Who is ready to help with the translation of the following chapters - write in a personal message or by mail magisterludi2016@yandex.ru



Still


Translations of Alan Kay:




image

Richard Hamming's book The Art of Doing Science and Engineering: Learning to Learn
Foreword
  1. Intro to The Art of Doing Science and Engineering: Learning to Learn (March 28, 1995) : 1
  2. «Foundations of the Digital (Discrete) Revolution» (March 30, 1995) 2. ()
  3. «History of Computers — Hardware» (March 31, 1995) 3. —
  4. «History of Computers — Software» (April 4, 1995) 4. —
  5. «History of Computers — Applications» (April 6, 1995) 5. —
  6. «Artificial Intelligence — Part I» (April 7, 1995) 6. — 1
  7. «Artificial Intelligence — Part II» (April 11, 1995) 7. — II
  8. «Artificial Intelligence III» (April 13, 1995) 8. -III
  9. «n-Dimensional Space» (April 14, 1995) 9. N-
  10. «Coding Theory — The Representation of Information, Part I» (April 18, 1995) 10. — I
  11. «Coding Theory — The Representation of Information, Part II» (April 20, 1995) 11. — II
  12. «Error-Correcting Codes» (April 21, 1995) 12.
  13. «Information Theory» (April 25, 1995) ,
  14. «Digital Filters, Part I» (April 27, 1995) 14. — 1
  15. «Digital Filters, Part II» (April 28, 1995) 15. — 2
  16. «Digital Filters, Part III» (May 2, 1995) 16. — 3
  17. «Digital Filters, Part IV» (May 4, 1995) 17. — IV
  18. «Simulation, Part I» (May 5, 1995) 18. — I
  19. «Simulation, Part II» (May 9, 1995) 19. — II
  20. «Simulation, Part III» (May 11, 1995) 20. — III
  21. «Fiber Optics» (May 12, 1995) 21.
  22. «Computer Aided Instruction» (May 16, 1995) 22. (CAI)
  23. «Mathematics» (May 18, 1995) 23.
  24. «Quantum Mechanics» (May 19, 1995) 24.
  25. «Creativity» (May 23, 1995). : 25.
  26. «Experts» (May 25, 1995) 26.
  27. «Unreliable Data» (May 26, 1995) 27.
  28. «Systems Engineering» (May 30, 1995) 28.
  29. «You Get What You Measure» (June 1, 1995) 29. ,
  30. «How Do We Know What We Know» (June 2, 1995) 10
  31. Hamming, «You and Your Research» (June 6, 1995). :


All Articles