A problem hindering SmallTalk's popularity:

Richard A. O'Keefe ok at cs.otago.ac.nz
Mon Jul 29 04:33:48 UTC 2002


"i r thomas" <israelrt at optushome.com.au> wrote:
	Richard, I have the deepest respect for you (I used to hunt out
	and read your messages in comp.lang.prolog back in the 80's.)
	(I am assuming that you are the Richard O'Keefe of Quintus Prolog
	fame and who wrote The Craft of Prolog.)

That's me.

	However, I am afraid that this is a trifle disingenuous.
	
	Although you are a novice at Morphic, you have far more computer
	science and software development experience than most people around.
	
This does not diminish the feeling of lost helplessness that Morphic
usually inspires in me.  It certainly doesn't diminish my own fervent
wish for something recognisable as adequate documentation in Squeak.
(Of all the things that Quintus did, I think I am proudest of our
documentation.  There _still_ isn't anything to match it, even though our
technology is now superseded.)

I also want to stress that my computer science and software development
experience does NOT extend to GUIs.  The last GUI I really understood was
the Xerox Interlisp-D system.  Two chapters of the manual, that was all,
and not very big ones.  But *boy* could you get things done easily with
those two chapters.  One reason why I used to be distressed at the idea of
Squeak dropping MVC was that I had put a lot of effort into trying to
understand MVC and still wasn't there, and didn't want to waste that.

So 'building a radio button' is *way* outside any expertise I may have.
I've never even *used* a radio button before in any language, let alone
built one.

What did I have that was actually relevant to this problem?
1. I have read the Morphic tutorials. (Which DO exist.  Big point.)
2. I have a basic familiarity with the Squeak IDE. (Tutorials also exist.)
3. I have a willingness to keep pushing on the grounds that I expect Squeak
   to have _something_ I can use.
That's it, really.

	I would suggest that Lilly ( the student who had difficulty with
	radio buttons ) and her teacher are extremely unlikely to be
	within several orders of magnitude of your competence and
	knowledge.

Lilly, yes, of course.	
Lilly's TEACHER doesn't get off that lightly.
	
When I got my 4th year students onto Squeak, I hunted down a bunch
of tutorials and stuck them in a directory and told them where to find
them.  (Hey, I got them for *me*, but they didn't need to know that!)
As the Squeak books have come out, I have ordered them for our library.
As the free books appear on Stephane Ducasse's web site, I slurp them
down and put them in the same place as the tutorials, so that the students
have access to them.  These are activities that do not require any great
competence or knowledge, but can be a big help to students.

I spent a couple of hours this last weekend trawling through some of the
Morphic sources.  (Again.  This time I started to understand a bit.)
And there is MUCH that displeases me.  For example, the morphic chapter
I was going to work through starts with HeadingMorph.

    Object
      Morph			Has class comment, of very little use.
        BorderedMorph		NO CLASS COMMENT.
          RectangleMorph	NO CLASS COMMENT.
            HeadingMorph	NO CLASS COMMENT.
            MorphExample	NO CLASS COMMENT.

We've been told for years that Morphic was going to be rewritten.  It
hasn't happened.  Lots of these classes have been around for quite a
while and they still are not commented.

So Lilly and co are RIGHT that the internal documentation desperately needs
a lot of work.  Some serious effort put in near the root of the 'Morph'
hierarchy might be a good place to start.  Or how about "everything in
Morphic-Widgets", like BorderedStringMorph (no class comment),
ColorPickerMorph (ditto), DropDownChoiceMorph (ditto), HaloSpec (ditto),
JoystickMorph (ditto), NameStringInHalo (ditto), NewHandleMorph (ditto),
PopUpChoiceMorph (ditto), ProgressMorph (ditto), RulerMorph (ditto),
ScaleMorph (class comment exists but doesn't say what they are or are for),
SimpleButtonDelayedMorph (no class comment), SimpleButtonMorph (ditto),
SimpleSliderMoprh (ditto), SimpleSwitchMorph (ditto), StarMoprh (ditto),
StringButtonMorph (ditto), TestBalloonFont (ditto), ThumbNailMorph (ditto),
TickIndicatorMorph (ditto), TinyPaint (ditto), ToggleButtonMorph (ditto),
TrashCanMorph (ditto), UpdatingStringMorphWithArgument (ditto),
UpdatingThreePhaseButtonMorph (ditto), ZoomMorph (ditto).  That is, nearly
EVERYTHING that someone looking for useful widgets in Morphic might look at
has NO CLASS COMMENT.  This just is not anywhere near good enough.
(Checked in 3.2.)

However, the morphic chapter and tutorials DO exist and make up for a heck
of a lot.  Indeed, after playing around on the weekend, I could see more
ways to make radio buttons in Squeak than I'll ever live long enough to try.
Basically, ANY morph can be a button if you want it to be.

If I can get my head around some of these morphs I might provide a few
class comments myself.  (Hey, if someone who _isn't_ an experienced
Morphic programmer can even _consider_ providing useful class comments,
that says something nearly as good about morphic as the need to do so says
something bad.)




More information about the Squeak-dev mailing list