third iteration: the tension between a computer user interface and the underlying computational model
Alan Kay was directly involved in development of the GUI (MVC), the first OOPs language, Smalltalk (an object <- message model for programming complexity) the personal computer and the dynabook vision (an integration of these ideas into a meta medium for children)
What sort of user interface is suitable for learning?
We have become very used to a certain style of user interface, one which is “user friendly” and which gives us access to the function of the computer. The user friendly user interface has been designed by experts to not demand too much of the end user. Some systems take this a step further and actively discourage the user from becoming curious about how things work under the hood.
It is not just a matter of “user friendly”, in itself that is not serious grounds for complaint. It is the idea of users as users of clearly defined applications that have been developed by “experts”. In large part this state of things has arisen through commercialisation. A marketable commodity requires a clear definition. So proprietary applications are developed as a black box as an expression of “efficient software engineering”. In this commercial vision the “personal computer” is not really personal because most of its interfaces have been standardised which transforms the actors into docile agents who respond in predictable ways to stimuli.
“my life belongs to the engineers ... we hesitate to exist” (Latour)If you start from a more philosophical perspective of amplifying human reach or of computer as a meta medium for expressing the creative spirit then the attitude to the user is different. The user, as well as being a user, is also a potential constructionist designer and developer who eventually will be able to create their own tools. So, the tools for exploring and making the system should be powerful and easily accessible. This is one of the features of Smalltalk.
“The self evident state of the art blinds people to other possibilities” (Andy diSessa)
The ethic is one of mutability and simplicity. Every component of a system is open to be explored, investigated, modified and built upon. The tool / medium distinction is blurred and so is a lot of other false clarity. Rather than a world of reified “experts”, “engineers”, “designers”, “end-users”, “miracle workers” and “plain folks” it would be better to blur these boundaries, particularly for learning environments.
ETOYS and OBJECT ORIENTED PROGRAMMING
One piece of educational software that attempts to put much of this together is Etoys, which incorporates features from logo, smalltalk (including late binding), hypercard, starlogo and morphic – an integration of some of the most interesting programs over the past 35 years. Etoys is part of the OLPC project.
A slogan that helps understands some of the thinking behind the etoys user interface is “doing with images makes symbols” (Bruner / Kay)
Jerome Bruner (1960s) identified three mentalities: enactive (kinesthenic), iconic and symbolic (abstraction). The idea is that repeated doing of visual manipulations will gradually lead to the students developing abstract ideas.
Etoys is a "live" system. The code can be written and variables manipulated directly while the system is still running in front of you. This makes powerful ideas such as variables and feedback far more accessible. It has transparent parallelism (aka late binding)
Etoys represents an attempt to make an object <-- message model of programming accessible to children, a better underlying model to represent complexity than a procedural model. Some people have argued that this OOPs model cannot be taught to children but Etoys represents an attempt to show that it is possible. In etoys the GUI consistently represents the underlying model. For example, you have drag and drop visual tiles which then spell out something like: ball's heading <-- 45 + random(90) This is like an English sentence: <object> receives <message>
Another metaphor here is cell biology. One kind of building block which can differentiate into all the needed building blocks. You need an evolutionary approach.
Smalltalk has a recursive design. Why divide a computer into weaker things such as data structures and procedures? Instead why not divide it up into little computers?
The foundational premises of Smalltalk are:
- everything is an object
- objects send and receive messages
- objects have their own memory
- every object is an instance of a class
- the class holds the shared behaviour of its instances
- to evaluate a program list control is passed to the first object and the remainder is treated as its message
Tracing the Dynabook: A Study of Technocultural Transformations (PhD Dissertation) by John W. Maxwell
This pulls together a lot of scattered information about Alan Kay into one place, very valuable from that point of view. Start with Chapter 4 to obtain an overview of Alan Kay's educational vision. Maxwell correctly stresses the importance of a historical perspective, going back to the 1960s, in order to understand how educational computing got to the place it is now.