Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Smalltalk-80: bits of history, words of advice
Krasner G. (ed), Addison-Wesley Longman Publishing Co, Inc., Boston, MA, 1983. 344 pp. Type: Book (9780201116694)
Date Reviewed: Jul 1 1985

This is the second in a four-book series about Smalltalk. The series is a systematic introduction and reference to the Smalltalk-80 environment, ranging from the programming language and objectives [1], to system application and use [2, 3]. However, this book is specialized: it is a loose anthology of papers, giving detailed information about nearly a dozen Smalltalk implementation strategies, and sharing lessons learned by Smalltalk implementors.

The book has a restricted audience; to understand why it was written, and to discuss its strengths and weaknesses, some background about Smalltalk is important:

  • Smalltalk is an attempt to model a clear but revoluntary vision of how future human/computer interaction should occur. Although the implementation of this vision is technically interesting--using an object-based message passing syntax and semantics--development did not seek theoretical novelty per se, but practical interactive capability.

  • Smalltalk manifests the cohesion and singleness of purpose found only in close-knit development teams. It was built by professionals, effectively outside the mainstream of either the academic or commercial world. The design was not shaped by the prejudices of thesis advisers, grant review boards, or venture capitalists. These attributes are curiously shaed with UNIX.

  • Experimental Smalltalk versions were not judged by cost per user, but by their iterative closeness to an underlying vision of personal computing unctionality. This approach yielded a decade of unmarketable technology--far too expensive--but it set standards for today’s interactive systems. It pioneered or helped prove such important concepts as overlapping and pop-up windows, icons, scroll bars, the mouse, unified text/graphics management, and the object programming model itself.

After the basic interative vision was reduced to practice, Xerox made an unusual decision: to publicize Smalltalk research, and to collaborate with other organizations in its assessment and use. This was a bold undertaking. Such sharing occurs between universities, and in other countries; but not between American vendors, and not with large, mature systems like Smalltalk. During 1980-81, several outsiders were invited to recreate the Smalltalk virtual machine on their own hardware, onto which the bulk of the self-defining Smalltalk system was then ported. Building and debugging the virtual machine, based on detailed specifications, typically required several months of thoughtful programming.

The book summarizes this dissemination process, and results from a suggestion, as stated in the Preface, “that all the implementors submit papers describing their experiences.” It contains four groups of papers: background on Smalltalk development and distribution; technical details and comments from implementors; measurements and analyses of their implementations; and related proposals for new Smalltalk development. This anthology is valuable in light of Smalltalk’s unusual history, and it makes interesting reading; but, as a book, it is somewhat flawed.

The best thing about the book is this: it gives objective reactions to Smalltalk from people outside the Smalltalk world. This is important given the system’s cloistered development. One paper express disappointment with the project (“The Smalltalk-80 Implementation at Hewlett-Packard,” pp. 49–112); every other reaction is enthusiastic. An unhappy implementor makes the book more plausible; the accolades from most participants vindicate the overall Smalltalk approach.

Many implementation strategies are presented; discussions include technical designs, as well as comments, regrets, and insights about the development process itself. The latter helps make up for the lack of Smalltalk folklore available outside Xerox. The book is thus essential for people building a Smalltalk system, for people designing related object-based environments, and for people interested in the sociology of large system development. Smalltalk implementation techniques might also be of interest to designers of graphics workstations, database systems, applicative systems, compilers, and interpreted or extensible languages.

The reader is left with a sense of what it was like to work “on Smalltalk Island”: the project was exciting, infectious, and quasi-religious. The many personal comments and amusing cartoons do not detract from the material. On the contrary, they abate disappointment with the book, by making us a part of the Smalltalk adept: to understand the cartoons, one must understand the issues they illustrate.

This book can be compared to the well-known Unix issue of the Bell System Technical JournalThis book can be compared to the well-known Unix issue of the [4]: it is a group of related but uncoordinated papers, organized in an accessible forum. Its existence as a book can be justified by its logical presence in the Smalltalk-80 Series, and by the paucity of other available Smalltalk literature; but the individual papers could easily have been published in a special journal issue, or as appendices to a more structured presentation. As it stands, the book will appeal only to the limited audiences outlined above. Many will buy this book to learn about the history of Smalltalk designs and decisions, and will be disappointed.

Worse, the book does not live up to the standards set by the rest of the series, presumably because the various implementors had to write their papers independently. Some are excellent; some are obscure; most are anecdotal. The resulting book is disjoint. This is compounded by numerous errors of punctuation, grammars, and typography, which mar an otherwise attractive production.

Both good and bad things may thus be said about the book. Your ontological biases will determine whether you enjoy or hate it: if object programming and its implementation are of interest--if you have experienced the Smalltalk revelation--then the book will be interesting; but, if you equate Smalltalk Classes with C type declarations, and Smalltalk Methods with callable functions, then you will probably find the book irrelevant and abstruse. Either way it should be viewed as a technical appendix to the Smalltalk-80 series, and cannot stand alone.

Reviewer:  T. R. Hanson Review #: CR125430
1) Goldberg, A.; and Robson, D.Smalltalk-80: the language and its implementation, Addison-Wesley, Reading, MA, 1983. See <CR> Rev. 8501-0004.
2) Goldberg, A.Smalltalk-80: the interactive programming environment, Addison-Wesley, Reading, MA, 1983.
3) G0ldberg, A.Smalltalk-80: creating a user interface and graphical applications, Addison-Wesley, Reading, MA 1983.
4) Schindler, G. Jr. (d.) The Bell System Technical Journal 57, 6, Part 2 (July-Aug. 1978).
Bookmark and Share
 
Smalltalk-80 (D.3.2 ... )
 
 
Software (K.2 ... )
 
 
Language Classifications (D.3.2 )
 
 
Programming Environments (D.2.6 )
 
 
General (A.0 )
 
Would you recommend this review?
yes
no
Other reviews under "Smalltalk-80": Date
Smalltalk-80: the language and its implementation
Goldberg A., Robson D., Addison-Wesley Longman Publishing Co, Inc., Boston, MA, 1983.  714, Type: Book (9780201113716)
Jan 1 1985
Smalltalk-80: bits of history, words of advice
Krasner G. (ed), Addison-Wesley Longman Publishing Co, Inc., Boston, MA, 1983.  344, Type: Book (9780201116694), Reviews: (1 of 2)
Jan 1 1985

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy