Programming as an Experience: The Inspiration for Self

@inproceedings{Smith1995ProgrammingAA,
  title={Programming as an Experience: The Inspiration for Self},
  author={Randall B. Smith and David M. Ungar},
  booktitle={ECOOP},
  year={1995}
}
The Self system attempts to integrate intellectual and nonintellectual 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 direcdy… 
Self
TLDR
Although the Self project ended in 1995, its implementation, animation, user interface toolkit architecture, and even its prototype object model impact computer science today (2006).
Constructing a metacircular Virtual machine in an exploratory programming environment
TLDR
This work is concurrently constructing two artifacts--a Self VM entirely in Self (the Klein VM), and a specialized development environment--with strict adherence to pure object-orientation, metacircularity, heavy code reuse, reactivity, and mirror-based reflection.
Example centric programming
TLDR
Examples Centric Programming seeks to add IDE support for examples throughout the process of programming, instead of programmers interpreting examples in their head, the examples are written down and the IDE interprets them automatically.
Example centric programming
TLDR
Examples Centric Programming seeks to add IDE support for examples throughout the process of programming, instead of programmers interpreting examples in their head, the examples are written down and the IDE interprets them automatically.
PyMorphic - a Morphic based Live Programming Graphical User Interface implemented in Python
TLDR
In this work a number of systems with a shared aim of providing educational tools for scholars from compulsory level to undergraduate college were studied, showing that Morphic and Python go well together because Python is a programming language that allows for compact and dynamic code.
First Class Copy & Paste
TLDR
An operational semantics for an essential subset of the Subtext language is defined and a fresh approach to the problems of mutable state, I/O, and concurrency is presented.
Wyvern: a simple, typed, and pure object-oriented language
TLDR
The design of Wyvern is described, a statically typed, pure object-oriented language that attempts to retain much of the simplicity and expressiveness of these iconic designs of Smalltalk and Self, suggesting a new way to think about a minimal, practical, typed core language for objects.
The basic object system: supporting a spectrum from prototypes to hardened code
TLDR
BOS attempts to support a spectrum of activities in one environment---ranging from rapid prototyping to code hardening, which enables the end-to-end programming of software in an integrated and unified environment.
Subtext: uncovering the simplicity of programming
TLDR
Subtext is a new medium in which the representation of a program is the same thing as its execution, and unifies traditionally distinct programming tools and concepts, and enables some novel ones.
The Object-Oriented Paradigm
TLDR
This chapter attempts to present the linguistic aspects which concern objects and their use, starting with a presentation of objects as a way to gain data abstraction in a way that is both flexible and extensible.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 92 REFERENCES
The Self-4.0 user interface: manifesting a system-wide vision of concreteness, uniformity, and flexibility
TLDR
The semantics of the language, the efficiency and fidelity of its implementation, and the architecture of its user interface conspire to make the experience of constructing programs in Self immediate and tangible.
Self: The power of simplicity
TLDR
Because Self does not distinguish state from behavior, it narrows the gaps between ordinary objects, procedures, and closures and offers new insights into object-oriented computation.
Getting Close to Objects: Object-Focused Programming Environments
TLDR
The object-focused model is proposed, which attempts to foster the notion that objects themselves are directly available for interaction, by being extremely faithful to the notion of concreteness of objects.
Object, message, and performance: how they coexist in Self
TLDR
It is shown that Self's uniform application of the object-message paradigm gives programmers unusual flexibility and unconventional optimizations can bring its peak performance to within a factor of two of optimized C's performance.
The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages
TLDR
By applying a collection of implementation techniques that can improve the run-time performance of object-oriented languages, the performance of the SELF system is five times better than the fastest Smalltalk-80 system, better than that of an optimizing Scheme implementation, and close to half that of a optimizing C implementation.
An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes
TLDR
This work has developed and implemented techniques that double the performance of dynamically-typed object-oriented languages and dynamically compiles multiple versions of a source method, each customized according to its receiver's map.
An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes
TLDR
This work has developed and implemented techniques that double the performance of dynamically-typed object-oriented languages and dynamically compiles multiple versions of a source method, each customized according to its receiver's map.
Smalltalk-80: The Language and Its Implementation
TLDR
This book is the first detailed account of the Smalltalk-80 system and is divided into four major parts: an overview of the concepts and syntax of the programming language, a specification of the system's functionality, and an example of the design and implementation of a moderate-size application.
Experiences with the Alternate Reality Kit: An Example of the Tension between Literalism and Magic
TLDR
An overview of the Alternate Reality Kit, an animated environment for creating interactive simulations that is built upon a physical-world metaphor: All objects have an image, a position, a velocity, and the ability to experience forces.
A third-generation SELF implementation: reconciling responsiveness with performance
TLDR
SELF-93 is the first implementation of a pure object-oriented language achieving both good performance and good responsiveness, and a definition of pause clustering is proposed and it is shown that clustering can make an order-of-magnitude difference in the pause time distribution.
...
1
2
3
4
5
...