skip to main content
research-article
Open Access

The evolution of Smalltalk: from Smalltalk-72 through Squeak

Published:12 June 2020Publication History
Skip Abstract Section

Abstract

This paper presents a personal view of the evolution of six generations of Smalltalk in which the author played a part, starting with Smalltalk-72 and progressing through Smalltalk-80 to Squeak and Etoys. It describes the forces that brought each generation into existence, the technical innovations that characterized it, and the growth in understanding of object-orientation and personal computing that emerged. It summarizes what that generation achieved and how it affected the future, both within the evolving group of developers and users, and in the outside world.

The early Smalltalks were not widely accessible because they ran only on proprietary Xerox hardware; because of this, few people have experience with these important historical artifacts. To make them accessible, the paper provides links to live simulations that can be run in present-day web browsers. These simulations offer the ability to run pre-defined scripts, but also allow the user to go off-script, browse the details of the implementation, and try anything that could be done in the original system. An appendix includes anecdotal and technical aspects of how examples of each generation of Smalltalk were recovered, and how order was teased out of chaos to the point that these old systems could be brought back to life.

Skip Supplemental Material Section

Supplemental Material

References

  1. Ronald M. Baecker. 1976. A Conversational Extensible System for the Animation of Shaded Images. In Proceedings of the 3rd Annual Conference on Computer Graphics and Interactive Techniques (Philadelphia, Pennsylvania) (SIGGRAPH ’76). Association for Computing Machinery, New York, NY, USA, 32–39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Alan Borning. 1979. Thinglab—a constraint-oriented simulation laboratory. Ph.D. Dissertation. Stanford University, Dep. Computer Science (March).Google ScholarGoogle Scholar
  3. Alan Borning. 1981. The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory. TOPLAS 3, 4, 353–387.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Alan H. Borning and Daniel H. H. Ingalls. 1982a. Multiple Inheritance in Smalltalk-80. Technical Report Technical Report 82-06-02. University of Washington, Department of Computer Science (June).Google ScholarGoogle Scholar
  5. Alan H. Borning and Daniel H. H. Ingalls. 1982b. Multiple Inheritance in Smalltalk-80. In Proceedings of the Second AAAI Conference on Artificial Intelligence (Pittsburgh, Pennsylvania) (AAAI’82). AAAI Press, 234–237.Google ScholarGoogle Scholar
  6. Alan H. Borning and Daniel H. H. Ingalls. 1982c. A Type Declaration and Inference System for Smalltalk. In Conference Record of the Ninth ACM Symposium on Principles of Programming Languages. ACM Press, Albuquerque, NM, USA, 133–141.Google ScholarGoogle Scholar
  7. L. Peter Deutsch. 1973. A LISP Machine with Very Compact Programs. In Proc. 3rd International Joint Conference on Artificial Intelligence (Stanford, USA) (IJCAI’73). Morgan Kaufmann Publishers, Inc., San Francisco, CA, USA, 697–703. http://www.softwarepreservation.org/projects/LISP/interlisp- d/Deutsch- 3IJCAI.pdfGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. Peter Deutsch and Allan M. Schiffman. 1984. Efficient Implementation of the Smalltalk-80 System. In Conference Record of the Eleventh ACM Symposium on Principles of Programming Languages. Salt Lake City, 297–302.Google ScholarGoogle Scholar
  9. Doug Englebart Institute. 2008. The Demo @ 50. https://thedemoat50.org non-archival.Google ScholarGoogle Scholar
  10. Douglas C. Engelbart and William K. English. 1968. A Research Center for Augmenting Human Intellect. In Proceedings of the December 9-11, 1968, Fall Joint Computer Conference, Part I (AFIPS ’68 (Fall, part I)). Association for Computing Machinery, New York, NY, USA, 395–410.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Bert Freudenberg, Dan H.H. Ingalls, Tim Felgentreff, Tobias Pape, and Robert Hirschfeld. 2014. SqueakJS: A Modern and Practical Smalltalk That Runs in Any Browser. In Proc. 10th Symposium on Dynamic Languages on Dynamic Languages ( (DLS’14)). ACM, New York, NY, USA (Oct.), 57–66. SIGPLAN Not. 50(2).Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A.J. Goldberg. 1983. Smalltalk–80: The Interactive Programming Environment. Addison-Wesley, Reading, MA (May). xi+516 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Adele Goldberg and David Robson. 1983. Smalltalk–80: The Language and its Implementation. Addison-Wesley. xx+714 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Ira P. Goldstein and Daniel G. Bobrow. 1981. PIE: An Experimental Personal Information Environment. Technical Report Technical Report CSL-81-4. Xerox Palo Alto Research Center.Google ScholarGoogle Scholar
  15. Daniel Ingalls, Tim Felgentreff, Robert Hirschfeld, Robert Krahn, Jens Lincke, Marko Röder, Antero Taivalsaari, and Tommi Mikkonen. 2016. A World of Active Objects for Work and Play: The First Ten Years of Lively. In Proc 2016 ACM Int. Symp. New Ideas, New Paradigms, and Reflections on Programming and Software (Amsterdam, Netherlands) ( Onward! 2016). ACM, 238–249. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Dan Ingalls, Bert Freudenberg, Ted Kaehler, Yoshiki Ohshima, and Alan Kay. 2014. Reviving Smalltalk-78: The First Modern Smalltalk Lives Again. In Proc 6th edition International Workshop on Smalltalk Technologies (IWST ), Alain Plantec and Jannik Laval (Eds.). 109–118. http://freudenbergs.de/bert/publications/Ingalls- 2014- Smalltalk78.pdfGoogle ScholarGoogle Scholar
  17. Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, and Alan Kay. 1997. Back to the Future: The Story of Squeak, A Practical Smalltalk Written in Itself. In Proceedings Twelfth ACM Conference on Object-Oriented Programming Systems, Languages and Applications. ACM Press, Atlanta, 318–324.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Dan Ingalls, Scott Wallace, Yu-Ying Chow, Frank Ludolph, and Ken Doyle. 1988. Fabrik: A Visual Programming Environment. SIGPLAN Not. 23, 11 (Nov.), 176–190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Daniel H. H. Ingalls. 1978. The Smalltalk-76 Programming System: Design and Implementation. In Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (Tucson, Arizona) (POPL ’78). Association for Computing Machinery, New York, NY, USA, 9–16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Daniel H. H. Ingalls. 1981. The Smalltalk Graphics Kernel. Byte 6, 8, 168–194. https://archive.org/details/byte- magazine1981- 08/page/n181/mode/2upGoogle ScholarGoogle Scholar
  21. Daniel H. H. Ingalls and Daniel H. H. Ingalls, Jr. 1985. The “Mah¯ abh¯ arata”: Stylistic Study, Computer Analysis, And Concordance. Journal of South Asian Literature 20, 1, 17–46. http://www.jstor.org/stable/40872708Google ScholarGoogle Scholar
  22. Kenneth E. Iverson. 1962. A Programming Language. Wiley. (4th Printing, May 1967).Google ScholarGoogle Scholar
  23. Ted Kaehler. 1981. Virtual Memory for an Object-Oriented Language. Byte 6, 8 (August), 378–387.Google ScholarGoogle Scholar
  24. Alan C. Kay. 1972. A Personal Computer for Children of All Ages. In Proceedings of the ACM Annual Conference - Volume 1 (Boston, Massachusetts, USA) ( ACM ’72). Association for Computing Machinery, New York, NY, USA, Article 1, 11 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Alan C. Kay. 1977. Microelectronics and the Personal Computer. Scientific American 237, 3 (September), 230–245. https: //www- jstor- org.proxy.lib.pdx.edu/stable/24920330Google ScholarGoogle ScholarCross RefCross Ref
  26. Alan C. Kay. 1993. The Early History of Smalltalk. In The Second ACM SIGPLAN Conference on History of Programming Languages. ACM Press, New York, NY, USA, Chapter XI, 511–598.Google ScholarGoogle Scholar
  27. Glenn Krasner. 1983. Smalltalk–80: Bits of History, Words of Advice. Addison-Wesley Publishing Company, Reading, Massachusetts.Google ScholarGoogle Scholar
  28. Wilf R. Lalonde and John R Pugh. 1991. Inside Smalltalk. Vol. II. Prentice-Hall International, Englewood Cliffs, New Jersey.Google ScholarGoogle Scholar
  29. B. W. Lampson, W. W. Lichtenberger, and M. W. Pirtle. 1966. A user machine in a time-sharing system. Proc. IEEE 54, 12 (Dec), 1766–1774. Google ScholarGoogle ScholarCross RefCross Ref
  30. Craig Latta. 2015. a detailed Naiad description. January 2015. https://web.archive.org/web/20161113033728/https: //thiscontext.com/naiad/Google ScholarGoogle Scholar
  31. Frank Ludolph, Yu-Ying Chow, Dan Ingalls, Scott Wallace, and Ken Doyle. 1988. The Fabrik Programming Environment. In IEEE Workshop on Visual Languages. Pittsburgh, PA, USA, 222–230. Google ScholarGoogle ScholarCross RefCross Ref
  32. John McCarthy. 1960. Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. Comm. ACM 3, 4 (April), 184–195. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. John McCarthy. 1978. History of LISP. Association for Computing Machinery, New York, NY, USA, 173–185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. John McCarthy, Paul W. Abrahams, Daniel J. Edwards, Timothy P. Hart, and Michael I Levin. 1965. LISP 1.5 Programmer’s Manual (2 ed.). MIT Press. http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers% 20Manual.pdfGoogle ScholarGoogle Scholar
  35. Eliot Miranda. 2011. The Cog Smalltalk virtual machine — writing a JIT in a high-level dynamic language. In Proc. 5th Workshop on Virtual Machines and Intermediate Languages (VMIL 2011). 7. https://zenodo.org/record/3700608 Presented at the workshop, but not archived in the ACM Digital Library.Google ScholarGoogle Scholar
  36. Eliot Miranda, Clément Béra, Elisa Gonzalez Boix, and Dan Ingalls. 2018. Two Decades of Smalltalk VM Development: Live VM Development through Simulation Tools. In Proc. 10th ACM SIGPLAN Int. Workshop on Virtual Machines and Intermediate Languages (Boston, MA, USA) (VMIL 2018). Association for Computing Machinery, New York, NY, USA (November), 57–66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Kristen Nygaard. 1970. System description by SIMULA — An introduction. Technical Report S-35. Norsk Regnesentral / Norwegian Computing Center (November).Google ScholarGoogle Scholar
  38. Kristen Nygaard and Ole-Johan Dahl. 1981. The development of the SIMULA languages. In History of programming languages I, Richard L. Wexelblat (Ed.). ACM, New York, NY, USA, Chapter IX, 439–480. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Sandra Pakin. 1968. APL\360 Reference Manual. Science Research Associates (SRA).Google ScholarGoogle Scholar
  40. Jeff Pierce. 2002. Alice in a Squeak Wonderland. In Squeak: Open Personal Computing and Multimedia, Mark Guzdial and Kim Rose (Eds.). Prentice Hall, Chapter 3, 69–96.Google ScholarGoogle Scholar
  41. Trygve Reenskaug. 1979. Models–Views–Controllers. Technical Note. Learning Reseearch Group, Xerox Palo Alto Research Center (December). 2 pages. Google ScholarGoogle ScholarCross RefCross Ref
  42. A. Dain Samples, David Ungar, and Paul Hilfinger. 1986. SOAR: Smalltalk without bytecodes. SIGPLAN Not. 21, 11 (June), 107–118. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Steve Saunders. 1977. Improved FM audio synthesis methods for real-time digital music generation. Computer Music Journal 1, 1 (February), 53–55.Google ScholarGoogle Scholar
  44. D. V. Schorre. 1964. META II a Syntax-Oriented Compiler Writing Language. In Proc. 1964 19th ACM National Conf. (ACM ’64). Association for Computing Machinery, New York, NY, USA, 41.301–41.3011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Ernst Friedrich Schumacher. 1973. Small is Beautiful: A Study of Economics as if People Mattered. Blond & Briggs.Google ScholarGoogle Scholar
  46. D. A. Smith, A. Kay, A. Raab, and D. P. Reed. 2003. Croquet — a collaboration system architecture. In First Conference on Creating, Connecting and Collaborating Through Computing (C5). (Jan), 2–9. Google ScholarGoogle ScholarCross RefCross Ref
  47. Dave Thomas. 1995. Celebrating 25 Years of Smalltalk. Mojowire. http://www.mojowire.com/TravelsWithSmalltalk/ DaveThomas- TravelsWithSmalltalk.htm (also at Internet Archive 12 June 2013 05:51:49 ).Google ScholarGoogle Scholar
  48. David Ungar and Randall B. Smith. 1987. Self: The Power of Simplicity. In Proceedings OOPSLA’87 (International Conference on Object-Oriented Programming Systems, Languages and Applications). 227–242.Google ScholarGoogle Scholar
  49. Thomas A. Wadlow. 1981. The Xerox Alto Computer. Byte 6, 9 (September), 58–68. https://archive.org/details/bytemagazine- 1981- 09/page/n58Google ScholarGoogle Scholar

Index Terms

  1. The evolution of Smalltalk: from Smalltalk-72 through Squeak

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!