Over 60 percent of the pages of this book are raw or commented Smalltalk V code. The book is a collection of articles that originally appeared in the Journal of Object Oriented Programming. The book is essentially a collection of small programs with generic properties, serving as case studies illustrating Smalltalk capabilities. It is not a pedagogical introduction to the language, a programming environment manual, or a research volume.
Smalltalk, with its two variants, is the purest object-oriented programming language today, and is receiving growing and long-overdue attention from industry. Its teaching has lagged behind in educational institutions. By showing and documenting how one can go beyond the level of tutorials provided with the language, this book is useful primarily as a self-teaching tool for readers with some Smalltalk experience.
Each chapter is separate and a case by itself (with one exception), which unfortunately means that almost no references are provided to publications describing the same or related techniques. Also, no systematic presentation style is adopted, such as class browsers or script libraries would provide. Some of the cases are generic enough to be interesting (chapters 3, 5, 6, and 10), while others look more like oddities. Chapter 1 covers class designs with multiple representations, with binary trees as the example. This chapter could have been made more general by having a syntactic data structure representation via a dynamic computation graph or a simple grammar. Chapter 2 is about sharable dictionaries and tries. Chapter3 presents disk bitmaps and disk objects with transparent forwarding encapsulation. Chapter 4 discusses film loops, but with only a primitive display control capability. Chapter 5 describes management of event-driven facilities among windows, for example, for event updates across windows. Chapter 6 gives an example of using Window Builder V, which is a cute way to build simple user interfaces under Microsoft Windows. Chapter 7 presents a picture viewer and picture library facility, with both graph panes and list panes. Chapter 8 covers the design of classes of panes with unique events. Chapter 9 presents fuzzy theory class membership function manipulations via line plot classes. Chapter 10 discusses Digital Data Exchange support in Smalltalk V, for example, using a Microsoft Word client/server conversation facility.
The book and code are useful, but some cases are presented in too general terms, just as the book’s subtitle is slightly misleading. Take them as an advanced training package.