Skip to Content Java Solaris Communities Partners My Sun Sun Store United States Worldwide

»  1992
»  1993
»  1994
»  1995
»  1996
»  1997
»  1998
»  1999
»  2000
»  2001
»  2002
»  2003
»  2004
»  2005
»  2006

Fiscal 1994 Project Portfolio Report





Self

Randy Smith and Dave Ungar, Principal Investigators
randall.smith@Eng.Sun.COM
david.ungar@Eng.Sun.COM

Overall Objective

To improve programmer productivity by creating a language and programming environment based entirely on simple objects.

Objective for FY94

To add support for the less sophisticated programmer, so that Self can address the needs of a very wide range of users.

Description

Users will be drawn to Self by an unusually engaging, direct-manipulation graphical interface. They will find Self's simple semantics easy to learn, will be gratified by Self's immediate response to programming changes, and will find it easy to write short programs by assembling prefabricated parts in the interface. Self will be a high-performance, object-oriented programming language and environment that combines simplicity with power. As users grow in ambition and sophistication, they will discover more components available for reuse. All components, having been built in Self, will be easy to customize. Users will smoothly incorporate software written in other languages into their Self objects, and they will build moderately large applications that do not suffer from performance problems.

Accomplishments

We have concentrated on giving Self a new user interface, bringing the implementation up to industrial strength, and providing better tools for programming in Self. Our particular new targets have been to add direct manipulation construction like that in many scripting environments, and to start investigating Self's use for education about object-oriented concepts.
  • The public release (Self 3.0) includes an animated, interactive tutorial on Self. This was put through a battery of user tests and fine tuned. The tutorial will be modified and used in a two-day class at the University of Washington. We have started discussions which may lead to Self's being used for object- oriented programming education in several other universities.
  • Could Self be a useful means for browsing or even publishing in the Distributed Objects Everywhere (DOE) world? To investigate, three members of the group attended an early developers class for DOE. They then developed the ability to parse Interface Definition Language (IDL) files from within Self, and successfully connected to DOE.
  • A survey of our Self 3.0 users was designed and issued in a preliminary and final passes. Results of the preliminary survey convinced us that we would get reasonable response, and that the survey was essentially comprehensible. Survey questions center around the users' success at File Transport Protocol (ftp) and installation, their experience with the tutorial and programming environment, as well as their opinions on some of the technical issues facing Self's further development.
  • User studies were carried out with eight subjects using our first user interface. The intent of the study was to see how concreteness and animation of objects, such as that employed in the prototype Self user interface, affect users' ability to understand objects and their relationships, and how they affect users' satisfaction in using the interface.
  • Work in the new user interface continues at high speed. We have built facilities to do automatic layout of Graphical User Interface (GUI) widgets by direct manipulation. We developed programming tools including a text editor that can support arbitrary graphical objects mixed in-line with text, and a generalized outliner that can be used for viewing and editing objects. Any message a Self object understands can be made into a button, so construction of conventional GUI interfaces from arbitrary Self objects is very fast.

References

Publications and Tutorials
"Self: The Power of Simplicity," D. Ungar, R. Smith, SMLI TR-94-30.

"Mango: A Parser Generator for Self," O. Agesen, SMLI TR-94-27.

"Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming," U. Hoelzle, SMLI 94-0358.

"Self: The Next Generation," M. Wolczko, J. Maloney, SMLI 94-0177.

"Self: The Language and Its Environment," M. Wolczko, SMLI 94-0230.

"A Third-Generation Self Implementation: Reconciling Responsiveness with Performance," U. Hoelzle, D. Ungar, submitted to OOPSLA'94, October 1994, SMLI 94-0247.

"Programming in Self," M. Wolczko, J. Maloney, OOPSLA'94, October 23, 1994, SMLI 94-0320.

"Constraint Based Type Inference and Parametric Polymorphism," O. Agesen, International Static Analysis Symposium 1994, September 28-30, 1994, SMLI 94-0232.

"Self: The Next Generation," M. Wolczko, University of Manchester, Manchester England, September 12, 1994, SMLI 94-0330.

"Self: The Next Generation," M. Wolczko, European Smalltalk Users' Group Summer School, Cork Ireland, September 8, 1994, SMLI 94-0329.

"Self: Pure, Plastic Programming with Performance," R. Smith, D. Ungar, Xerox PARC Palo Alto CA, March 24, 1994, SMLI 94-0304.

"The Self Language and Its Implementation," L. Bak, Aarhus University Denmark, March 11, 1994, SMLI 94-0306.

"The Self Project at SMLI," L. Bak, CCI Europe, Aarhus Denmark, March 9, 1994, SMLI 94-0305.

"Self: A Plastic Medium for Programming," D. Ungar, ICSI, UC Berkeley, January 1994, SMLI 94-0303.

"The Self 3.0 Programmer's Reference Manual," O. Agesen, L. Bak, C. Chambers, U. Hoelzle, J. Maloney, R. Smith, D. Ungar, M. Wolczko, SMLI 94-0153.

Self Demonstration, M. Wolczko, University of Manchester, Manchester England, December 21, 1993, SMLI 94-0307.

"Animation: From Cartoons to the User Interface," B. Chang, D. Ungar, UIST'93, November 3, 1993, SMLI 94-0214.

"Directly Experiencing Objects," B. Chang, D. Ungar, R. Smith, J. Maloney, OOPSLA'93, October 1, 1993, SMLI 94-0299.

"Self: Interacting with Objects," D. Ungar, Bell Labs, Holmdel NJ, October 1993, SMLI 94-0301.

"Self: Interacting with Objects," D. Ungar, Bell Labs, Murray Hill NJ, October 1993, SMLI 94-0302.

"Programming with Concrete Objects," B. Chang, D. Ungar, R. Smith, OOPSLA'93, September 29-30, 1993, SMLI 94-0300.

"Hardware Support for Object-Oriented Systems," M. Wolczko, OOPLSA'93, Washington DC, September 26, 1993, SMLI 94-0315.

"Adding Garbage Collection to C++ Will Not Solve the Real Problem," D. Ungar, OOPSLA'93, Workshop on Garbage Collection, SMLI 94-0308.

"Type Inference of Self," O. Agesen, J. Palsberg, M. Schwarzbach, ECOOP'93, SMLI 94-0298.

"Directly Experiencing Objects," B. Chang, D. Unger, OOPSLA'93 Workshop on Visual Object-Oriented Programming, SMLI 94-0322.

"Fast Write Barrier for Generational Garbage Collection," U. Hoelzle, OOPSLA'93, SMLI 94-0352.

"Integrating Independently-Developed Components in Objects," U. Hoelzle, ECOOP'93, SMLI 94-0353.


Would you recommend this Sun site to a friend or colleague?
Contact About Sun News Employment Privacy Terms of Use Trademarks Copyright 1994-2008 Sun Microsystems, Inc.