ABSTRACT
It is common practice to create new technologies with the existing ones and eventually replace them. We investigate the domain of user interfaces (UIs) in self-supporting programming environments. The Squeak/Smalltalk programming system has a history of almost 20 years of replacing Smalltalk-80's model-view-controller (MVC) with Self's Morphic, a direct manipulation interface. In the course of this transition, we think it is likely that Squeak managed to provide an abstraction for arbitrary UI frameworks, called projects. In this paper, we describe plain Squeak without its user interface, considering object collaboration, code execution, and extension points in the virtual machine. We implemented a command-line interface, the Squeak Shell, to emphasize the simplicity of adding a new UI to Squeak using this project concept. We believe that self-supporting programming environments can benefit from multiple user interfaces to accommodate a variety of tasks.
- B. J. Allen-Conn and K. Rose. Powerful Ideas in the Classroom. Viewpoints Research Institute, Inc, 2003.Google Scholar
- P. Butterworth, A. Otis, and J. Stein. The GemStone Object Database Management System. Communications of the ACM, 34(10):64--77, 1991. Google ScholarDigital Library
- S. Cooper, W. Dann, and R. Pausch. Alice: A 3-D Tool for Introductory Programming Concepts. In Journal of Computing Sciences in Colleges, volume 15, pages 107--116, 2000. Google ScholarDigital Library
- L. P. Deutsch. The Past, Present and Future of Smalltalk. In Proceedings of the 3rd European Conference on Object-Oriented Programming (ECOOP), pages 73--87, 1989.Google Scholar
- T. Felgentreff, J. Lincke, R. Hirschfeld, and L. Thamsen. Lively Groups: Shared Behavior in a World of Objects Without Classes or Prototypes. In Proceedings of the Workshop on Future Programming, pages 15--22. ACM, 2015. Google ScholarDigital Library
- T. Felgentreff, T. Pape, L. Wassermann, R. Hirschfeld, and C. F. Bolz. Towards Reducing the Need for Algorithmic Primitives in Dynamic Language VMs Through a Tracing JIT. In Proceedings of the Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS). ACM, 2015. Google ScholarDigital Library
- B. Freudenberg, D. H. Ingalls, T. Felgentreff, T. Pape, and R. Hirschfeld. SqueakJS: A Modern and Practical Smalltalk That Runs in Any Browser. In Proceedings of the 10th ACM Symposium on Dynamic languages (DLS), pages 57--66. ACM, 2014. Google ScholarDigital Library
- B. Freudenberg, Y. Ohshima, and S. Wallace. Etoys for One Laptop Per Child. In 2009 Seventh International Conference on Creating, Connecting and Collaborating Through Computing (C5), pages 57--64. IEEE, 2009. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Abstraction and Reuse of Object-oriented Design. Springer, 2001.Google ScholarCross Ref
- A. Goldberg. Smalltalk-80: The Interactive Programming Environment. Addison-Wesley Longman Publishing Co., Inc., 1984. Google ScholarDigital Library
- A. Goldberg and D. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley Longman Publishing Co., Inc., 1983. Google ScholarDigital Library
- E. L. Hutchins, J. D. Hollan, and D. A. Norman. Direct Manipulation Interfaces. Human-Computer Interaction, 1(4):311--338, 1985. Google ScholarDigital Library
- D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, and A. Kay. Back to the Future: The Story of Squeak---A Practical Smalltalk Written in Itself. ACM SIGPLAN Notices, 32(10):318--326, October 1997. Google ScholarDigital Library
- D. Ingalls, K. Palacz, S. Uhler, A. Taivalsaari, and T. Mikkonen. The Lively Kernel: A Self-supporting System on a Web Page. In Self-Sustaining Systems, pages 31--50. Springer, 2008. Google ScholarDigital Library
- D. Ingalls, S. Wallace, Y. Chow, F. Ludolph, and K. Doyle. Fabrik: A Visual Programming Environment. ACM SIGPLAN Notices, 23(11):176--190, 1988. Google ScholarDigital Library
- W. R. LaLonde and J. R. Pugh. Inside Smalltalk Volume II. Prentice Hall USA, 1990. Google ScholarDigital Library
- J. Maloney. An Introduction to Morphic: The Squeak User Interface Framework. Squeak: Open Personal Computing and Multimedia, 2001.Google Scholar
- J. Maloney, M. Resnick, N. Rusk, B. Silverman, and E. Eastmond. The Scratch Programming Language and Environment. ACM Transactions on Computing Education (TOCE), 10(4):16:1--16:15, 2010. Google ScholarDigital Library
- J. H. Maloney and R. B. Smith. Directness and Liveness in the Morphic User Interface Construction Environment. In Proceedings of the 8th Symposium on User Interface and Software Technology (UIST), pages 21--28. ACM, 1995. Google ScholarDigital Library
- J. McCarthy. LISP 1.5 Programmer's Manual. MIT press, 1965. Google ScholarDigital Library
- Y. Ohshima, J. Maloney, and A. Ogden. The Parks PDA: A Handheld Device for Theme Park Guests in Squeak. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 370--380. ACM, 2003. Google ScholarDigital Library
- S. P. Reiss, J. N. Bott, and J. J. La Viola. Plugging In and Into Code Bubbles: The Code Bubbles Architecture. Software: Practice and Experience, 44(3):261--276, 2014. Google ScholarDigital Library
- D. A. Smith, A. Kay, A. Raab, and D. P. Reed. Croquet - A Collaboration System Architecture. In Proceedings of the Conference on Creating, Connecting and Collaborating Through Computing (C5) 2003, pages 2--2. IEEE, Jan. 2003.Google ScholarCross Ref
- R. B. Smith. Experiences with the Alternate Reality Kit: An Example of the Tension Between Literalism and Magic. In ACM SIGCHI Bulletin, volume 17, pages 61--67. ACM, 1987. Google ScholarDigital Library
- M. Taeumel, M. Perscheid, B. Steinert, J. Lincke, and R. Hirschfeld. Interleaving of Modification and Use in Data-driven Tool Development. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward!), pages 185--200. ACM, 2014. Google ScholarDigital Library
- S. L. Tanimoto. A Perspective on the Evolution of Live Programming. In Proceedings of the 1st International Workshop on Live Programming (LIVE), pages 31--34. IEEE, 2013. Google ScholarDigital Library
- D. Ungar and R. B. Smith. Self. In Proceedings of the 3rd Conference on History of Programming Languages (HOPL), pages 9/1--9/50. ACM SIGPLAN, 2007. Google ScholarDigital Library
Recommendations
The evolution of Smalltalk: from Smalltalk-72 through Squeak
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 ...
Declarative programming of graphical interfaces by visual examples
UIST '92: Proceedings of the 5th annual ACM symposium on User interface software and technologyGraphical user interfaces (GUI) provide intuitive and easy means for users to communicate with computers. However, construction of GUI software requires complex programming that is far from being intuitive. Because of the “semantic gap” between the ...
Probe Log: Visualizing the Control Flow of Babylonian Programming
Programming '23: Companion Proceedings of the 7th International Conference on the Art, Science, and Engineering of ProgrammingCode itself is abstract, which makes it often difficult to understand – sometimes even by the programmers that wrote it. When working with or thinking about code, programmers thus often resort to concrete values and execution traces to make the abstract ...
Comments