The only advanced book on Squeak, an important up-and-coming programming language, and includes an introductory chapter to help those who know programming but not Squeak. Squeak is the only tool that allows users to explore computer music, digital sound, advanced user interfaces, 3-D computer graphics, Flash animation, and virtual machine creation (such as for embedded systems) across Windows, Macintosh, and Linux. This book is the best documentation of Squeak for those purposes. Provides details on 3-D Computer Graphics, Advanced UI, Streaming Audio, and other multimedia topics. Provides detailed tours of the architecture of a virtual machine (including tradeoffs), porting it to multiple platforms and extensions mechanisms. Includes description of the efforts of an Open Source Community. Appropriate for all professionals in Advanced Object-Oriented Programming, Multimedia Systems and Developments, and Software Engineering Open-Source, and Embedded Systems fields as an authoritative guide to the use of Squeak as a Multimedia Tool.
This book is a series of papers on an old version of Squeak. It's broken up into sections:
- Squeak for the programmer and media developer - Squeak for the systems programmer - Squeak for the toolkit programmer - Squeak for the future
First, people should understand that this book was published in 2002. So, the Squeak it describes is very old. However, I would still recommend it to people who are trying to become familiar with Squeak/Smalltalk, because a good portion of what it talks about is still applicable to current versions of Squeak. The specific example's given for tools and applications may or may not apply, though. Part of what's important about the book is getting the reader acquainted with technical facets of the system, and the language.
The first section introduces the reader to Squeak, helping one install it, get familiar with basic system tools, and learn the programming language. After that, it gets into Morphic, Squeak's graphics system, which is another nice introductory topic, along with the Alice 3D environment, which was ported from Python. After that, it gets more advanced, talking about some tools that web-enabled Squeak at the time. The tools have some power, but were bare bones by 2002 standards, when the book was published. This is openly acknowledged in the book, though it anticipates that future versions will develop these technologies further. This is the one prediction that came true in a significant way.
Squeak for the systems programmer talks about the innards of the Squeak system; about how it was designed, and what it's performance metrics were. Then it talks about the VM, the role of bytecodes, the object memory model, its garbage collector, and VM extensions. Though I didn't understand much of this section, it gave me enough to inspire me to learn some implementation details about stack machines/language VMs. So, that's saying something for it.
In Squeak for the toolkit programmer, it talks about Smalltalk libraries for working with forms of math, and working with music. There's an interesting chapter on streaming audio I might want to delve into a bit. It closes with a chapter on eXtreme Programming (XP), the ancestor software development methodology to Agile development.
Squeak for the future has (in my opinion) the best chapter in the book, "Computers and Squeak as Environments for Learning," written by John Steinmetz. He discusses the pedagogical misapplications that are commonly used with computers in education, and then considerations that would cause one to use computers more appropriately. It also raises some great questions re. what's still unknown, but worth finding out.
This is followed by what for me was a rather sad chapter, "The Future of Squeak," because there's a lot of overly optimistic talk about "What Squeak will be doing in the future," which, with the benefit of hindsight, it clearly did not achieve. Not even close. I could see what Dan Shafer was getting at with his optimistic predictions for it, but the Squeak community must've had other considerations get in the way, because almost nothing of what was described was implemented, in the years that followed. I think it was technically achievable, and would've been nice, but was completely out of touch with what most customers, never mind what most software developers were thinking about, or asking for. Not to say that humanity can never see the point of these goals, but it just wasn't thinking about them.