[OT] is morphic too simple?
Andrew P. Black
black at cse.ogi.edu
Thu Apr 26 06:57:07 UTC 2001
At 17:34 +0100 2001.04.21, John Hinsley wrote:
>
>I can't believe that Sun had this (in Self) and decided to go with Java.
Excuse me; it's late, I'm sick, and I've been thinking too much ...
But it seems to me that the state of our "science" today is very much
like a primitive tribe. When someone breaks out in hives, or has a
stomach ache, they first talk to their friends, but if they don't get
help, they go and see the witch doctor. They are told to cross a
bunch of sticks, dance around them, and sacrifice a sparrow. What
happens? Well, quite often, the hives go away or the stomach ache
gets better. But they have no idea why. Of course, the witch doctor
likes it that way, or else people would not give him any beads.
When some software starts doing mysterious things -- like zapping my
filestore or my computer refusing to boot -- I first talk to my
friends, and if that doesn't help, I call tech support. (I've had
some pretty desperate problems lately ;-). The tech support Wizard
walks me through a process of muttering incantations, reinstalling
something for the third time ... and, quite often, things start
working again. I have no idea why. I wonder if the computer
companies like it that way?
I said that I've been thinking. I'm trying to figure out _why_ I
like to spend time in Squeak. After designing and studying
programming languages for over 30 years, why am I back with
Smalltalk-80? I think that there are several answers, but John is
nosing around at least one of them, with the email to which this is a
reply. He said "Morphic is too simple". That prompted the zeroth
reason that I spend time here.
(0) Squeak is simple. Maybe too simple. As a language, it's like
XP: it's the simplest thing that could possibly work. No protection,
no syntax (above the method level), no initialization, no types, no
packages, no modules, no to most of the things that I (as a
language designer) thought were important.
(1) No Magic. If I want to know why true & 3 answers 3, I can go and
read the & method for true. If I want to know why I'm asked for my
initials when the moon is blue, I can go and read
SystemDictionary>>openSourceFiles. It may not always be easy to
figure something out, but I know that it's always possible.
(2) It's fully reflective. When I want to figure something out, I
don't have to switch to another environment (browsing a source tree
with a text editor). I can stay in Squeak and find what I need.
(That's introspection.) Not only that, I can change what I want, and
the system behavior changes. I'm not meddling with an image of the
world, I'm meddling with the world itself. (That's reification.)
About the only place where this is not true is in the process of
building a VM, which may be why I haven't explored doing that.
(3) The development tools are not "special". Anything that I can do
in a browser I can do with a doIt. If the tools don't provide a
button for what I wan to do, I can fake it. A while ago I was
wondering how many methods were understood by String. (I was trying
to convince a student that it would be fun to implement
tree-structured strings.) So I brought up a protocol browser, got a
Morphic halo on the PluggableListMorph, inspected it and found the
answer. Everything is an object, duh ... such a simple idea, yet I'm
still being surprised by its profundity.
(4) Squeak isn't a language, it's a place. This idea was startling
to me when I first read it -- go back to Alejandro F. Reimondo's mail
to this list on 28th November 1999 -- a very thought-provoking
posting. Despite all the power of human languages, they are an
obstacle to communication as much as they are an aid. That's why we
have to meet each other face to face, rather than sending email and
writing documents. That's why XP encourages developers and customers
to talk together daily, rather than sharing requirements specs.
Can you imagine doing a woodworking project by talking to the tools
and telling them what to cut? It might work quite well for cutting
boards to size. But at some point I would need to feel the tools in
my hands ... the feel of the plane biting into the wood and the way
that I react to it are far too subtle to be put into words. I
thought at first that Morphic scripting letting us build applications
without programming was just a toy for children. But I was the
child; it finally dawned on me that this was the way that all
applications will be built in a hundred years. We are all pioneers
here, I think ...
(5) Squeak is a community. A community in which I can risk saying
stuff like this and not get laughed at. A bit like the world used
to be in the early days, before computing became big business. So,
thanks for listening, and sorry if this has rambled a bit.
Andrew
More information about the Squeak-dev
mailing list
|