Three Threads Of Squeak

Doug Way dway at riskmetrics.com
Wed Nov 7 02:25:42 UTC 2001


Comments follow...

Justin Walsh wrote:
> 
> Daniel H. H. Ingalls wrote:
> 
> "The purpose of the Smalltalk project is to provide computer support for the
> creative spirit in everyone."..
> 
> Justin:
> 
> As was elaborated in "Three threads .." there is more than
> one level involved in the actual use of a system prot-typing
> language like Smalltalk.
> 
> Smalltalk is seen by Ingalls to be a "tool" for the creative
> spirit.
> 
> However there are in fact three levels of the creative
> spirit:
> 
> Conceptual No reliable tools available
> 
> Logistical No reliable tools available
> 
> Construction This is where Smalltalk, the tool, was
> originaly targeted. and yes! no other tools can beat
> it. Its idea is to encourage children to play with computers
> and thereby learn.

Okay, apparently there are exactly "three levels of the creative spirit" which Squeak must attain.  (Sounds a bit reminiscent of Johannes Kepler's pointless attempt to link the five perfect solids to the five known planets of the time.)

Where are these three levels/threads explained further and justified?  Your original "Three threads..." message explained a little, and included an attachment which made no mention of the three threads.  A more detailed reference might be helpful.

Anyway, let's consider the three levels.  In what way does Squeak not support the Conceptual and Logistical levels?  Are you implying that another language/environment/tool does support all three levels?

Squeak/Smalltalk is a high-level language relative to most commonly used programming languages (e.g. C++, Java, Basic, Perl, etc.).  And it is reflective and includes an IDE, written in itself, which lets you analyze code at a higher level than a text editor, and also lets you build tools to potentially analyze at a higher level still.  Thus it should be able to support the sort of higher-level thinking you're talking about (conceptual, logistical) better than most others.

Granted, it might be nice to have more tool support built-in for this sort of higher-level thinking.  But existing Squeak tools like ThingLab and Ned's ConnectorMorphs sort of point in this direction.  (I'm not sure exactly how "high-level" we're talking.)

> Play as a (dubious) method for the development of children
> is not satisfactory in the adult world of business. Here,
> Smalltalk is hard pressed surviving. Cincom is marketing
> VisualWorks as a serious business modeling tool.

Okay, you mention business modeling.  Squeak could certainly support something like UML or graphical object modeling if someone wrote the tools to do it, if that's what you're getting at.  Such modeling tools would be easier to use with Squeak than with the lower-level languages they tend to be used with.

(On a side note.  I'm not that up on 4GL tools, but isn't it true that a lot of them still only output code (in one direction)?  Such one-way (concept -> code) tools are totally worthless and should be banned, IMHO.  Tools which can go the other way (code -> concept) (or in both directions) can have real value, though, since they can actively show a high-level model of what the code represents.  Any Squeak-based modeling tool would be of this latter type, of course. :-) )

> Unless it
> deals with original design short fall it will surely fail.

I doubt it.  Ever heard of XP? ;-)

> "... Behaviorists encouraged experimental studies and were responsible
> for moving child psychology into the mainstream of psychology. Although
> they contributed much to the study of children, their concepts
> eventually were viewed as being overly narrow...."
> 
> Justin: Please note "overly narrow"
> 
> By rights, if Smalltalk is be more than a tool for the
> manipulation of children by computer programmers then it
> must be redesigned to incorporate the Conceptual and
> Logistal needs of adults that have used it ie Wall St, the
> CIA, Bankers Trust, Macquarie Bank etc, from the begining.
> 
> All the hacking and patching in the world will not achieve
> that.

Why does Smalltalk need to be redesigned to do this?  Making such a blanket statement sounds a bit ridiculous, without at least some *technical* justification for why Smalltalk could not simply evolve to support this sort of higher-level (Conceptual/Logistical) thinking.

> "and a language of interaction (user interface) that matches the human
> communication system to that of the computer. Our work has followed a two- to
> four-year cycle that can be seen to parallel the scientific method:
> 
>             Build an application program within the current system (make an
>             observation)
> 
>             Based on that experience, redesign the language (formulate a
>             theory)
> 
>             Build a new system based on the new design (make a prediction
>             that can be tested) "
> 
> Justin:
> 
> The above empirical scientific method is questionable.

Why is it questionable?  It sounds like a reasonable application of the scientific method to me.  It sounds like you advocate a complete redesign of Smalltalk in your previous paragraph ("must be redesigned to incorporate the Conceptual and Logistical needs...") so you're apparently not against adding one more redesign to this cycle.

You seem to be against an iterative approach in general, and in favor of a three-phase approach: 1. Concepts then 2. Logistics then 3. Construction.  I might characterize this as similar to a "waterfall" approach to software development, although I may be misinterpreting what you mean.  (Perhaps you just mean that these three "threads" are orthogonal, not necessarily that they need to be performed in order.)  In any case, in recent times the pure waterfall approach has been falling out of favor, in favor of more iterative approaches (XP, Agile software, etc.), which is a good thing.  A modest amount of up-front design can be a good thing, but expecting a complex design to be 100% complete before moving on to development is usually pretty stupid.

Also, I'm not sure if your problem with Smalltalk is the fact that it encourages people who use Smalltalk to develop iteratively, or that fact that Smalltalk itself was developed iteratively (every two years).  These are two different things, which you sort of mushed together.

(sigh, this message is a lot longer than it needs to be... sorry everyone.)

- Doug Way
  dway at riskmetrics.com


P.S. Regarding Jim Benson's post with the "If a hen and a half..." query, this is known as Griswold's Paradox.  A thorough reading of the works of Larry I. Martin will reveal the answer to be exactly 37 waffles.




More information about the Squeak-dev mailing list