Re: [Pharo-users] Package Browser (AKA 6-paned Browser) and Pharo package organization

2020-05-01 Thread ducasse
In the past when hovering the package list, we could see the package mini 
description and it would be good to resurrect it. 

Now stephen I suggest you try Pharo and see because many times when I reopened 
VW it looks like my fingers
were cut. Because I could not go super fast navigation. 

Pharo is far from perfect but this is what we have and we take care of it. Now 
if you give us some thousands of Euros 
you will not recognise it :). 

So learn and have fun and you can improve Pharo with us. 
S. 


> Hi Stefen,
> 
> Welcome to Pharo :-) 
> 
> Here are 2 tips that whould help you find your way :
> - Spotter (open it with Shift+Enter). It searches the whole image for names 
> (classes, methods...) that include the given substring
> - Finder (Menu Tools) : Allows various kinds of searches. Searching with 
> examples does allow finding a message that provides a given outcome given a 
> receiver, and parameters.
> 
>  Please note that the image does include only a small subset of what you can 
> do with Pharo. There's much more out there. One way to discover cool stuff, 
> is to visit this catalog:
> https://github.com/pharo-open-documentation/awesome-pharo 
> 
> 
> Cheers,
> Noury
> 
>> On 30 Apr 2020, at 21:00, step...@heaveneverywhere.com 
>>  wrote:
>> 
>> 
>> Hello friends,
>> 
>> I’m getting started with Pharo after decades using VisualWorks and Squeak; 
>> it’s pretty wonderful what you all have assembled!
>> 
>> My question is related to what we used to teach as the first law of software 
>> reuse: “You can’t reuse it if you can’t find it,” and the related software 
>> engineering "principle of least astonishment."
>> 
>> When I fire up Pharo, the system browser presents me with a list of several 
>> hundred categories (from AST to Zodiac) in a system with over 8000 classes.  
>> The system categorization makes no sense since I don’t know the naming 
>> conventions and so many packages have cute but quite non-descriptive names 
>> (Zinc? Metacello? Calypso?).
>> 
>> In Smalltalk-80, the class category names were organized as a 2-level 
>> hierarchy where the top-level were items such as Magnitudes, Collections, 
>> Streams, Graphics, Text, System, Tools, Files, etc.  This made it easy to 
>> find (e.g.,) the browser source code by looking in the Tools package for the 
>> class category Tools-Browser.  Even packages with cute names (like my own 
>> “Siren”), were categorized for ease of finding; e.g., the Siren classes were 
>> in class categories like Music-Events and Music-Magnitudes.
>> 
>> Parsing the class category names on the first instance of $- made it 
>> possible to build 6-paned Browsers (called package pane browser in Squeak).  
>> (We acknowledged that this violates the “zero/one/infinity" rule.) Is 
>> something like this available for Pharo? I looked through the Calypso 
>> browser code and it’s so over-engineered (IMHO) that it’d take me several 
>> days to figure out how to implement this (it was about 1.5 pages of code in 
>> Smalltalk-80).
>> 
>> If Pharo had a browser that scaled better and a 
>> reorganization/simplification of the class categories to use names that were 
>> more self-explanatory, it would be *much* easier for new users (in fact, for 
>> all users) to find their way around.
>> 
>> I apologize for the stepping on toes...
>> 
>> Stephen Pope
>> 
>> 
>> --
>> 
>> Stephen Travis Pope   Santa Barbara, California, USA
>>   http://HeavenEverywhere.com 
>> http://FASTLabInc.com 
>> 
>>https://vimeo.com/user19434036/videos 
>>   
>> http://heaveneverywhere.com/Reflections 
>> 
>> 
>> --
>> 
>> 
>> 
> 



Re: [Pharo-users] Package Browser (AKA 6-paned Browser) and Pharo package organization

2020-05-01 Thread Sean P. DeNigris
Stephen Pope wrote
> When I fire up Pharo, the system browser presents me with a list of
> several hundred categories (from AST to Zodiac) in a system with over 8000
> classes.  The system categorization makes no sense since I don’t know the
> naming conventions and so many packages have cute but quite
> non-descriptive names (Zinc? Metacello? Calypso?).

Even after using Pharo (and this probably applies somewhat to current Squeak
too, but I haven't opened an image in a while so forgive me if I'm wrong)
for over a decade, I still feel your pain on this issue! The problem IMHO is
the ugly Monticello SCM hack hijacking *logical* categories to use for
packaging, which is an orthogonal concern. Here is a a fuller description
from a previous thread [1]:


Sean P. DeNigris wrote
>> we have overloaded system categories to package code for SCM. System
>> categories should be tags (preferably multiple allowed) 
>> which offer a logical view of the system. Packages, the POV we show now,
>> are orthogonal and much less useful for users.
> (edited)
> and another:
>> I feel more and more that the standard "Package" pane is only useful
>> for... packaging, and when one takes off the dependency management hat
>> and
>> puts the user hat on (i.e. most of the time), what you really want there
>> is a logical view of the system. So I see three use cases: 
> - Logical view of the system - I guess this was the original intention of
> Categories, but has been hijacked by Monticello 
> - By project - which, as you just showed, we have now, yay! 
> - By package - the least useful, but primary (up til now), view
> (edited)
> and regarding Nautilus' tree package pane (when it first arrived):
> I noticed that right now, separate packages within the same project are
> not
> collapsed. E.g. if I have MyProject-Core and MyProject-Platform, they will
> be siblings in the tree, instead of both under MyProject. It seems like it
> would be more useful to have 
> - MyProject 
>   - Core 
>   - Platform 
> in the tree
> 
>> it seems that the tree is primarily about chunking information into
>> manageable pieces. 
> 
> A primary difficulty here is that packages are often divided for reasons
> that have nothing to do with the domain model, e.g. the ubiquitous
> MyPackage-Platform, which is an artifact of Metacello that is not all that
> relevant to a user wanting to understand the system. 
> 
> From the naive user perspective, if I'm exploring from the top level of
> the
> system, I want to see things like: 
> - CodeImport 
> - Collections 
> - Compiler 
> 
> From this perspective, the 14 entries for Collections, multiplied by a few
> dozen top-level categories make the list unwieldy and only marginally less
> daunting than the flattened list we used to have (see
> http://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two )

1.
http://forum.world.st/Why-can-t-we-use-in-protocol-for-package-extension-tp5073597p5073663.html



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



Re: [Pharo-users] Package Browser (AKA 6-paned Browser) and Pharo package organization

2020-05-01 Thread Sven Van Caekenberghe
http://books.pharo.org
https://github.com/topics/pharo

> On 1 May 2020, at 14:37, Noury Bouraqadi  wrote:
> 
> Hi Stefen,
> 
> Welcome to Pharo :-) 
> 
> Here are 2 tips that whould help you find your way :
> - Spotter (open it with Shift+Enter). It searches the whole image for names 
> (classes, methods...) that include the given substring
> - Finder (Menu Tools) : Allows various kinds of searches. Searching with 
> examples does allow finding a message that provides a given outcome given a 
> receiver, and parameters.
> 
>  Please note that the image does include only a small subset of what you can 
> do with Pharo. There's much more out there. One way to discover cool stuff, 
> is to visit this catalog:
> https://github.com/pharo-open-documentation/awesome-pharo
> 
> Cheers,
> Noury
> 
>> On 30 Apr 2020, at 21:00, step...@heaveneverywhere.com wrote:
>> 
>> 
>> Hello friends,
>> 
>> I’m getting started with Pharo after decades using VisualWorks and Squeak; 
>> it’s pretty wonderful what you all have assembled!
>> 
>> My question is related to what we used to teach as the first law of software 
>> reuse: “You can’t reuse it if you can’t find it,” and the related software 
>> engineering "principle of least astonishment."
>> 
>> When I fire up Pharo, the system browser presents me with a list of several 
>> hundred categories (from AST to Zodiac) in a system with over 8000 classes.  
>> The system categorization makes no sense since I don’t know the naming 
>> conventions and so many packages have cute but quite non-descriptive names 
>> (Zinc? Metacello? Calypso?).
>> 
>> In Smalltalk-80, the class category names were organized as a 2-level 
>> hierarchy where the top-level were items such as Magnitudes, Collections, 
>> Streams, Graphics, Text, System, Tools, Files, etc.  This made it easy to 
>> find (e.g.,) the browser source code by looking in the Tools package for the 
>> class category Tools-Browser.  Even packages with cute names (like my own 
>> “Siren”), were categorized for ease of finding; e.g., the Siren classes were 
>> in class categories like Music-Events and Music-Magnitudes.
>> 
>> Parsing the class category names on the first instance of $- made it 
>> possible to build 6-paned Browsers (called package pane browser in Squeak).  
>> (We acknowledged that this violates the “zero/one/infinity" rule.) Is 
>> something like this available for Pharo? I looked through the Calypso 
>> browser code and it’s so over-engineered (IMHO) that it’d take me several 
>> days to figure out how to implement this (it was about 1.5 pages of code in 
>> Smalltalk-80).
>> 
>> If Pharo had a browser that scaled better and a 
>> reorganization/simplification of the class categories to use names that were 
>> more self-explanatory, it would be *much* easier for new users (in fact, for 
>> all users) to find their way around.
>> 
>> I apologize for the stepping on toes...
>> 
>> Stephen Pope
>> 
>> 
>> --
>> 
>> Stephen Travis Pope   Santa Barbara, California, USA
>>   http://HeavenEverywhere.com
>> http://FASTLabInc.com
>>https://vimeo.com/user19434036/videos  
>> http://heaveneverywhere.com/Reflections
>> 
>> --
>> 
>> 
>> 
> 




Re: [Pharo-users] Package Browser (AKA 6-paned Browser) and Pharo package organization

2020-05-01 Thread Noury Bouraqadi
Hi Stefen,

Welcome to Pharo :-) 

Here are 2 tips that whould help you find your way :
- Spotter (open it with Shift+Enter). It searches the whole image for names 
(classes, methods...) that include the given substring
- Finder (Menu Tools) : Allows various kinds of searches. Searching with 
examples does allow finding a message that provides a given outcome given a 
receiver, and parameters.

 Please note that the image does include only a small subset of what you can do 
with Pharo. There's much more out there. One way to discover cool stuff, is to 
visit this catalog:
https://github.com/pharo-open-documentation/awesome-pharo

Cheers,
Noury

> On 30 Apr 2020, at 21:00, step...@heaveneverywhere.com wrote:
> 
> 
> Hello friends,
> 
> I’m getting started with Pharo after decades using VisualWorks and Squeak; 
> it’s pretty wonderful what you all have assembled!
> 
> My question is related to what we used to teach as the first law of software 
> reuse: “You can’t reuse it if you can’t find it,” and the related software 
> engineering "principle of least astonishment."
> 
> When I fire up Pharo, the system browser presents me with a list of several 
> hundred categories (from AST to Zodiac) in a system with over 8000 classes.  
> The system categorization makes no sense since I don’t know the naming 
> conventions and so many packages have cute but quite non-descriptive names 
> (Zinc? Metacello? Calypso?).
> 
> In Smalltalk-80, the class category names were organized as a 2-level 
> hierarchy where the top-level were items such as Magnitudes, Collections, 
> Streams, Graphics, Text, System, Tools, Files, etc.  This made it easy to 
> find (e.g.,) the browser source code by looking in the Tools package for the 
> class category Tools-Browser.  Even packages with cute names (like my own 
> “Siren”), were categorized for ease of finding; e.g., the Siren classes were 
> in class categories like Music-Events and Music-Magnitudes.
> 
> Parsing the class category names on the first instance of $- made it possible 
> to build 6-paned Browsers (called package pane browser in Squeak).  (We 
> acknowledged that this violates the “zero/one/infinity" rule.) Is something 
> like this available for Pharo? I looked through the Calypso browser code and 
> it’s so over-engineered (IMHO) that it’d take me several days to figure out 
> how to implement this (it was about 1.5 pages of code in Smalltalk-80).
> 
> If Pharo had a browser that scaled better and a reorganization/simplification 
> of the class categories to use names that were more self-explanatory, it 
> would be *much* easier for new users (in fact, for all users) to find their 
> way around.
> 
> I apologize for the stepping on toes...
> 
> Stephen Pope
> 
> 
> --
> 
> Stephen Travis Pope   Santa Barbara, California, USA
>   http://HeavenEverywhere.com 
> http://FASTLabInc.com 
> 
>https://vimeo.com/user19434036/videos 
>   
> http://heaveneverywhere.com/Reflections 
> 
> 
> --
> 
> 
> 



[Pharo-users] Package Browser (AKA 6-paned Browser) and Pharo package organization

2020-04-30 Thread step...@heaveneverywhere.com

Hello friends,

I’m getting started with Pharo after decades using VisualWorks and Squeak; it’s 
pretty wonderful what you all have assembled!

My question is related to what we used to teach as the first law of software 
reuse: “You can’t reuse it if you can’t find it,” and the related software 
engineering "principle of least astonishment."

When I fire up Pharo, the system browser presents me with a list of several 
hundred categories (from AST to Zodiac) in a system with over 8000 classes.  
The system categorization makes no sense since I don’t know the naming 
conventions and so many packages have cute but quite non-descriptive names 
(Zinc? Metacello? Calypso?).

In Smalltalk-80, the class category names were organized as a 2-level hierarchy 
where the top-level were items such as Magnitudes, Collections, Streams, 
Graphics, Text, System, Tools, Files, etc.  This made it easy to find (e.g.,) 
the browser source code by looking in the Tools package for the class category 
Tools-Browser.  Even packages with cute names (like my own “Siren”), were 
categorized for ease of finding; e.g., the Siren classes were in class 
categories like Music-Events and Music-Magnitudes.

Parsing the class category names on the first instance of $- made it possible 
to build 6-paned Browsers (called package pane browser in Squeak).  (We 
acknowledged that this violates the “zero/one/infinity" rule.) Is something 
like this available for Pharo? I looked through the Calypso browser code and 
it’s so over-engineered (IMHO) that it’d take me several days to figure out how 
to implement this (it was about 1.5 pages of code in Smalltalk-80).

If Pharo had a browser that scaled better and a reorganization/simplification 
of the class categories to use names that were more self-explanatory, it would 
be *much* easier for new users (in fact, for all users) to find their way 
around.

I apologize for the stepping on toes...

Stephen Pope


--

Stephen Travis Pope   Santa Barbara, California, USA
  http://HeavenEverywhere.com 
http://FASTLabInc.com 
   https://vimeo.com/user19434036/videos 
  
http://heaveneverywhere.com/Reflections

--