Home > Store

Squeak-A Quick Trip to ObjectLand

Register your product to gain access to bonus material or receive a coupon.

Squeak-A Quick Trip to ObjectLand


  • Sorry, this book is no longer in print.
Not for Sale



Topic coverage includes:

  • An overview of fundamental object-oriented concepts: object, class, message, method, and more.
  • The basic building blocks of the Squeak programming language.
  • Successful strategies for debugging and testing.
  • Booleans and blocks.
  • Iteration and recursion.
  • Code writing: style, comment, convention.
  • A glimpse into the future of Squeak.


  • Copyright 2002
  • Dimensions: 7-3/8" x 9-1/4"
  • Pages: 328
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-73114-2
  • ISBN-13: 978-0-201-73114-9

The Squeak programming language, an open and portable Smalltalk-80 implementation, is gaining wide acceptance as an agile solution for high quality computation. This tutorial provides a complete introduction to Squeak and advanced topics for programmers interested in mastering the language and implementing programming solutions with it.

Both informative and conversational, this unique how-to guide follows a dialogue between programmer Jim and a Wizard from ObjectLand--allowing the reader to easily understand and implement solutions using Squeak's object-oriented paradigm. Beginning with an overview of object-oriented fundamentals, Squeak--A Quick Trip to ObjectLand then builds on the basics and progresses to more complex language concepts. Throughout the book, topics, goals, and "words of wisdom" are clearly outlined, allowing any programmer to gain a complete understanding of the Squeak programming environment at their own pace.

Topic coverage includes:

  • An overview of fundamental object-oriented concepts: object, class, message, method, and more
  • The basic building blocks of the Squeak programming language
  • Successful strategies for debugging and testing
  • Booleans and blocks
  • Iteration and recursion
  • Code writing: style, comment, convention
  • A glimpse into the future of Squeak

With Squeak--A Quick Trip to ObjectLand, developers have the most unique learning environment available for this practical, productive, and portable programming environment.



CD Contents

Untitled Document Download the CD Contents related to this title.

Sample Content

Downloadable Sample Chapter

Click below for Sample Chapter related to this title:

Table of Contents



About the Authors.


 0. As our Story Begins.
 1. A View of ObjectLand.
 2. ObjectLand.
 3. A View of the Tools.


 4. Smalltalk: The Language.
 5. Back to ObjectLand.
 6. Debugging and Testing.
 7. The Class Hierarchy.
 8. Numbers et al.
 9. Collections.
10. Booleans and Blocks.
11. More Blocks.
12. Files and Streams.


13. Object-Oriented Thinking and Design.
14. An Introduction to Morphic.
15. Morphic Programming.
For More Information.
Index. 0201731142T11262001


We have read our share of programming-language books and have learned much and little. The style used by conventional programming-language books is a blend between that of a reference book and that of a code-examples book, with some explanatory comments squeezed in between. When approaching the creation of this book, we never considered writing it in a conventional format. The unconventional nature of Smalltalk demands a novel approach. So, we wrote the book in the form of dialogues involving a human named Jim, who has reasons to converse about the nuances of the object-oriented paradigm, Smalltalk programming, and the Squeak environment. The dialogues take place between Jim and the Objective Wizard (an outspoken, outlandish, and outstanding object) in some chapters, and between Jim and the Objective Librarian (a well-spoken and reflective object) in other chapters.

It bears noting that the setting for this book is the virtual world of ObjectLand. However, since, as of yet, humans are unable to enter ObjectLand, you will want to keep in mind that ObjectLand's real-world analogue is Squeak.The intent of this book is to teach the reader to solve problems in the object-oriented paradigm and to implement solutions using the object-oriented programming language called Smalltalk in the Squeak environment. It must be read from start to finish and read completely. As you read it, you will soon realize that it is not a reference book. It is more like a storybook with To Do Lists. Read it as you would read a story. It has a plot; it has character; it's meant to entertain.

The other big difference between this book and conventional programming books is that you should have a current version of Squeak running in a computer next to you while you are reading. You can participate in the story, and the To Do Lists ask you to complete tasks to reinforce the chapters' information.

The conversation between Jim and the Objective Wizard contains English sentences interspersed with Smalltalk code. You can easily recognize the Smalltalk code because it is always in a different typeface--this one.

This book can be read in about 15 sittings. That's one chapter per sitting. The completion of the To Do Lists is mandatory. A To Do List appears at the conclusion of each chapter. You will notice that the completed To Do code is not included with the book. The reason for this is that we all know you will look at it as soon as a To Do task gets difficult. We don't want you to look at our solutions to these tasks. We want you to work through the difficulties and reap the learning rewards. If you really want to see our solutions, then check the "About the Authors" section to find out where we are.

Learning Smalltalk and the Squeak environment can be a tricky task, but after teaching introductory and advanced Smalltalk classes for a few years, we have figured out how people learn to use Smalltalk. We have found this book's approach to be an extremely effective path to understanding the object-oriented concepts and gaining skill in solving problems by writing squeaky clean code--in Squeak.

Try it, it works!

Once you have completed this book, you probably will not need it again. You will have been introduced to the cast of characters and will have learned the story. You will need a more advanced book. We suggest that you continue your journey up the Smalltalk learning curve by rambling through the list of texts for further reading that we've included in the back of this book--or perhaps, look for a future ObjectLand book someday.

Gene Korienek
Tom Wrensch
Doug Dechow
August 2001



Page numbers followed by f and t indicate figures and tables, respectively.

AlignmentMorph class, 254

allSatisfy message, 199–200

Analogy, definition of, 289

and message vs. & message, 184

Animation (thinking tool), 289
     problem-solving with, 230

Animation, of objects, 282–286

     definition of, 289
     problem-solving with, 231–232

Appearance menu item, 51, 51f

     definition of, 289
     prototypes of, in Smalltalk, 27

Argument, definition of, 289

Arithmetic, 147–157. See also Number class
     execution order for, 152
     heuristics for, 155

     in animation, 283–284
     creating, 96

Array collection, 164–167
     nil in, 166

Assignment, definition of, 289

Background process(es), 200–201

Bag collection, 164–165

Binary message(s), 88, 289–290

Blacky, definition of, 290

     definition of, 97, 186–187, 290
     types of, 187–190

Blue button, 19, 20f

Boolean class, 183–186

BorderedMorph, 271f
     creating, 267–268, 268f

Browser, function of, 60

Cartesian coordinate system
     viewing, for morphs, 249–250
     for visual display, 248–249

Cascade message, 89–91

     browsing, 61, 63f
     creating, 66–67, 67f
     definition of, 61, 137
     finding, 137–138
     for messages, 237
     for methods, 273–274, 274f, 285, 285t
     second-level, 137
     top-level, 137

Character(s), definition of, 96

Character class, 151

     browsing, 62, 63f
     creating, 68, 273, 279–287
     definition of, 39, 85, 290
     extending, 272–275, 275f
     finding, 63–65, 64f, 65f, 135–136, 141
     message interfaces for, 237
     of Morphic framework, 252–258
     objects in, 7
     removing, 76
     saving, 75
     subclasses for, 111, 272–275, 275f
     superclasses for, 111

Class comment(s), viewing, 247

Class definition
     contents of, 40
     creating, 236, 282, 284
     inheritance in, 282
     methods in, 41

Class hierarchy
     inheritance in, 111–112
     polymorphic messages in, 110
     vs. Smalltalk, 84
     for Stream, 175–176

Class method(s), in class definition, 40

Class name(s), syntax for, 86

Class variable(s)
     in class definition, 40
     definition of, 290
     scope and usage of, 98, 103

     errors reported by, 122
     optimizing, 128–129

collect message, 189

Collection(s), 159–179
     saving to files, 217

Collection class(es)
     conversion messages for, 173–174
     hierarchy of, 161–162
     iteration messages for, 189–190
     messages for, 162–163
     subclasses of, 163–173, 178

Color palette, in changing morph color, 266f

Comparison message(s), 185

Compiler error(s), 122–123

Compiler, in saving methods, 101

Composite morph(s), 252
     disassembling, 278–279, 279f

ComputerLand, definition of, 290

Conditional statements, 186

Conversion message, for collections, 173–174

Coordinate system
     viewing for morphs, 249–250
     for visual display, 248–249

Cursor(s), HandMorph class as, 255–256

3D subproject, 18

DataStream class, 210, 215–216

Date class, 151

Debugger, 125–126

definition of, 289

detect message, 199

Dictionary collection, 172

Directory (ies), creating and deleting, 214. See also FileDirectory class

Do it, 29f
     definition of, 290
     vs. Print it, 28

do message, 189

Drool, superconducting, 290

Dynamic binding
     definition of, 290
     and polymorphism, 108

Embedded code, debugging with, 126–127

     definition of, 267
     disassembling, 278–279, 279f
     of morphs, 271–272, 272f

Encapsulation, 107–108, 115, 290

     compiler for, 122–123
     exceptions for, 202–203
     runtime, 122, 123–125
     sources for reporting, 122

error: method, 123

Event handling, in mouse click, 282

Exception class, for errors, 202–203

Execution, order of, 91–94, 103, 152, 293. See also Do it

Expression(s), 91
     components of, 94–95
     definition of, 42
     in methods, 43

false pseudo variable, 98–99, 183

File(s), 211–213
     closing, 213
     opening, 72–73, 73f, 211
     saving, 74–75, 211
     saving objects to, 216–217

File in, 77–78, 77f

File out, 75

FileDirectory class, 210, 214. See also Directory (ies)

FileStream object, 210–211

Float class, 154

fork message, 201

Form class, 280
     in animation, 283

Fraction class, 155

Full screen menu items, 53

Games subproject, 18

Garbage collector, 290. See also Blacky

get method, 108

Global variable(s), 95
     defining, 97
     scope and usage of, 98, 103


Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership