A textbook for mid-level undergraduates that introduces Squeak, object-oriented design, interface implementation and design, and multimedia applications, with several case studies. It's being used in classes at Georgia Tech, Bucknell, and Portland State.
A brief TOC:
Foreword by Alan Kay
Introduction: My educational philosophy and how it influences the book design.
PART 1: FUNDAMENTALS OF SQUEAK
Ch1: Intro to objects, history, and Squeak.
Ch2: Intro to Squeak – assuming some knowledge of programming, jumps into the language and environment.
Ch3: Joe the Box – uses the Smalltalk-famous character by Adele Goldberg to introduce Smalltalk programming, graphics, Sensor, and even a bit of UML at the end.
Ch4: Designing with Objects – intro to issues of reuse, design, CRC cards, and UML
Ch5: Building UI in Squeak – Section 1 is an iterative exercise on what a UI toolbox should provide. Section 2 introduces pluggable UI components, in both MVC and Morphic. Section 3 is an intro to Morphic through the Viewers, then describes the pieces of Morphic. Section 4 is the same Viewers exercise (building a tiny physics simulation) in textual Squeak.
Ch6: Designing UI – a brief intro to issues of designing UI, working with users and guidelines, and evaluation
Ch7: Multimedia Nuts and Bolts: A sweeping tour of Squeak media supports, both in terms of existing tools and in terms of the underlying classes so that one can roll-your-own: Graphics, sound, 3-D, Web browsing and serving, bookmorphs.
An edited volume by me and Kim Rose of Walt Disney Imagineering that describes what people are doing with Squeak and what Squeak is about to professionals. The book is supposed to be available in April 2001. You can find the chapters at http://coweb.cc.gatech.edu/squeakbook.
A brief TOC:
Introduction by Alan Kay
Squeak at Its Core
Squeak for Non-Native Speakers, by Noel Rappin of EchoBridge. An introduction to Squeak for the professional programmer. Noel is a recent Ph.D. whose dissertation involved studying how students learned Squeak.
A Tour of the Squeak Object Engine, by Tim Rowledge of Interval Research. Tim Rowledge ported Squeak to the Acorn RISC processor to run on a variety of machines, including PDA's and set-top boxes. In this chapter, he explains how the VM works and it's main components.
Back to the Future, the original ACM OOPSLA conference paper by the Squeak Team, describing how Squeak came to be.
Porting Squeak, by Ian Piumarta of INRIA A description of how Squeak is ported to new operating systems, by the first person to port Squeak to a new operating system outside of the original Squeak Team.
Extending the Squeak Virtual Machine, by Andrew Greenburg The Squeak Virtual Machine (the machine-specific part of Squeak) can be extended in a flexible and portable way using "Pluggable Primitives." This chapter describes how the Pluggable Primitives feature works and how to use it to add new facilities to the Squeak VM.
Squeak is being used in a wide variety of ways by a wide variety of users. The chapters in this section describe applications of Squeak that are either built in to Squeak or are available by loading in external code.
Pluggable WebServer and Swiki, by Bijan Parsia of U. North Carolina at Chapel Hill, and Lex Spoon and Bolot Kerimbaev of Georgia Tech. When Squeak first gained networking capabilities, a web server was the obvious application to create for Squeak. The Pluggable WebServer is a flexible web server implemented entirely in Squeak. One of the applications built on top of the Pluggable WebServer is Swiki, a collaboration tool based on the WikiWikiWeb by pioneering Smalltalker, Ward Cunningham. This chapter describes the Pluggable WebServer, Swiki, and how they're being used.
Alice in a Squeak Wonderland, by Jeff Pierce of Carnegie-Mellon U.. Alice is a programming environment for learning and using 3-D graphics, developed by Randy Pausch and his team at Carnegie-Mellon University. Jeff Pierce was part of the original Alice team, and on an internship with the Disney Squeak Team, he ported Alice to Squeak. This chapter describes some of the 3-D graphics capabilities in Squeak, presents Alice, and describes the implementation of Alice in Squeak.
MathMorphs: An Environment for Learning and Doing Math, by Luciano Notarfrancesco and Leandro Caniglia of UBA. Squeak users at the University of Buenos Aires have developed an application for exploring and visualizing mathematics in Squeak. MathMorphs makes mathematical objects concrete and directly manipulable, on top of the flexible and portable Squeak environment. This chapter introduces MathMorphs, how they are implemented, and how they are being used.
Extending MathMorphs with Function Plotting, by Andres Valloud of UBA. Central to much of mathematics is function plotting. Andres Valloud's function plotting extension to MathMorphs provides a very powerful and flexible plotting facility. This chapter presents the FunctionPlotter tool and how it was built within MathMorphs.
ThingLab: Resurrecting A Smalltalk System, by Reinier van Loon of 2SHARE and Dan Ingalls of Disney Imagineering. ThingLab was one of the pioneering and paradigm-shifting early applications implementing in Smalltalk. It was a constraint-based programming environment that provided a new way of looking at how to express oneself on the computer. Starting with a port by Dan Ingalls of the Squeak Team (and the original Smalltalk team), Reinier van Loon (of 2Share, a Smalltalk-based consulting firm) brought ThingLab back to life in Squeak. This chapter describes ThingLab and its Squeak port, and the value of re-exploring old and classic software.
Building on Squeak
The Apple license for Squeak allows users to take the system in any direction they'd like. This license made Squeak an open source project, where users contributed code and carried on the project in ways that met their own unique needs. Chapters in this section describe uses for Squeak in this direction—building upon the existing Squeak, sometimes contributing to it, and always extending it in new and unusual ways.
Music and Sound Processing in Squeak Using Siren, by Stephen Pope of U. California at Santa Barbara. Research in computer music has been built on top of Smalltalk variations since the original Smalltalk-80. When Squeak became available, Stephen Pope moved his multi-year Smalltalk-based music research project to Squeak. This chapter describes Siren, and how and why it was ported to Squeak.
Streaming Audio in Squeak by Craig Latta of the NETJAM Project. Craig has developed new networking and exceptions mechanisms on top of Squeak for a Real Time Operating System he helped develop. He uses these new mechanisms in this chapter to demonstrate a streaming audio application in Squeak.
Future of Squeak
As an open source project, Squeak's future will be varied and somewhat unpredictable. It will reflect both the research interests of the Squeak Team, but also the needs of the Squeak Community. Chapters in this section present visions of what Squeak may be.
Thinking (yet again) About Computer Environments for Learning: Squeak as an Environment for Learning, by John Steinmetz. The original Xerox PARC Smalltalk group was named the "Learning Research Group." Creating tools for children (of all ages) to learn has been a focus of Smalltalk and now Squeak research for the last twenty years. In this chapter, musician and educator John Steinmetz considers a vision for how Squeak can support and enhance learning.
Squeak as the Kernel by Dan Shafer of CNET. A discussion of what computing might look like if Squeak were to become the OS (or at least the kernel of it) in a future where the desktop is of decreasing interest and importance. Linux might well play a key foundation role there. The chapter would include interviews with a few different people related to the topic, with Dan’s experience liberally sprinkled with quotations from those interviews.