>>41I would delight you, but I do not know where to begin.
In a Lisp system there's no ``programs'' as a UNIX user might think of them. There's just symbols and the Lisp objects they name. What's called a program in Lisp is called a function or subroutine in other languages and systems; but in Lisp a procedure isn't program text, (although you can say it can be represented by text). Imagine you could type in a C ``function'' in your UNIX shell, and it would automatically be compiled, and then you could refer to it by name and call it, and that every ``program'' you ran was like this. So programs don't pass text around to eachother, they just call eachother with the arguments they expect. One program can call the programs used by another program, larger programs are built out of combining more primitive ones.
Smalltalk systems also don't have the same notion of programs UNIX does. Just objects. Objects send each other messages, and this is how everything works. Some objects define how other objects answer messages, and can create new objects of the same kind; these objects are classes. For example, in Smalltalk integers are objects, and they answer the message
+ anInteger
by performing a machine (or primitive) instruction. This isn't very interesting, but then you have objects such as
SystemBrowser
, the system browser class, which can create new instances of
SystemBrowser
, which is an object which knows or creates other objects and sends them messages, but otherwise encapsulates a graphical interface to a typical Smalltalk system.
As you can see, I am having a lot of trouble explaining this, because it is a difficult and stupid thing to have to explain. If you are genuinely interested, then it would probably be instructive for you to download SBCL or Pharo and have a play and see what it is like. Then remember that once upon a time your whole computer was like that, from the ISA up. Then become unhappy with computers for the rest of your days.