Review of Elegant Objects (books)

The author presents his interpretation of OO which he claims stems from a couple of books listed in the bibliography. He did not do his history lessons, however: throughout the book he criticizes Java, C++ and other OO languages, wishing for a pure OO language where, for example, even "if" statement could be an object. Not knowing that such language already exists -- Smalltalk -- he started working on his own pure OO language. In other words, the author is talking about "true" OO programming without ever having used or studied a true OO language. This already hurts the credibility of the material.

The author claims that his interpretation of OO makes programs more maintainable and performant, but does not realize that he is reiterating the tension between eager and lazy evaluation. Without realizing it, he is proponent of the latter, and is unaware that precisely lazy evaluation is a source of performance problems and excessive memory usage in Haskell, as well as being a big stumbling block for newcomers. It is problematic to the extent that people are experimenting with Haskell dialects where eager evaluation is the default. Even Simon Peyton Jones has said that "the next Haskell will be strict".

Even though the book contains a few sound advices (the chapter on using fakes instead of mocks, "fail fast" philosophy), the overall tone of the book is condescending and gives an impression that the author thinks very high of himself because reading a couple of books on OO lead him to some kind of "revelation". Alas, his (re)interpretations of the books he read seem dubious.

These books are way too expensive and basically a waste of money. I'm sorry I bought them.

Read the complete review (PDF)