[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