User
Manual part 1 version 1
I decided it was high time to do something about Squeak's documentation, and
the urgent need to have a User Manual for Squeak inside Squeak.
Here
is version 1 of part 1 of it - where you have to realize for the text that
follows it is presumed you are in fact reading it in Squeak. There will soon
be a version of the User Manual available for Squeak.
And
since I've had comments about the standard font I use on my site, namely
Arial 12 p bold: I'm sorry if it's too large for you, but you can easily
change it on your browser, while I have problems with my eyes and 1500 files
of text on my site.
Also,
I use the keyboard references for
Windows, since I use Windows, and the Alt-key on Windows is used for much, whereas its alias in
Smalltalk ("Cmd")
is unknown in Windows. There will be a list with common names for diferent
keyboard keys in the User Manual. (So if you are on a Mac or on a Linux
system: There things are named a bit differently sometimes! And my excuses if
I fail to be all things to all men and women. It is a human-all-too-human
failure, I believe.)
Finally,
the present version of my text presumes a very recent Squeak-version: 3.2
(alpha) #4542. (Some things are somewhat differently organized
in earlier versions.)
Hello.
Welcome to the Introduction to
Everything in the User Manual.
- This User
Manual seeks to introduce you to Squeak.
- It does so by describing what you see and can
do.
- You are advised and sometimes invited to try out what you can do.
- As you read through this tutorial, later parts
presume you have read and done most of the foregoing.
- Keywords will be red in
this text, and stress that these words are important.
To
read this tutorial with profit you do not need to know Squeak, but you do
need to be familiar with the basics of using a computer - you need to know
how to use a mouse and a keyboard; what windows are; what "drop and
drag" means and similar other minimal computer knowledge and skills.
To the
purpose!
What you're seeing now - when
you read this text as announced above inside a Workspace in Squeak! - is a
window with this text inside a larger window.
The window this text is in has a title - Introduction to Everything in the User Manual -
and it can be moved around
with the mouse by means of the topbar, resized by dragging the sides of the window, (un)collapsed by pressing the
circle on the right in the topbar, and be made (not) full screen by clicking on the two
squares. It has a scrollbar to
the left and a menu that
can be gotten by clicking on the left square. And the whole window can be removed by clicking the x
(which you are not yet invited to try).
The text in this window is editable (which you are also not yet invited to
try), and the window is called a Workspace,
while the containing window is called a Project window.
Now that you know where you're in - Squeak,
in a Project called User Manual, reading a text
called Introduction to Everything in
the User Manual - three more basic thing before starting to
answer the question "What is Squeak?".
The first basic thing is: How to save
and quit Squeak. You do this by moving your cursor to the
Project window, left-clicking and take one of the last 4 options. Doing just
"save" just
saves - ALL of the current system, which will be restarted precisely as you
left it when having done "save
and quit". Generally it is wise to save every half hour or
so, and immediately after whatever you made you really don't want to lose. Whatever
got properly saved almost certainly will be easily recovered the next time
you start Squeak, indeed exactly as and where you left it.
The second basic thing is what to do
if you run into a so-called Walkback. This arises as follows:
Squeak is all the time in the background responding to your input - which is
why you can make things happen in the environment. Your input consists of
mouse-clicks, mouse-movements, or keyboard-presses, and are best conceived of
as messages to Squeak and to the computer. Now it may happen you give
Squeak some message it cannot handle. Squeak's response to what it cannot
handle is with a window that tells you it doesn't understand a message, and
Squeak offers you three options; Proceed,
Abandon and Debug. At this point it is
wise that when you run into this, to click Abandon. This will return you and Squeak to
where you were before you sent the message that you somehow composed and send
to Squeak that Squeak had no other programmed response to - which is the
reason it sent you the responds it doesn't understand your message.
The third basic thing to know is what
to do if Squeak appears not to respond anymore. You can stop
whatever Squeak is doing at the moment by keying in (on Windows) Alt-. i.e. the Alt Key
"Alt" with the dot key "."
What is Squeak?
Squeak is a programming environment and
a programming language bundled
together.
It is different from anything you know - even if you think you know it. You
can program with it.
You can draw with it. You
can write with it You
can make music with it.
You can do mathematics with
it. You can make presentations with
it. You can play games with
it. You can browse the internet with
it, write e-mails with
it, chat with it, and generally
communicate with it
through your computer. You can do anything with and in it a computer can do,
display, express, or help to present or understand, including your own new
ideas.
In short: It is a universal environment for doing art, science,
programming and having fun using computers
creatively.
Squeak is free. Squeak
is written in itself.
You get the full source code for
everything you can do with Squeak included with Squeak, written in Squeak,
and for you to play with, use, learn, and change as you see fit - which
itself is pretty unique: Nothing is hidden or kept secret for you in Squeak,
and everything is free and open:
In
Squeak, everything you do with it and everything it displays comes with its
own free open source-code,
that enables you to understand and change everything about it. In simple
intuitive terms, "free"
means "without payment"; "code" is the textual form of programs
that may be run on a computer; and "open source" means that you get the code
for the programs you run with the programs you run (so that you can see and
come to understand why the programs do run as they do, for this depends on
their coding).
We will have to say considerably more about programming languages,
programming environments, programming, open source code, and the great and
amazing virtue of a programming environment being written in it's own
programming language that's free, but at this point we hold fast to one thing
only:
The name "Squeak" refers to two things
The Squeak
Environment, briefly SE.
The Squeak
Language, briefly SL.
These are complementary but different things, and the former is easier to
learn than the latter. In general intuitive terms, the programming nvironment is what you see and
work with when you're running Squeak, and the programming language is what makes the
environment work (when programs in it are run in the environment).
What is a programming environment?
A programming environment is
a program to write programs in. Programs
are messages to the computer, by which a human user tells a
computing machine what to do, for computers respond to programs they can
handle by systematic behavior prescribed in the program.
These messages to the computer come by the keyboard or the mouse (and in what follows I will assume you
are neither blind nor colorblind: if you are, someone needs to write another
sort of tutorial for you).
By means of the mouse you can move a cursor around the screen and click or double click or Alt-click one of three buttons, for it is
assumed in Squeak you use a 3-button or at least a 2-button mouse. ("Alt-click " is clicking
the mouse while pressing the Alt-key. This is an important message in Squeak,
that in most contexts pops up a menu of options.)
So a mouse with its
buttons is one basic means to program a computer, and a keyboard another. In both cases something is
sent to the computer - in fact a record of: a movement of the mouse, a key
touch, a mousebutton click - and in both case the computer (if it works
properly, as we also will assume) responds with some behavior. Simple
responses are: The cursor is moved, a letter appears on the screen, or
something else happens, like resizing a window.
These things you are supposed to know at this point, but it is well to
realize that at this point you are communicating
with the computer in the sense that you send it messages and it responds in
definite ways to definite messages - and that this already is programming as described: Programs are messages to the computer, by
which the human user tells a computing machine what to do.
There are more basic means to send messages to a computer - joysticks,
microphones, switches - but for the moment we will restrict ourselves to
keyboard and mouse commands to the computer, as the most basic examples of
programs.
And indeed in fact every more complicated program will also be made up from keyboard inputs or mouse movements and clicks (disregarding other
means of input for the moment).
What's so special about the Squeak
environment?
Let's state it in a number of slogans, which we shall explain briefly. Squeak
is all of the following things:
Very Flexible
Very Versatile
Very Powerful
Very Easy
Great Fun
Quite complex
Very Flexible:
Everything you see can be altered in many respects - size, color, mode of
presentation and can be set in many ways. One such set of ways is in the menu
Preferences (which you
can get from the World Menu or
the Squeak flap: see
below).
Very Versatile: You can
write, draw, compose, calculate, program, make presentations, edit pictures,
edit sound, go on the internet, with Squeak - and all with complete source
code, fully explaining these many capacities, and fully yours to adapt,
improve and extend.
Very Powerful: The user
environment you are in and see itself is written in Squeak, which is a
universal programming language of great elegance. Anything that a computer may compute, may be
written in the Squeak Language, while the Squeak Environment gives you full
command and access to it, and to everything Squeak is and can do.
Very Easy: Much of
Squeak's powers, and especially those of its environment, is very easy to
access and use, though again it takes some getting used to because the
environent is so different from what you are used to and is so powerful,
complex and many-faceted.
Great Fun: Because of
Squeak's ease of use and great power, it is great fun once one has gotten
used to the environment. Also, it can be very helpful very fast, especially
in education and in art.
Quite complex: It
cannot be denied that all in all Squeak is complex, many-layered, and
difficult to learn in all its
many aspects. Also, learning to program
a universal programming language like Squeak is never easy. (However:
You cannot have great power and use that great power with great understanding
without considerable preparatory labor.)
This User Manual
attempts to teach you Squeak in a clear no nonsense way, in clear English. It
wil also not attempt to make complex things seem simple or simple things seem
complex. This User Manual will also not present as "easy" such
things as are quite feasible and enjoyable with Squeak, like writing your own
quite complex programs doing completely new, original and worthwile things
in Squeak. This you can learn, and this is fun to do and fun to learn -
but it is not learned in a few hours or a few days.
The Good News concerning learning
to program in Squeak is that Squeak is easier, clearer and more elegant than
all or most other programming languages. The Less Good News is that a powerful programming
language is not easily grasped, not in one go, and not in one day or week. But
then the same holds for any piece of worthwile mathematics. (And indeed in
the end that is what Squeak is: Applied
mathematics as environment, plus a formal mathematical language to program
computers in, bundled together with many applications that have already been
programmed and do not need any complicated programming on the part of the
user, beyond clicking, typing and some rational thinking. Those who have
learned to hate mathematics when in school, these days can see with a
computer what mathematics is really about: Fun, beauty, elegance - and all in
a rational way.)
But to return from the eventual complexities of learning to program in the Squeak Language, let's
consider the Squeak Environment we're
in.
Why is the Squeak environment so
different?
It is different, and it
will take some getting used to, and it's unlike anything you've seen before, while it
is also superficially much like what you know in many of its more directly
visible presentations - for it does have windows, and buttons, and responds
to mouse-clicks etc.
The reason the Squeak environment is different
from any other environment is it's very great versatility and power, commented on
above: Very much and very many different things are possible in it and
combinable in Squeak, and very many things may be happening in it, and all of
this makes Squeak quite different from other progranms. (Indeed, your
clicking on many of the many options in the many pop-up menus in the project
window or other windows may cause unexpected responses: see "Walkback" above for what
may happen and how to react to it.)
It looks different in
part because of what it is -
an interpreted programming environment of great versatility and power - and
in part because of how it came to be. For Squeak is in fact the result of a
continuous development of the Smalltalk
language and environment, that date back 25 years, and in which
were the first to do windowing and mousing. The interface Squeak offers
is inherited from this Smalltalk.
That Squeak is interpreted is
another feature that makes it different from most other programming environments,
that usually are compiled.
In simple terms, compiled means faster but far less versatile and easy to use
and change.
A concluding important reason why Squeak is different is that it involves a loaded image.The word
"image" has a special meaning in this context: The image is a large precompiled set of
programming code, ready to run, and designed for very many different ends,
some few of which are showing you the screen you see. An image is loaded
whenever you run the Squeak.exe,
and it is the image that contains the source for what the Squeak environment
shows to you. All of
this code is ready to run Squeak
Language program code and can be seen and edited in the Squeak
environment, namely in the System
Browser and other Browsers
and Coding Tools,
but these we will turn in later sections of this User Manual.
First, we return again to working with and in the environment.
What you can do with the
environment?
The brief answer is: Absolutely everything
a computer can do - in a comparatively easy and pleasant way. But
indeed "everything a
computer can do" is a lot, and will take a lot of learning - although it
deserves stressing that "learning"
with a computer is for a considerable part playing with it, in a somewhat systematic
mood.
So here I will be concerned only with the most basic and universal elements
in the Squeak Environment:
The project
The mouse
The pop-up menus
The flaps
The key-board
The project: In Squeak,
in fact you are always inside some project,
which basically is a full window in
which you can put whatever you please, and save, store and access as one packet full of
things - text, drawings, sounds, whatever - about some topic the project is
about.
Projects are started with project
buttons, which are windows that display a thumbtail image of
their full-screen display. Projects are left by mousing up a menu that
contains a "Previous Project"
option, and clicking that.
The mouse: The Squeak
Environment is built around using the mouse. You can select many things on the screen, and click, double-click, Alt-click, resize, move, close, and collapse
them (where "collapse" means: keep on screen in a
reduced form, as this textwindow when you click the righthand circle in the
top bar).
In part, this concerns textwindows, browsers, and other stuff we shall learn
more about, and is connected to windows you see on the screen.
More
complicated options for the mouse follow:
The pop-up menus: Most
windows when clicked in have a pop-up menu with options and explanations. These
are specific to those windows. The project windows when left clicked come
with a World Menu (or Project Menu). This gives
access to many other pop-ups. These we shall meet later in this User Manual. Here
I only note you can get rid of a
pop-up by clicking outside it, while you can keep it on the screen by clicking its first
option "Keep this menu up".
Most pop-ups have this, and so you can put a lot of pop-ups on your screen to
survey the very many options you have and get some help. Also most pop-ups
show a help-balloon for
most or all options if you put the cursor on the option. (This may need
setting in the "Preferences"
pop-up, that's briefly discussed in the following subject.)
The flaps: In a Project a.k.a. World window you will see a
number of flaps at the
bottom of the screen. If not, open the World Menu, click "flaps..." and click on the squares
beside the options. This displays the flaps (or takes them off the
display).
There are seven standard
flaps on the "flaps..." menu:
- Navigator
- Squeak
- Supplies
- Widgets
- Stack Tools
- Tools
- Paint
and
besides there is in any case, whether or not you show flaps, on the bottom of
the screen a horizontal popup list for projects. This contains "PREV" for "Go to previous project"
and a version of the "Make a
painting" flap. This last one we shall return to in the
next lesson in this User Manual. Also, this option contains "Escape browser" which in
fact means Squeak takes over the full screen.
Here
we turn first to the six flaps, and discuss them briefly.
How to work with the flaps
First,
you can open any flap
by clicking it's handle, and close it by clicking the handle again, and resize it by dragging the
handle.
What are these flaps? All of the flaps open windows that are partially see
through and that serve as containers for options and stuff - text, pictures,
buttons, program code, you name it - you might want to use and keep in a store. You can drag things
on screen to a flap, and drop it into the flap, and close the flap as if you
had put the thing you dragged there in a cupboard. Reversely, by dragging and dropping any
item in a flap onto the screen, you put a complete working copy of it on screen. And
some flaps hold more specific options. Here is a basic survey:
Navigator
This
pops up if you mouse over it, and contains the following, all with their
help-balloons
|
Share
|
a
project
|
|
NEW
|
project
|
|
NEXT
|
project
|
|
PUBLISH IT
|
project
|
|
Newer?
|
project
|
|
Tell!
|
a
project
|
|
Find
|
a
project
|
|
Escape Browser
|
Make Squeak take over the full screen
|
|
Hide Tabs
|
Hide flaps
|
|
Paint flap
|
Start a new painting
|
|
Undo
|
Undo last command
|
|
NEW
|
project
|
Only a
few deserve any comment here and now: "Escape Browser" does as the explanation
says (no more Windows stuff visible!) and can of course be undone; "Hide Tabs" still follows
an alternative naming convention for flaps; "Paint flap" starts a simple program to
paint with, that for all its simplicity is very handy and elegant; "Undo" can be shown by
picking up a morph (see below under "Supplies") with the mouse,
putting it elsewhere on the screen and clicking "Undo", and "NEW" very simply and neatly starts a new
project.
Squeak:
This
flap contains a number of options that I list here for brief comments:
|
< Go.. >:
|
An easy way to shift to another project.
|
|
Snapshot:
|
An easy way to save the whole state of the Squeak
system.
|
|
File out changes:
|
Puts your latest work in a file on disk.
|
|
Clock:
|
An active clock showing the current system time.
|
|
Preferences:
|
Pops up a window in which you can set very
many preferences.
|
|
Load code updates:
|
Get the lastest code-additions to Squeak from the
internet.
|
|
About this system:
|
Shows you how many code-additions you have loaded
from the net.
|
|
Trash bin:
|
Contains what you have deleted, ready for restore
or definite removal.
|
There is more to say on each option. All I say here is that the Go switch is convenient, and saving your image OFTEN helps
not loosing your work.
Supplies:
This
flap contains more morphs about which more will be said later.
However,
here is one very important point about morphs.
Open
the Supplies flap,
select the star with
the mouse and drag and drop it
somewhere on your screen. (If you check Supplies you will see you have indeed
a copy, not the
original.)
If you click this star
it shows a shadow, and you
can grab and drag and drop it
with the mouse. This is what you can do with any morph, and the star indeed
is a morph.
Furethermore:
With any morph indeed a lot of possible behaviors and appearance-changes are
possible, and Squeak has a very neat way to deal with this: Move your cursor
to the star and do Alt+LeftClick on
it: It will suddenly show what's called a halo of buttons around it.
This halo of buttons suddenly
opens very many possibilities for this simple star, one of which is by way of the lower
right hand button, by which you can resize
it, or the lower left hand button by which you can rotate it , or by the button above the resize
button, with which you can change its
color.
Try these, for while both
are very simple examples of what you can do with Squeak that show things
other environment just cannot do with what they display.
Any morph has a halo, and every halo belongs to a morph. About halos and morphs
there is much more to say, which will happen later. For morphs are one of the great new things of
Squeak, and the halos are a new way of communicating with morphs.
Here
just three more basic things about halos and morphs are mentioned, all
important and all making life with Squeak a lot easier:
Halos are activated by Alt+LeftClick on a part of the screen. (This
part may be itself be a morph that is part of a morph, so in fact you can
successively click to series of halos in case you are in a so-called
sub-morph i.e. a morph inside another morph.) And halos are de-activated by clicking anywhere outside the
morph.
Halos contain a collapse button: The upper
left circle. Clicking collapses the morph to a bar on the screen.
Halos contain a remove button:
The upper left cross. Clicking it removes the morph to the trash bin.
Halos contain a drag button:
The middle button in the upper row. Clicking it allows dragging the morph
over the screen.
So at this point you have already learned that the screen the Squeak Environment offers you many
more capacities than ordinary environments, where parts of the screen are
usually far less versatile, programmable, alterable, or open to thought and
change by the user.
Widgets:
This
flap is a collection of useful morphs. As before, a copy of any of them can
be dragged onto the screen and played with. The most comprehensive of these
is the Morph Catalog,
which is a sorted list of morphs available to you in the current Squeak. Some
of these will be discussed later on.
Now
for some morphic fun and beauty!
Open
the Widget tab, and get
a Morph Catalog on your
screen. This is in fact list of lists of morphs you can easily search through
by clicking.
Use the Morph Catalog to find the
3-D morphs for a moving 3D-cube and
the several magnifiers (round
and rectangular) you can use to magnify arbitrary parts of the screen.
Since
these are morphs grabbing them with the mouse is sufficient to put a working
copy on your screen. If you do so, you will liven up your view with things
other environment cannot do at all or not as well - and I have just explained
how to collapse or remove these if you're tired of them. (The magnifiers are
stunning with pictures on your screen to magnify. Moving your mouse while
having a magnifier indeed turns it into the likeness of a real-life mirror or
TV-screen.)
Stack Tools:
This
flap contains morphs for a HyperCard system.
Hypercards or a hyperstack are textwindows with hyperlinks to all manner of
relevant material, and Stack Tools gathers the basic bits and pieces. I will
say more of it later, and show and use these, for in fact hypertext is a very
useful new way to deal with text and illustration in a computer. Incidentally:
Html is another form of
hypertext. Hypertext is
text on a computer that contains links (urls in html) to other files, with
supplementary information.
Incidentally, "morphs"
are parts of the Squeak Environment that you can send messages to and attach
program code to. The word is derived from the Greek, in which it means
"form". You can pick up and drag and drop any morph with the mouse, and in generally
do many things to and with them you cannot do with parts of the screen in
other environments. Morphs are
one kind of thing that makes Squeak so very special and powerful - for in
fact almost anything you see in a Squeak Environment either is a Morph or can
be made into a Morph: What you can
name or select in Squeak you can alter and program systematically.
This
is a very fundamental feature of Squeak, and one that is missing in almost
all other computer languages. (The exception is the programming language Self, which is a precursor of
Squeak.)
Tools
If you
click the Tools flap,
you see a list of tables that include Workspaces, Transcripts,
Browsers, Filelists, and Preferences. All of these
will be discussed in what follows, and mostly belong to the art of coding
with the Squeak Language. (Meanwhile, you can look at any of these, for these
too are morphs, and you can get rid of them by their x-remove buttons. Nothing
will be lost if you do so.)
Painting:
Squeak
contains a basic Paint program
that for all its simplicity is quite versatile. The Paint flap or the Navigator tarts it , and the next part of the
User Manual will describe it in a little detail. (It also can be started from
the Projects flap on
the bottom of the screen.)
What went into the design of the present project?
Compared to what other environments show you, in fact in this first lesson to
Squeak, you will have seen a lot of rich detail and niceties missing in other
environments. Yet what I have done is all very easy and can at this point be
easily done by you. Here are the steps and a brief explanation:
Making a project
Getting a workspace
Writing the text
Making Drawimg
Setting Background
Making a project: A
project is a full-screen window in which there is whatever Squeak enables you
to put into the project - text, drawings, music - it's up to your ingenuity
and time. A new empty one is very easily started from the World Menu - projects - create new morphic project.
This will make a new project-button for you, which in fact is a thumb-nail of
the project-window.
Getting a workspace:
This is as easy as opening the Tables
flap and dragging a Workspace
on the screen. (It's explained above how you resize, recolor
and rename it. Precisely the same goes for the Project windows.)
Writing the text: For
this all you need is something to say, a facility to say it well, and the
handiness to type. These are all up to you, and typing you will have to learn
and will learn by doing it (with or without the help of some program). There
is one problem with Squeak-as-is: The key-board does need some getting used
to, and is a bit different and in part less slick than is a Windows
text-editor. Also, on the moment Squeak has fewer fonts available than one
would wish. The available fonts and the keyboard handling will be soon
improved, and there is a convenient workaround for those writing long texts:
You can do it in any editor you please; save it as text or html; and then
load that into Squeak. This you can do by a filelist or by Scamper - and a filelist is indeed a list of
files from which you can choose, much like MicroSoft's Explorer, while
Scamper is Squeak's internet browser and displays html.
When writing long texts I found this more convenient - but all of the present
text has been typed inside a Workspace inside Squeak in the first version. After
having done that I have copied the result to my html-processor, and re-edited
it some and added the last section of summary points, saved the result to
disk and loaded it back into Squeak - which illustrates that while all things
a computer can do can be done inside Squeak, Squeak also makes it perfectly easy to work interactively with other programs at
the same time.
Finally,
the coloring of the text in the Workspace is done by way of the menu popped
up when pressing Alt-6
i.e. "Alt" plus "6", while the size is set by way of Alt-a (select all text) and Alt-k (font-size).
Making a drawing: Here
I used the Paint program
of Squeak, which will be more fully explained in the next lesson. All I did
was in fact to use a tool to paint stars, resize the drawing, and drag it
about to a convenient place.
Setting Background: One
of the many things Squeak is is a Graphical
Programming Environment. It is very easy to work with pictures,
drawings, bitmaps and the like in Squeak. To set a background all you need is
to open a filelist on a gif-file,
right-click on it for a pop-up window and use the option "open image as background".
This
concludes this first lesson of the User Manual.
What you may have learned in this lesson:
Here
is a summary of points with links to the appropriate place in the text (to
follow later)
- This the first lesson of an extended series of
lessons that together form the User
Manual. It aims to be written in a clear no-nonsense
English. Uncommon or new words will get a clear definition or
description in common known terms.
- It teaches about Squeak by describing what you
see and telling you what you can do with and to it.
- A
Workspace is a
window in which you can edit
text (and do many more things). It can be picked up and moved about and resized with the mouse.
- Many
windows in Squeak including Workspaces have a topbar with title, remove, collapse, shrink/expand and menu button.
- That
you can write text in
Workspaces, save this to disk,
and open many Workspaces and
copy and paste between them.
- How
to save, quit, and save and quit Squeak.
- How
to recognize a walkback and
react to it (click Abandon).
- How
to escape from a loop in
Squeak (press Alt-. =
"Alt" combined with a dot ".")
- How
to collapse, expand, shrink windows, and scroll in them.
- All
things you can select in
Squeak can be copied,
dragged, resized, expanded and can be attached program code
to, that makes it do things you wish it to do.
·
Squeak presumes a 3- or 2-button mouse. (It can
be tweaked for a 1-button mouse but this is inconvenient.)
- What
Projects are: Full
screens with all manner of Morphs
- What
Morphs are: Parts
of the screen you can select and manipulate in many ways, some standard
for every morph, and arbitrarily many up to you.
- What
Squeak is: a programming environment and a
programming language bundled together. Convenient
abbreviations for these two aspects are SL and SE.
- That
for much you can do with the Squeak
environment you need little or no programming (other than
moving the mouse and hitting the keyboard)
- What
you can do with
Squeak: Anything a
computer is capable of - write, draw, compose and edit music, do
mathematics (in new and old ways), make presentations, play games, write
and send e-mails, chat, browse the internet and more. It is a universal
environment for doing art,
science, programming and having fun using
computers creatively.
- Why
Squeak is so different and
in which ways:
·
programming
environment
·
programming
language
·
free
·
open
source
·
written
in itself
·
full
source
·
fully
comprehensible
·
fully
alterable
·
fully programmable
·
·
Squeak is an environment you can
use, and a language in which you can program
anything in the environment - in the sense that you can tell it
what it can do when and how.
·
Much of the environment is easy and fun to use, and
requires no programming
·
A programming environment is a program to write
programs in.
·
Programs are messages to a
computer, by which the human user tells the computing machine what to do.
·
The simplest kind of programming
any one using a computer in fact does and knows how to do: Moving and
clicking the mouse and
hitting the keyboard.
·
All programming is is a human being sending
messages to a computer, that responds to these messages after which the human
being can respond to these by sending new messages.
·
Real programming is the writing of code that gives
the computer new systematic responses to certain messages (i.e. behavior by
the human user).
·
Squeak is very flexible: Everything you see can be altered in many
respects - size, color, mode of presentation and can be set in many
ways.
·
Squeak is very versatile: You can write, draw, compose,
calculate, program, make presentations, edit pictures edit sound, go on the
internet, and many other things
·
Squeak is very powerful: The user environment you are in and
see itself is written in Squeak, which is a universal programming language of
great elegance. Anything that
a computer may compute, may be written in the Squeak Language, while the
Squeak Environment gives you full command and access to it, and to everything
Squeak is and can do.
·
Squeak is very easy: Much of Squeak powers is very easy to
access and use, though again it takes some getting used to because Squeak is
so different and so powerful, complex and many-facetted.
·
Squeak is fun: it is great fun once one has gotten used
to the environment. Also, it can be very helpful very fast, especially in education and in art.
·
Squeak is quite complex: Squeak, and especially using its
programming language, also is complex, many-layered, and dificult to learn in
all its many aspects. And learning to program a universal programming
language such as Squeak is, is never easy.
·
The Squeak environment is different from any other
environment because of is it's very great versatility and power
·
The Squeak environment looks different in part
because of what it is - an interpreted programming environment of great
versatility and power - and in part because of how it came to be. For Squeak
is in fact the result of a continuous development of the Smalltalk language
and environment, that date back 25 years.
·
Squeak is interpreted unlike most other programming environments,
that usually ar compiled.
In simple practical terms, compiled means faster but far less versatile and
easy to use and change.
·
Squeak works with a loaded image a
comparatively very large precompiled
set of programming code, ready to run, and designed for very
many different ends.
·
With and inside Squeak
absolutely everything a
computer can do it can be made to do, but "everything a computer can
do" is a lot, and will take a lot of learning
·
Learning with a computer is
for a considerable part playing with
it, in a somewhat systematic mood.
·
Some ins and outs about
The project
The mouse
The pop-up menus
The flaps
The key-board
For these you are referred to the text, but I'll summarize some:
·
In Squeak, you are always inside
some project
·
A project is a full window in which you can put whatever
you please, and save, store and access as one packet full of things - text,
drawings, sounds, whatever - about some topic the project is about.
·
Projects are started with project buttons, which are
windows that display a thumbtail image of their full-screen display.
·
Projects are left by mousing
up a menu that contains a "Previous
Project" option, and clicking that.
·
The Squeak Environment is built around using the mouse. (You cannot fully use
it without a working mouse.)
·
The pop-up menus: Most windows when clicked in
have a pop-up menu with options and explanations. These are specific
to those windows.
·
The World Menu (or Project Menu) comes via Alt-LeftClick in a project
and gives access to many other pop-ups.
·
Most pop-ups have a first option
"Keep this menu up".
·
Many pop-ups show a help-balloon for most or
all options if you put the cursor on the option. (This may need
setting in the "Preferences"
pop-up.)
·
The flaps: In a Project
a.k.a. World window you will see a number of flaps at the sides of the screen. If not, open the World Menu, click "flaps..." and click on
the squares beside the options. This displays the flaps (or takes them off
the screen).
·
There are seven standard flaps
on the "flaps..." menu:
- Navigator
- Squeak
- Supplies
- Widgets
- Stack Tools
- Tools
- Paint
For more see the text.
·
You can open any flap by clicking it's handle, and close it by clicking the
handle again, and resize it
by dragging the handle.
·
All of the flaps open windows
that are partially see through and that serve as containers for options and stuff - text,
pictures, buttons, program code, you name it - you might want to use and keep
in a store.
·
By dragging any item in a flap onto the screen,
you put a complete working copy of it
on screen.
·
Morphs are parts of the Squeak Environment that you can
send messages to and attach program code to.
·
You can pick up and drag any morph with the mouse, and in
generally do many things to and with them you can NOT do with parts of the
screen in other environments.
·
Morphs are one thing that
makes Squeak so special and powerful: Almost anything you see in a Squeak
Environment either is a Morph or can be made into a Morph.
·
What you can name or select in Squeak you can alter and program systematically.
·
There is a Morph Catalog in the Widgets flap that lists
many morphs and lets you put copies of them on the screen.
·
Halos and morphs: With any
morph indeed a lot of possible behavior and appearance-changes is possible,
and Squeak has a very neat way to deal with this: Move your cursor to the
star and do Alt+Click on
it: It will suddenly show what's called a halo of buttons around it each of which
when clicked triggers some behavior of the morph or changes some aspect of
it.
·
Any morph has a halo, and every halo belongs to a morph.
·
Halos are activated by Alt+LeftClick on a part of
the screen.
·
You can successively click to series of halos in case you
are in a so-called sub-morph i.e.
a morph inside another morph.
·
Halos are de-activated by clicking anywhere outside the
morph.
·
Halos contain a collapse button: The upper left circle. Clicking
collapses the morph to a bar on the screen.
·
Halos contain a remove button: The upper left cross. Clicking
it removes the morph to the trash bin.
·
Halos contain a drag button: The middle button in the upper
row. Clicking it allows dragging the morph over the screen.
·
Tables: If you click the Tables flap, you see a list
of tables that include Workspaces,
Transcripts, Browsers, Filelists, and Preferences. All of these will be discussed
in what follows, and mostly belong to the art of coding with the Squeak
Language.
·
Painting: Squeak contains a
basic Paint program that for all its simplicity is quite versatile. The Paint flap starts it, and the
next part of the User Manual will describe it in a little detail. (It
also can be started from the Projects
flap).
This
concludes the first part of my User Manual for Squeak. Note the information
below, especially the version of Squeak used (for things are somewhat
differently arranged in earlier versions of Squeak, while a Mac keyboard is
somewhat different from a Windows keyboard).
Version-date: mm 12/25/2001
Author: Maarten Maartensz
Author address: maartens@xs4all.nl
Squeak-version: 3.2 (alpha) #4599
Written while using Windows98
User
Manual - Provisional index of sections
Introduction
(this file)
Using Workspaces and Transcripts
Using Paint
Using Tables
Using Morphs
Tricks and Traps
How to begin Scripting
On the difficulties of Programming
How to
program Squeak
1. How (not) to talk about programming
2. The Squeak Language Stated And Explained
3. etc.
Principles
of Programming
Quotations
Glossary
Index
Tour
Map
Help
Notes
News
Version
Info
And so
much for the first version of part 1 of my User Manual for Squeak. I believe
this text will clarify quite a few things for new users of Squeak in a short
time, and shows that Squeak is eminently fit to run its own documentation
written in itself.
Comments,
critical and otherwise, are appreciated. My e-mail address is in my
signature. Of course, the text of the present note presumes it is read inside
Squeak.
This
text (or a later version) will be made available soon as a public Project in
Squeak, and it will be rapidly extended.
Suggestions
for later parts of the User Manual - what should be in it, and how presented
- are also very welcome, even though I cannot promise before seeing them that
I will abide by them.
Maarten
Maartensz
Dec 25, 2001
Amsterdam
|