I had a "simple" goal: to change Calypso's class pane to a tree. After an
hour or two, I didn't feel any closer! 

I'm wondering if it's my process or something else. A few questions:

1. Is there a heuristic for finding relevant documentation? We have lots of
docs, but there seem to be a lot of separate locations for it. I think I
searched on the Nabble ML mirror for "Calypso" posts on either Pharo list.
After digging around, I found a discussion where Steph was working on a []
booklet, which I read and was helpful for understanding the model but didn't
directly address my issue (not that it should, this is pretty low-level
hacking!). Then I tackled the class comments, which are VERY thorough, but
it's hard (at least for me) to piece together the overall design from the
individual parts.

2. How do we make sophisticated designs discoverable? I remember one of my
Aha! moments when I discovered Smalltalk was using Morphic halos on a menu
item and easily finding the code it used underneath. Things like that do not
generally seem possible anymore in my experience. I thought to myself,
packages are already in a tree, let me dig there! I got a bit worried when I
saw what seemed to be a mini-DSL for tree making instead of simple message
sends:
    ClyFullBrowser >> #newPackageView
        ...
                treeStructure:  { 
                        ClyProjectChildItem -> 
#prepareProjectItemsQueryFrom:in:.
                        RPackage -> #prepareClassGroupQueryFrom:in: };
But I pressed on and tried to duplicate that logic:
ClyFullBrowser >> #newClassView
        ...
        ^ self newNavigationView
                treeStructure:  { 
                        Class -> #prepareProjectItemsQueryFrom:in: }
                        ...

And... nothing. When #prepareClassItemsQueryFrom:in: didn't exist, I got no
debugger. When I created it, placing a halt in it never got triggered.

Besides my immediate experiment of making the class pane a tree, my more
fundamental questions are: 
1. What is the best heuristic to explore the system? This would be great to
put somewhere publicly. Especially, but as we can see from this post not
exclusively, for new users.
2. Do we value discoverability?
3. If so, are we designing our system with this value in mind?



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply via email to