Switzer wrote this short introduction to the Eiffel programming language for people who need to learn Eiffel and are already familiar with another procedural language such as Pascal, Modula-2, or C. The book presents common idioms of object-oriented programming as matters of fact, without the usual pompous advertisement of their virtue. Unlike Meyer [1], the book covers the most up-to-date version of the language, and in fact at times relies on services provided by the Eiffel/S implementation. Unlike Meyer [2], it is eminently readable for those who wish to learn Eiffel as programmers rather than as compiler writers or language theorists.
Topics covered are the binding of objects to names, control flow, procedures and functions, classes, assertions, inheritance, and generic (parameterized) classes. A short chapter covers class libraries, and two chapters contain complete example programs. The first example program is a simple database application that catalogs books in a library. The second is an equally simple digital circuit simulation. The examples are nice but hardly “substantial,” as the book cover advertises.
The book does an excellent job of introducing the main concepts of Eiffel programming. The sample code is well selected and not at all artificial. (The only exception involves classes A, B, C, and D, to illustrate ambiguity in multiple inheritance, but it is difficult to give realistic examples for this situation.) One major Eiffel feature that has been purposefully omitted from the discussion is classes with value semantics (expanded classes). Object-oriented design is not covered--it is beyond the intended scope of the book.
The typography is atrocious. The book was obviously composed in \LaTeX, with the unpleasant Computer Modern fonts, and has plenty of layout problems that a skilled typesetter should have fixed. Most unfortunately, all computer programs, as well as their comments and rules for visual separation of functions, have been set in a typewriter font. Even Meyer [1], itself a typographer’s nightmare, does better than that. The index is minimal.
Of the currently popular object-oriented programming languages, Eiffel stands out as cleanly designed and powerful. This book is the first to make Eiffel accessible to a broad audience of programmers who require a rapid introduction to the language. I recommend it highly to students and professional programmers who need to use Eiffel. C++ programmers too will enjoy seeing object-oriented programming constructs in a fresh and cleaner light. For an introduction to the methodology of object-oriented programming, Meyer [1] is still an excellent choice, while Meyer [2] remains the definitive reference on the Eiffel language.