Where is the documentation of the base class libraries?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Where is the documentation of the base class libraries?

Derry Bryson
Where can I find documentation of the base class libraries for Pharo Smalltalk?  Or is there some other way I should learn about the system?

Thanks,

Derry
Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

Sven Van Caekenberghe-2
Hi Derry,

Welcome to Pharo.

> On 27 Nov 2016, at 08:24, Derry Bryson <[hidden email]> wrote:
>
> Where can I find documentation of the base class libraries for Pharo Smalltalk?  Or is there some other way I should learn about the system?
>
> Thanks,
>
> Derry

The primary way you learn about Pharo is by using it and browsing around in the image (all the source code, documentation, examples & tests are included, as well as all tools and the IDE itself).

But that maybe creates a chicken/egg problem. You definitively have to start with the Pharo By Example book (see book.pharo.org). There is also a nice online course you could take, http://files.pharo.org/mooc/

Good luck, have fun and keep coming back with questions.

Regards,

Sven
   
Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

stepharo
In reply to this post by Derry Bryson
Hello Derry

In complement to what sven said you can also read the Pharo by Example books. 
http://books.pharo.org

Stef

On Sun, 27 Nov 2016 08:24:36 +0100, Derry Bryson <[hidden email]> wrote:

Where can I find documentation of the base class libraries for Pharo Smalltalk?  Or is there some other way I should learn about the system?

Thanks,

Derry



--
Using Opera's mail client: http://www.opera.com/mail/
Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

HilaireFernandes
In reply to this post by Derry Bryson
Hi Derry,

Regarding the base class libraries, it is Smalltalk. I can suggest you
some books about Smalltalk which was good resources when I learnt
programming with Squeak, then Pharo:

- Smalltalk By Example[1]
- Smalltalk with style

You can find free to print versions at
http://stephane.ducasse.free.fr/FreeBooks.html

There are probably other alternatives, but I  found these two books
complementary for a good starting experience.

Have fun.

Hilaire

[1] Some chapters are implementation specific (mainly the GUI), you can
safely skip them.


Le 27/11/2016 à 08:24, Derry Bryson a écrit :
> Where can I find documentation of the base class libraries for Pharo
> Smalltalk?  Or is there some other way I should learn about the system?
>

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

kilon.alios
In reply to this post by Derry Bryson
Through my personal experience I have found 3 ways of learning things

1) Through Documentation and asking Questions, or been taught in a course/class,  this one is the most popular because is the one requiring the least effort , but also the weakest form of learning because it offers a very limited array of knowledge . Knowledge that is documented or from people that can answer your questions if you can reach them. 

2) Investigation. Investigation is basically the art of following the clues, of piecing things together. Investigation is basically the scientific method, you form assumptions, you test these assumptions , you observe , you correct these assumptions according to your observations and you repeat the process . Investigation unlike Documentation has no limits to how far it goes however it has a big flaw too, it depends on your ability to divide and conquer a problem. However if the problem is too complex it will still work but it will be a very enduring process and quite painful too.

3) Exploration. Exploration is abandoning any assumption or reliance to documentation . Opening the mind to any possibility. Learning for the purpose of true joy. No goals. No rules, No boundaries. Exploration is great and its my favourite way of learning because it never disappoints and never frustrates.  Instead of being frustrated at a problem you have very hard time finding documentation about or you have hard time investigating you move to the next one. If investigation is about dividing a difficult problem to much easier ones, Exploration is about going straight to easy problems and let yourself through experience gradually progress to more complex areas. I also prefer exploration because it offers a more structure way of learning and builds confidence. The flaw of Exploration is that there is such thing as having to much fun and you may find your self wasting time on things that you enjoy on one hand but are not particularly useful on another,  you may lose track of your goals. 

All those 3 techniques I have opportunity practicing them when I took my Law degree but they apply pretty much apply to everything.

Even though the 3rd one is my favourite I use all of them when the situation demands it. 

When it comes to Pharo 

- Documentation : Pharo By Example 5, Deep Into Pharo, Pharo for the Enterprise ,  Pharo In Progress, asking question in mailing list like this one, reading class and method comments, reading code of unit tests. 

- Investigation: Reading code directly, going through messages one by one, creating and playing with unit tests, heavy usage of Class browser's ability of finding senders or and implementors of a method, use of GTSpotter for location of methods, taking a look at practical examples and how they use the code you want to use.

- Exploration: heavy usage of inspector , debugger and workspace/Playground. Also heavy reliance on printing data on transcript. An alternative way is to formulate your own data and send them an inspect message this way you can avoid printing things and go directly to the source.  Coding inside the debugger instead of inside the browser is also highly advisable. 

The way you work is like this

1) Is there Documentation of what you want to learn ? ->  if yes use Documentation

2) If No does reading code and its unit tests are easy enough to learn what you want ? if yes use Investigation

3) If no then start making a ton of experiment in the workspace, print and inspect many values to see exactly how the code works, move the code to System browser through class definitions, introduce self halts (breakpoints) and work the rest using the debugger and the inspector for even deeper look into data processing and flow. Remember your purpose unlike investigation is not how the code works but how the code affects the data. 

Cannnot say if my method of learning will suit you, but take it as it is, with a grain of salt. 

On Sun, Nov 27, 2016 at 9:25 AM Derry Bryson <[hidden email]> wrote:
Where can I find documentation of the base class libraries for Pharo Smalltalk?  Or is there some other way I should learn about the system?

Thanks,

Derry
Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

Derry Bryson
Thanks for the helpful replies.  I am working through Pharo By Example, I was just hoping there was something like the Python documentation for Pharo.

Derry

On Sun, Nov 27, 2016 at 4:26 AM, Dimitris Chloupis <[hidden email]> wrote:
Through my personal experience I have found 3 ways of learning things

1) Through Documentation and asking Questions, or been taught in a course/class,  this one is the most popular because is the one requiring the least effort , but also the weakest form of learning because it offers a very limited array of knowledge . Knowledge that is documented or from people that can answer your questions if you can reach them. 

2) Investigation. Investigation is basically the art of following the clues, of piecing things together. Investigation is basically the scientific method, you form assumptions, you test these assumptions , you observe , you correct these assumptions according to your observations and you repeat the process . Investigation unlike Documentation has no limits to how far it goes however it has a big flaw too, it depends on your ability to divide and conquer a problem. However if the problem is too complex it will still work but it will be a very enduring process and quite painful too.

3) Exploration. Exploration is abandoning any assumption or reliance to documentation . Opening the mind to any possibility. Learning for the purpose of true joy. No goals. No rules, No boundaries. Exploration is great and its my favourite way of learning because it never disappoints and never frustrates.  Instead of being frustrated at a problem you have very hard time finding documentation about or you have hard time investigating you move to the next one. If investigation is about dividing a difficult problem to much easier ones, Exploration is about going straight to easy problems and let yourself through experience gradually progress to more complex areas. I also prefer exploration because it offers a more structure way of learning and builds confidence. The flaw of Exploration is that there is such thing as having to much fun and you may find your self wasting time on things that you enjoy on one hand but are not particularly useful on another,  you may lose track of your goals. 

All those 3 techniques I have opportunity practicing them when I took my Law degree but they apply pretty much apply to everything.

Even though the 3rd one is my favourite I use all of them when the situation demands it. 

When it comes to Pharo 

- Documentation : Pharo By Example 5, Deep Into Pharo, Pharo for the Enterprise ,  Pharo In Progress, asking question in mailing list like this one, reading class and method comments, reading code of unit tests. 

- Investigation: Reading code directly, going through messages one by one, creating and playing with unit tests, heavy usage of Class browser's ability of finding senders or and implementors of a method, use of GTSpotter for location of methods, taking a look at practical examples and how they use the code you want to use.

- Exploration: heavy usage of inspector , debugger and workspace/Playground. Also heavy reliance on printing data on transcript. An alternative way is to formulate your own data and send them an inspect message this way you can avoid printing things and go directly to the source.  Coding inside the debugger instead of inside the browser is also highly advisable. 

The way you work is like this

1) Is there Documentation of what you want to learn ? ->  if yes use Documentation

2) If No does reading code and its unit tests are easy enough to learn what you want ? if yes use Investigation

3) If no then start making a ton of experiment in the workspace, print and inspect many values to see exactly how the code works, move the code to System browser through class definitions, introduce self halts (breakpoints) and work the rest using the debugger and the inspector for even deeper look into data processing and flow. Remember your purpose unlike investigation is not how the code works but how the code affects the data. 

Cannnot say if my method of learning will suit you, but take it as it is, with a grain of salt. 


On Sun, Nov 27, 2016 at 9:25 AM Derry Bryson <[hidden email]> wrote:
Where can I find documentation of the base class libraries for Pharo Smalltalk?  Or is there some other way I should learn about the system?

Thanks,

Derry

Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

kilon.alios
yes we try to collect all the documentation under one github organisation which includes all the books , both published and unpublishes


You will find there 90% of the entire Pharo documentation, including the books I mentioned. 

Unlike Python we dont have 100% documentation of our standard image, I will say we are around at 60-70%.  However only 50% of that documentation is up to date to pharo 5. Pharo 6 is still a WIP. 

On Sun, Nov 27, 2016 at 7:45 PM Derry Bryson <[hidden email]> wrote:
Thanks for the helpful replies.  I am working through Pharo By Example, I was just hoping there was something like the Python documentation for Pharo.

Derry

On Sun, Nov 27, 2016 at 4:26 AM, Dimitris Chloupis <[hidden email]> wrote:
Through my personal experience I have found 3 ways of learning things

1) Through Documentation and asking Questions, or been taught in a course/class,  this one is the most popular because is the one requiring the least effort , but also the weakest form of learning because it offers a very limited array of knowledge . Knowledge that is documented or from people that can answer your questions if you can reach them. 

2) Investigation. Investigation is basically the art of following the clues, of piecing things together. Investigation is basically the scientific method, you form assumptions, you test these assumptions , you observe , you correct these assumptions according to your observations and you repeat the process . Investigation unlike Documentation has no limits to how far it goes however it has a big flaw too, it depends on your ability to divide and conquer a problem. However if the problem is too complex it will still work but it will be a very enduring process and quite painful too.

3) Exploration. Exploration is abandoning any assumption or reliance to documentation . Opening the mind to any possibility. Learning for the purpose of true joy. No goals. No rules, No boundaries. Exploration is great and its my favourite way of learning because it never disappoints and never frustrates.  Instead of being frustrated at a problem you have very hard time finding documentation about or you have hard time investigating you move to the next one. If investigation is about dividing a difficult problem to much easier ones, Exploration is about going straight to easy problems and let yourself through experience gradually progress to more complex areas. I also prefer exploration because it offers a more structure way of learning and builds confidence. The flaw of Exploration is that there is such thing as having to much fun and you may find your self wasting time on things that you enjoy on one hand but are not particularly useful on another,  you may lose track of your goals. 

All those 3 techniques I have opportunity practicing them when I took my Law degree but they apply pretty much apply to everything.

Even though the 3rd one is my favourite I use all of them when the situation demands it. 

When it comes to Pharo 

- Documentation : Pharo By Example 5, Deep Into Pharo, Pharo for the Enterprise ,  Pharo In Progress, asking question in mailing list like this one, reading class and method comments, reading code of unit tests. 

- Investigation: Reading code directly, going through messages one by one, creating and playing with unit tests, heavy usage of Class browser's ability of finding senders or and implementors of a method, use of GTSpotter for location of methods, taking a look at practical examples and how they use the code you want to use.

- Exploration: heavy usage of inspector , debugger and workspace/Playground. Also heavy reliance on printing data on transcript. An alternative way is to formulate your own data and send them an inspect message this way you can avoid printing things and go directly to the source.  Coding inside the debugger instead of inside the browser is also highly advisable. 

The way you work is like this

1) Is there Documentation of what you want to learn ? ->  if yes use Documentation

2) If No does reading code and its unit tests are easy enough to learn what you want ? if yes use Investigation

3) If no then start making a ton of experiment in the workspace, print and inspect many values to see exactly how the code works, move the code to System browser through class definitions, introduce self halts (breakpoints) and work the rest using the debugger and the inspector for even deeper look into data processing and flow. Remember your purpose unlike investigation is not how the code works but how the code affects the data. 

Cannnot say if my method of learning will suit you, but take it as it is, with a grain of salt. 


On Sun, Nov 27, 2016 at 9:25 AM Derry Bryson <[hidden email]> wrote:
Where can I find documentation of the base class libraries for Pharo Smalltalk?  Or is there some other way I should learn about the system?

Thanks,

Derry

Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

philippeback
In reply to this post by HilaireFernandes
First half of the Bluebook always good. 


Must read for any Smalltalker I'd say.

Phil

On Sun, Nov 27, 2016 at 9:38 AM, Hilaire <[hidden email]> wrote:
Hi Derry,

Regarding the base class libraries, it is Smalltalk. I can suggest you
some books about Smalltalk which was good resources when I learnt
programming with Squeak, then Pharo:

- Smalltalk By Example[1]
- Smalltalk with style

You can find free to print versions at
http://stephane.ducasse.free.fr/FreeBooks.html

There are probably other alternatives, but I  found these two books
complementary for a good starting experience.

Have fun.

Hilaire

[1] Some chapters are implementation specific (mainly the GUI), you can
safely skip them.


Le 27/11/2016 à 08:24, Derry Bryson a écrit :
> Where can I find documentation of the base class libraries for Pharo
> Smalltalk?  Or is there some other way I should learn about the system?
>

--
Dr. Geo
http://drgeo.eu




Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

stepharo
In reply to this post by Derry Bryson
On Sun, 27 Nov 2016 18:45:07 +0100, Derry Bryson <[hidden email]> wrote:

Thanks for the helpful replies.  I am working through Pharo By Example, I was just hoping there was something like the Python documentation for Pharo.

Can you explain what you mean exactly?
Because in Pharo by Example core library are presented. 
So are you looking for an html version? Because soon with the new format we will be able to have both pdf and html. 

Stef
Reply | Threaded
Open this post in threaded view
|

Re: Where is the documentation of the base class libraries?

Ben Coman
In reply to this post by Derry Bryson
On Sun, Nov 27, 2016 at 3:24 PM, Derry Bryson <[hidden email]> wrote:
> Where can I find documentation of the base class libraries for Pharo
> Smalltalk?  Or is there some other way I should learn about the system?

Within the Image, click on the button  <? Com> beneath the class list
to view the class comments.  Some are really good and other less so.
If you encounter the latter, please ask here for better ones here.
Fresh eyes help us plug these gaps.

Another tool to learn about the system is Tools > Finder > Examples
See it in action 5:03 at "7 minutes of Pharo Smalltalk for Rubyists" [1]

[1] https://www.youtube.com/watch?v=HOuZyOKa91o

cheers -ben