A classic in software development.
I read this at the start of my career in software (I had been dabbling in the stuff since childhood, which comes out to roughly ten years). The "real work" of software development - I started in localization, a form of maintenance, before moving on to writing fresh bugs, I mean programs - turned out to be almost, but not quite, entirely unlike the rather more rigorous process described by Meyer. In large part this discrepancy, which I did not initially perceive as a problem or as something requiring correction, explains my later enthusiasm for the discipline of Extreme Programming; I had been exposed to a sound conception of the real issues in software development (as opposed to interesting, but much more abstract, much more idealized and therefore easily dismissed viewpoints such as Knuth's "literate programming") as well as to the more dismal realities of the field. The pragmatic, antiformalist XP bridged the remaining gap quite nicely.
Rereading the second edition ten years later, and despite having become a convert to the minimalistic limpidity of Smalltalk in the meantime, I still found quite a lot of value to be taken from Meyer's cutely bashful (or bashfully cute) introduction to the design rationales behind the Eiffel language. -- lb
Meyer's content is great, I like the almost aphoristic nature of much of it. He writes lucidly, and with a degree of charm and humour. Not only that, but it is a joy to come across someone, anyone, who has cogent reasons for strongly held opinions and states them both clearly. But don't you find the book itself a distraction and an irritation? Whomever at Prentice-Hall ok'd using blue tints for highlighting should be sacked, along with whomever at their printers allowed copies like mine to go out with the blue mis-registered and badly spaced relative to the black text. --KeithBraithwaite
I also found the layout and colors of the text irritating, but the content more than makes up for it. I still need to finish the second half of the book, but the first 500 pages are excellent. --DaveHoover
I enjoyed it, but often found myself wanting to thwack him with a cluestick. The blue seldom bothered me; I think it's quite an effective way to distinguish between formal and informal content. In my copy, serious misregistrations are fairly infrequent. The exposition of design-by-contract is very good. The chapter on concurrence is very good (though his ingenious use of preconditions as wait conditions scares me, in view of the admitted fact that many preconditions aren't automatically checkable and therefore can't be transformed into wait conditions...). There are a lot of very neat ideas in Eiffel. But, dammit, couldn't the man admit occasionally to uncertainty about something? At least, let's say, when he's demonstrably wrong? His apologia for covariant return types, for instance, is particularly absurd. -- GarethMcCaughan
Hmm, I'll have to read that apologia again. I seem to remember being quite impressed by it. --KeithBraithwaite