Squeak newbie questions
simon.bates at hushmail.com
simon.bates at hushmail.com
Thu Mar 8 23:58:25 UTC 2001
I have been experimenting with Squeak on and off for a while now and I have
my experience with it very much. I would now like to begin using it more
and I would also very much like to contribute to the project if I am able.
I thought that it
might help to share some of my thoughts on beginning to use Squeak and I
you might help me with some questions that I have. I have been unable to
find answers to
the questions in the documentation that I could find, however, if they are
elsewhere I apologise.
I am most familiar with working in a UNIX environment so that is colouring
to Squeak. While I feel like I have a grasp of the Smalltalk programming
programming environment I think that I am not really grasping some of how
Squeak as a user environment, particularly the image. By "user environment"
I mean the
environment I use to perform tasks using a computer, such as writing documentation,
browsing the web, reading and writing email, drawing pictures, etc. At the
program usage and program interaction I am used to thinking in terms of
data files and
programs that operate on data files. Before discovering Smalltalk I had
oriented programming in Java and C++. However, when using these languages
I still built
programs that operated on data files. I am not used to working in a system
which is object
oriented on all scales.
I thought that the above might help to give some context to my questions.
1. How should I distribute data between inside the image and on the host
For example, if I want to write a photo album browser Morph for viewing
photos in Squeak. Do I store the photos primarily on the host filing system
or do I file
them all into my Squeak image? Filing all the photos in will make the image
but is this normal and should I rely on virtual memory to swap data between
the hard disk?
2. How should I organize instances of objects within the image?
I understand that I can have variables local to a Workspace and that instances
are accessible through their GUI but how do I access an instance of an object
multiple Workspaces or Projects? For example if I want to store notes that
I am taking as
I work with Squeak in UNIX I might do
$ vi ~/notebook
and if I want to search the file for a note that I took on creating Morphs
I might do
$ grep 'Morph' ~/notebook
I thought about creating a global (in the Smalltalk SystemDictionary) Dictionary
#Home and storing references to them there
Home _ Dictionary new.
Home at: #notebook put: Workspace new.
The Squeak equivalents to the above UNIX commands that I came up with are
(Home at: #notebook) openLabel: 'notebook'.
((Home at: #notebook) contents string) linesDo: [:line | Transcript show:
line ; cr].
"grep Morph ~/notebook"
((Home at: #notebook) contents string)
linesDo: [:line | ('*Morph*' match: line) ifTrue: [Transcript show: line
All I have done with the above is to transfer a UNIX way of working into
Squeak so I
was wondering what would be a more Smalltalk approach to the above tasks?
If there is no document existing that addresses these issues I would be
very happy to
volunteer to start one. I could write my experiences up as "An introduction
to Squeak for
UNIX users" or something similar that could outline how common practices
translate into the Squeak environment.
Thank you very much for your time,
Free, encrypted, secure Web-based email at www.hushmail.com
More information about the Squeak-dev