A different view of Smalltalk

Norton, Chris chrisn at Kronos.com
Wed Aug 18 22:10:03 UTC 1999


Hi Folks.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bob Arning [arning at charm.net] wrote: 

> Recent discussions started me thinking about different ways to display,
> understand and manipulate Smalltalk code. SyntaxMorph is an experiment
> that provides a graphical representation of Smalltalk syntax with popup
> menus to identify, examine and browse individual features. A SyntaxMorph
> view of a method can be created by selecting "BOBS SYNTAX" from the
> browser message list menu.
> 
> Questions to answer:
> 1. Can this provide useful information to beginning Smalltalkers?
> Intermediate? Advanced?
> 2. Can this become a tool for writing code as well as reading it?
> 3. Is it just a lot of pretty pictures?
> 
> SyntaxMorph (for 2.5) can be found at:
> 
> 	http://www.charm.net/~arning/SyntaxMorph.17Aug933am.cs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

First of all I would like to thank Bob, AGAIN, for his many interesting
contributions to Squeak!  Cheers to Bob.  We should rename Object to
Bobject!  :-)

Seriously, I think that a graphical representation of method syntax is great
for reference, so long as it is not the only way to manipulate your code.  I
have struggled mightily with the Morphic "viewers", but I still find myself
using the old browsers.  Perhaps I'm too jaded by years of staring at code
to fully buy into a graphical programming language.  I do think that
graphically-assisted programming tools (a-la WindowBuilder TM) can be quite
useful, however.

Having said that, I think that having a graphical view of the thing you're
coding could be very useful for any developer.  It can definitely help to
identify areas in a method that are too complex (areas that should probably
be factored).  If this kind of "alternate view" could more tightly
integrated with browser, I think it would be of greater value.  For example:
Image a browser that has two flaps on the side of the edit pane.  One flap
would display the currently selected method as usual.  The other flap would
display the currently selected method graphically -- like your SyntaxMorph
does.  With this facility, I could code away, as usual, and then
occasionally stop & look over my method graphically.  The graphical
representation highlights block encapsulation, temporary variable usage,
literals usage, etc., in ways that are often hard to (quickly) see in
regular code -- cast in this light, I think your SyntaxMorph view is highly
desirable.

I would like to see this concept (of graphical representation) stretched a
bit further into object design.  I think it would be really cool if the
browsers could also churn out UML pictures of their contents.  Tying UML
directly to the tools we use to code might give us one more screwdriver we
can use to validate our designs.  I haven't quite figured out how UML could
be tied to the browser, or in what capacity it would be used, but I think it
would be useful to ponder this a bit more.  After all, I often use UML when
I design new things for my employer.  Wouldn't it be great if we could
design new applications and generate Squeak code directly from easily
portable UML diagram morphs?

To wrap up:  I think SyntaxMorph is great!  I would like to see it
integrated into a Browser as a "view" on the active method.  And, I think
your color choices were tasteful.  :-)

Thanks Bob.

---==> Chris





More information about the Squeak-dev mailing list