ECOOP 1995: ECOOP’95 — Object-Oriented Programming, 9th European Conference, Åarhus, Denmark, August 7–11, 1995 pp 303-330 | Cite as
Programming as an Experience: The Inspiration for Self
Abstract
The Self system attempts to integrate intellectual and non-intellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation each help create this integrated experience. The language semantics embed the programmer in a uniform world of simple objects that can be modified without appealing to definitions of abstractions. In a similar way, the graphical interface puts the user into a uniform world of tangible objects that can be directly manipulated and changed without switching modes. The implementation strives to support the world-of-objects illusion by minimizing perceptible pauses and by providing true source-level semantics without sacrificing performance. As a side benefit, it encourages factoring. Although we see areas that fall short of the vision, on the whole, the language, interface, and implementation conspire so that the Self programmer lives and acts in a consistent and malleable world of objects.
Keywords
User Interface Graphical Object Assignment Slot Tangible Object Data SlotPreview
Unable to display preview. Download preview PDF.
7 References
- [APS93]Ole Agesen, Jens Palsberg, and Michael I. Schwartzbach. Type Inference of Self: analysis of Objects with Dynamic and Multiple Inheritance, in Proc. ECOOP’ 93, pp. 247–267. Kaiserslautem, Germany, July 1993.Google Scholar
- [Blas94]G. Blaschek. Object-Oriented Programming with Prototypes, Springer-Verlag, New York, Berlin 1994.MATHGoogle Scholar
- [BD81]A. Borning and R. Duisberg, Constraint-Based Tools for Building User Interfaces, ACM Transactions on Graphics 5(4) pp. 345–374 (October 1981).CrossRefGoogle Scholar
- [CUL89]Craig Chambers, David Ungar, and Elgin Lee. An Efficient Implementation of Self, a Dynamically-Typed Object-Oriented Language Based on Prototypes. In OOPSLA’ 89 Conference Proceedings, pp. 49–70, New Orleans, LA, 1989. Published as SIGPLAN Notices 24(10), October, 1989.Google Scholar
- [CU90]Craig Chambers and David Ungar. Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs. In Proceedings of the SIGPLAN’ 90 Conference on Programming Language Design and Implementation, White Plains, NY, June, 1990. Published as SIGPLAN Notices 25(6), June, 1990.Google Scholar
- [CU91]Craig Chambers and David Ungar. Making Pure Object-Oriented Languages Practical. In OOPSLA’ 91 Conference Proceedings, pp. 1–15, Phoenix, AZ, October, 1991.Google Scholar
- [CUCH91]Craig Chambers, David Ungar, Bay-Wei Chang, and Urs Hölzle, Parents are Shared Parts of Objects: Inheritance and Encapsulation in Self. Journal of Lisp and Symbolic Computation, 4(3), Kluwer Academic Publishers, June, 1991.Google Scholar
- [Cha92]Craig Chambers. The Design and Implementation of the Self Compiler, an Optimizing Compiler for Object-Oriented Programming Languages. Ph.D. Thesis, Computer Science Department, Stanford University, April, 1992.Google Scholar
- [CUS95]Bay-Wei Chang, David Ungar, and Randall B. Smith, Getting Close to Objects, in Burnett, M., Goldberg, A., and Lewis, T., editors, Visual Object-Oriented Programming, Concepts and Environments, pp. 185–198, Manning Publications, Greenwich, CT, 1995.Google Scholar
- [Cha95]Bay-Wei Chang, Seity: Object-Focused Interaction in the Self User Interface, Ph.D. dissertation, in preparation, Stanford University, 1995.Google Scholar
- [DS84]L. Peter Deutsch and Allan M. Schiffman. Efficient Implementation of the Smalltalk-80 System. In Proceedings of the 11th Annual ACM Symposium on the Principles of Programming Languages, pp. 297–302, Salt Lake City, UT, 1984.Google Scholar
- [DMC92]C. Dony, J. Malenfant, and P. Cointe, Prototype-Based Languages: From a New Taxonomy to Constructive Proposals and their Validation, in Proc. OOPSLA’ 92, pp. 201–217.Google Scholar
- [GR83]Adele Goldberg and David Robson, Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA, 1983.MATHGoogle Scholar
- [HCU91]Urs Hölzle, Craig Chambers, and David Ungar. Optimizing Dynamically-Typed Object-Oriented Programs using Polymorphic Inline Caches. In ECOOP’ 91 Conference Proceedings, pp. 21–38, Geneva, Switzerland, July, 1991.Google Scholar
- [HCU92]Urs Hölzle, Craig Chambers, and David Ungar. Debugging Optimized Code with Dynamic Deoptimization, in Proc. ACM SIGPLAN’ 92 Conferences on Programming Language Design and Implementation, pp. 32–43, San Francisco, CA (June 1992).Google Scholar
- [Hol94]Urs Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. Ph.D. Thesis, Stanford University, Computer Science Department, 1994.Google Scholar
- [HU94a]Urs Hölzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. In Proceedings of the SIGPLAN 94 Conference on Programming Language Design and Implementation, Orlando, FL, June, 1994.Google Scholar
- [HU94b]Urs Hölzle and David Ungar. A Third Generation Self Implementation: Reconciling Responsiveness with Performance. In OOPSLA’94 Conference Proceedings, pp. 229–243, Portland, OR, October, 1994. Published as SIGPLAN Notices 29(10), October, 1994.Google Scholar
- [MMM90]Ole Lehrmann Madsen, Boris Magnusson, and Birger Møller-Pedersen, Strong Typing of Object-Oriented Languages Revisited. In ECOOP/OOPSLA’90 Conference Proceedings, pp. 140–149, Ottawa, Canada, October, 1990.Google Scholar
- [MMN93]Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard, Object-Oriented Programming in the Beta Programming Language, Addison-Wesley Publishing Co., Wokingham, England, 1993.Google Scholar
- [Mul95]Phillipe Mulet, Réflexion & Langages á Prototypes, Ph.D. Thesis in preparation, Ecole des Mines de Nantes, France, 1995.Google Scholar
- [MS95]John Maloney, and Randall B. Smith, Directness and Liveness in the Morphic User Interface Construction Environment. In preparation.Google Scholar
- [Smi87]Randall B. Smith. Experiences with the Alternate Reality Kit, an Example of the Tension Between Literalism and Magic, in Proc. CHI + GI Conference, pp 61–67, Toronto, (April 1987).Google Scholar
- [SUC92]Randall B. Smith, David Ungar, and Bay-Wei Chang. Tlie Use Mention Perspective on Programming for the Interface, In Brad A. Myers, Languages for Developing User Interfaces, Jones and Bartlett, Boston, MA, 1992. pp 79–89.Google Scholar
- [SLS94]R. B. Smith, M. Lentczncr, W. Smith, A. Taivalsaari, and D. Ungar, Prototype-Based Languages: Object Lessons from Class-Free Programming (Panel), in Proc. OOPSLA’ 94, pp. 102–112 (October 1994). Also see the panel summary of the same title, in Addendum to the Proceedings of OOPSLA’ 94, pp. 48–53.Google Scholar
- [SMU95]Randall B. Smith, John Maloney, and David Ungar, The Self-4.0 User Interface: Manifesting the System-wide Vision of Concreteness, Uniformity, and Flexibility. To appear in Proc. OOPSLA’ 95.Google Scholar
- [Tai92]Antero Taivalsaari, Kevo-a prototype-based object-oriented language based on concatenation and module operations. University of Victoria Technical Report DCS-197-1R, Victoria, B.C., Canada, June 1992Google Scholar
- [Tai93]Antero Taivalsaari, A critical view of inheritance and reusability in object-oriented programming. Ph.D. dissertation, Jyvaskyla Studies in Computer Science, Economics and Statistics 23, University of Jyvaskyla, Finland, December 1993, 276 pages (ISBN 951-34-0161-8).Google Scholar
- [Tai93a]Antero Taivalsaari, Concatenation-based object-oriented programming in Kevo. Actes de la 2eme Conference sur la Representations Par Objets RPO’93 (La Grande Motte, France, June 17–18, 1993), Published by EC2, France, June 1993, pp.117–130Google Scholar
- [US87]David Ungar and Randall B. Smith, Self: The Power of Simplicity, Proceedings of the 1987 ACM Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), Orlando, FL, October, 1987, pp. 227–242. A revised version appeared in the Journal of Lisp and Symbolic Computation, 4(3), Kluwer Academic Publishers, June, 1991.Google Scholar
- [USCH92]David Ungar, Randall B. Smith, Craig Chambers, and Urs Hölzle. Object, Message, and Performance: How They Coexist in Self. Computer, 25(10), pp. 53–64. (October 1992).CrossRefGoogle Scholar
- [Wol95]Mario Wolczko, Implementing a Class-based Language using Prototypes, In preparation.Google Scholar