Information Environments for the 21st Century

Trygve Reenskaug trygver at ifi.uio.no
Thu Oct 2 13:52:26 UTC 2003


Hi all,
I'm new to Squeak but old to Smalltalk (since 1978). My retirement project 
is definitely "blue plane", and its scope is expanding at a frightening 
rate. The short form: "What should the information systems of the 21st 
century look like?"

The watchword should be that it should support the users' mental models, 
including programming: "Put the user in the driver's seat"

Who is the user and what does his/her environment look like?
  1) A person in the role of a private citizen.
      Top level model: an object model holding his information
      as tangible objects
      (not a class model, which is a different kind of animal all together)
  2) A person in the role of a professional team member in an enterprise.
      Top level model: an object model holding his information as
      tangible objects and supporting his/her cooperation with others.
      (not a class model, which is a different kind of animal all together)
  3) A person in the role of an applications programmer
      Top level model: an object model holding his programs as
      tangible objects
      The "programming language" is basically a modelling language
      Rephrasing Alan:
       "A modelling language is what the programming language designers
        forgot to put into the language."
  4) A person in the role of a methodologist
      Top level model: an object model holding metaclass objects defining
      the above modelling/programming language
  5) A person in the role of visionary....
      Defining the meta-meta objects that form the methodologist's
      environment
      These objects are created by magic and have to be very stable.

The ideas are mainly from
  - Smalltalk "everything is represented as an object"
  - UML, with its meta-levels. An application model is an instance of UML,
       and UML is an instance of MOF.
  - The UML specification defines a complex class hierarchy. This hierarchy
       is simply a comment to the real substance; which is the objects that
       are instances of the defined classes.
  - Richard Pawson's Naked Objects project where information is presented to
       the user as tangible objects.

and much more. Why should our meta-meta language restrict us to punched 
card input and line printer output, i.e., BNF.

But the main point is that we have to leave the old life cycle:
"Code-Compile-Load-Run-Stop". The Smalltalk idea of a continuously 
executing world of objects is clearly superior. (I belive the execution 
thread of my current Squeak image started some time back in 1972).

I have done some experiments with an executing UML where I modified the 
Smalltalk classes, meta-classes and meta-meta-classes to conform to the UML 
architecture. Confusing, but informative.
See http://heim.ifi.uio.no/~trygver/UML2.0-U2P/UML_VirtualMachine-131.pdf

The morphic architecture looks like an important step forward towards 
tangible objects. It breaks with the ST-80 MVC, but does not seem to 
greatly invalidate my original MVC from 1978. See the original proposal 
here: http://heim.ifi.uio.no/~trygver/mvc/index.html

Enjoy
--Trygve



-- 

Trygve Reenskaug      mailto: trygver at ifi.uio.no
Morgedalsvn. 5A       http://heim.ifi.uio.no/~trygver
N-0378 Oslo           Tel: (+47) 22 49 57 27
Norway




More information about the Squeak-dev mailing list