8

The evolution of Smalltalk: from Smalltalk-72 through Squeak

 3 years ago
source link: https://dl.acm.org/doi/10.1145/3386335
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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.

Supplemental Material

Available for Download
zip
Auxiliary Archive (1.3 KB)

Launch file from Smalltalk-74 to Smalltalk-76

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.
  2. Alan Borning. 1979. Thinglab—a constraint-oriented simulation laboratory. Ph.D. Dissertation. Stanford University, Dep. Computer Science (March).
  3. Alan Borning. 1981. The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory. TOPLAS 3, 4, 353–387.
  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).
  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.
  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.
  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.pdf
  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.
  9. Doug Englebart Institute. 2008. The Demo @ 50. https://thedemoat50.org non-archival.
  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.
  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).
  12. A.J. Goldberg. 1983. Smalltalk–80: The Interactive Programming Environment. Addison-Wesley, Reading, MA (May). xi+516 pages.
  13. Adele Goldberg and David Robson. 1983. Smalltalk–80: The Language and its Implementation. Addison-Wesley. xx+714 pages.
  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.
  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.
  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.pdf
  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.
  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.
  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.
  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/2up
  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/40872708
  22. Kenneth E. Iverson. 1962. A Programming Language. Wiley. (4th Printing, May 1967).
  23. Ted Kaehler. 1981. Virtual Memory for an Object-Oriented Language. Byte 6, 8 (August), 378–387.
  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.
  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/24920330
  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.
  27. Glenn Krasner. 1983. Smalltalk–80: Bits of History, Words of Advice. Addison-Wesley Publishing Company, Reading, Massachusetts.
  28. Wilf R. Lalonde and John R Pugh. 1991. Inside Smalltalk. Vol. II. Prentice-Hall International, Englewood Cliffs, New Jersey.
  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.
  30. Craig Latta. 2015. a detailed Naiad description. January 2015. https://web.archive.org/web/20161113033728/https: //thiscontext.com/naiad/
  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.
  32. John McCarthy. 1960. Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. Comm. ACM 3, 4 (April), 184–195.
  33. John McCarthy. 1978. History of LISP. Association for Computing Machinery, New York, NY, USA, 173–185.
  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.pdf
  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.
  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.
  37. Kristen Nygaard. 1970. System description by SIMULA — An introduction. Technical Report S-35. Norsk Regnesentral / Norwegian Computing Center (November).
  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.
  39. Sandra Pakin. 1968. APL\360 Reference Manual. Science Research Associates (SRA).
  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.
  41. Trygve Reenskaug. 1979. Models–Views–Controllers. Technical Note. Learning Reseearch Group, Xerox Palo Alto Research Center (December). 2 pages.
  42. A. Dain Samples, David Ungar, and Paul Hilfinger. 1986. SOAR: Smalltalk without bytecodes. SIGPLAN Not. 21, 11 (June), 107–118.
  43. Steve Saunders. 1977. Improved FM audio synthesis methods for real-time digital music generation. Computer Music Journal 1, 1 (February), 53–55.
  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.
  45. Ernst Friedrich Schumacher. 1973. Small is Beautiful: A Study of Economics as if People Mattered. Blond & Briggs.
  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.
  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 ).
  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.
  49. Thomas A. Wadlow. 1981. The Xerox Alto Computer. Byte 6, 9 (September), 58–68. https://archive.org/details/bytemagazine- 1981- 09/page/n58

Comments

0 Comments


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK