reviewed by Dan R. Olsen, Jr.
This book brings together the major works in programming by demonstration. The book is in three sections (Systems, Components, Perspectives). The systems section starts with Pygmalion and carries through most of the systems that are familiar to those who have followed this literature over the years. For those who have not been following the programming by demonstration work, this volume is the best collection that I know of. For those who have been following this literature, this book is still worth reading. Although the systems have been described in papers elsewhere, these discussions have better depth and in many sections do a much better job of describing the underlying "how it is done" than the original conference papers were able to do. I also found it quite enlightening to work through these systems in the context of each other. I was impressed, for example, by the extent of the contributions of Ian Witten. He appears as second author on many papers that I was familiar with but when studied together these systems define a unifying approach that is very instructive.
The components section of the book attempts to factor out important facilities. This is an attempt to generalize from the specific systems, those capabilities that can be useful in a broader context. This section is also very good in that some of the major players in this area have expressed ideas and directions that are founded in the existing systems but have focused on what should and can be done rather than what has been done.
The perspectives section is a "vision of what ought to be" by several of the authors. This is more speculative but provides good food for thought to those wanting to work in this area.
An interesting addition is Appendix B which is "A Test Suite for Programming by Demonstration." This collection of example problems should provide fuel for future research efforts in this area.
Even though I have kept current in this literature for about 10 years, I found this volume very instructive and would strongly recommend it for anyone interested in expanding the capabilities of user interfaces.
back to ... Watch What I Do