Skip to content
Paperback Object Oriented Software Construction Book

ISBN: 0136290310

ISBN13: 9780136290315

Object Oriented Software Construction

Select Format

Select Condition ThriftBooks Help Icon

Recommended

Format: Paperback

Condition: Good

$8.39
Almost Gone, Only 1 Left!

Book Overview

This text is concerned with object-oriented software construction.

Customer Reviews

5 ratings

highly recommended as a first introduction to OOP

When writing a treatise on computer programming one has to strike a balance between providing a book that is both useful (which usually means writing within the context of a compilable programming language), but general enough so as not to oversimplify or truncate parts of the theory because it is not represented by the chosen language. In OOSC2 Meyer does just this, by providing a sound and general introduction to object-oriented programming, while using the Eiffel language for purposes of notation and practical programming examples. Meyer has a very engaging writing style: very clear, with lots of good (and humorous : ) examples. And the Eiffel language itself seems quite simple, readable (it was obviously influenced by ADA) and brilliantly designed (think of Java, but with multiple inheritance, generics, and without the run-time inefficiency of the java virtual machine). But whether you program in Eiffel, Java, C#, or C++, OOPSC2 has alot to offer in terms of OO software design, and a good understanding of the issues behind inheritance, polymorphism, the importance of static typing, and dynamic binding. For example, I program in C++, and this book has helped me clearly understand the object-oriented features of the language, because in clearly explaining the principles, it helped me understand the intentions of the C++ language designers. May be my only complaint, at perhaps half a star, is the fact that Meyer often weighs in heavily against other languages for their shortcomings, while going easy on his own Eiffel language. For example, he failed to give an objective analysis regarding the run-time costs of garbage collection. Indeed, the chapter on garbage collection seemed more of handwaving defense of the fact that Eiffel uses this technology. A presentation of run-time empirical studies for various applications would have been much more welcomed. However I believe that the benefits of this book far outweigh the occasional partisanship shown towards Eiffel. I truely believe that Meyer favors Eiffel because he believes in it more on the basis of principle than on profit (he does own a software company that supports Eiffel development tools).

A great book for open minds

Some of the previous reviews have lamented the fact that the book is Eiffel oriented instead of focusing on C++ or Java (or Python, or ...). It is important to remember that Eiffel was developed to support the method, and not the other way around. Meyer didn't set out to write a book about how to do O-O using a particular implementation language (many of which had O-O tacked on), but to write a book about how to do O-O (not withstanding language limitations). Indeed, some of the ideas expressed in the book aren't even currently supported in Eiffel (and in most of those cases, in any language yet).Eiffel was developed to support the method, and the fact that it happens to also be compilable is a bonus. It also addresses some very practical concerns, such as software should be self-documenting (humans/programmers don't like to document, or it will diverge from reality over time). Javadoc comments are a similar idea.I went into this book initially as a strong java/c++ advocate, and was also dismayed that the book didn't center around these languages. But, I had my eyes opened (even though I thought they were already open at the time), and realized that java/C++ (et al.) just weren't up to the task. Design-by-contract is an idea who all by itself is worth it, and many other languages would do well to seriously consider the idea.Also, some people have complained that Meyer is very opinionated and one-sided. This may be somewhat true, however he does not ask you to take any of it on faith. He meticulously justifies everything (there's a reason the book is 1200+ pages), including frequently presenting the arguments in the other direction. You may not agree with everything, but you can't say that he ever gave "because I said so" as the reason. And, at least in my case, if you actually give them serious consideration, even the most adverse (to your current way of thinking) ideas/arguements start to make sense (garbage collection, for example, is one of these ideas that C++ programmers tend to be particularly against).This book is a serious challenge to the "set in your ways" mindset which *many* programmers/analysts suffer from, and those who can actually transend that stand to benefit greatly from reading it, *even if* they continue to use C++/java or whatever. The ideas are O-O specific, not language specific, though some are more or less easy to implement in various languages. The book contains chapters on how to apply the ideas in various languages.For those who would actually like to give Eiffel a try as well, several compilers for nearly every platform (Linux, BeOS, Windows, PalmOS target, and so on) can be obtained for free or very little cost, from several vendors and the open source community.

An Explanation of OOP that is both Broad and Deep

This is a comprehensive explanation of Object Oriented Programming principles. It is complete in breadth, thorough in depth, well-organized and well-written. It requires discipline on the part of the reader to stick with it for 1000+ pages, but it is not such a chore as it first may seem and the payoff is worth the effort. No programmer would regret this read.Other reviewers have mentioned that Meyer was unable to separate OO principles from the Eiffel language used as the book's notation. I disagree with that analysis, though perhaps he went further into describing the notation than was necessary to make the basic point in a few instances. As a reader, I was never left in confusion about which points were conceptual and which were notational.I also appreciate the fact that this book was NOT written using a more popular language. The above criticism would have been more true but less noticed if he had. A more familiar langauge would have distracted readers from the real topic. It is useful to learn about priciples that are not directly supported in C++ or Java. Such a presentation helps you more effectively apply the features of the language that you are using and the other features can often be simulated when it seems useful to do so.

best book on computing I've *ever* read, a masterpiece

What an incredibly brilliant book! I'm afraid my words here cannot possibly convey the genius of this work. If you've ever wondered why most software is late, over budget, full of bugs, full of security holes, difficult to understand and use, and even harder to maintain, this book will explain why. Even more importantly, it shows a way out, a way beyond the current mess.If everyone involved in producing software (including managers) read this book, the world of computing would be transformed. Do yourself and your career a favour and read it cover to cover, frequently.

Read it again

The greatest achievement of this book is to show you, the reader, how easy, straightforward and appealing the OO technology is... once you have overcome the natural reaction of thinking it is "obvious".Hence my advice is to read it once, put it aside, and re-read it again.Learning OO efficiently means forgetting what you know (or think you know) about OO and trying to follow the Author's idea, and how his views on software engineering interact. You don't have to agree with the Author right away to learn from him.Of course, not everyone can use Eiffel. But only the concepts matter, not their actual implementation. And if you think this book's leitmotiv is "Look how Eiffel is the purest language that embodies all the necessary concepts" (how convenient!), then recall that Eiffel indeed started as a notation and only evolved towards an implementation after the fundamental concepts were layed down. Therefore, no wonder Eiffel seems a natural fit!The audience for this book is any experienced (5 years or more) software engineer, or software architects, whith an experience in designing complex systems and making them evolve over time. Some technical background is required though, otherwise you may only see things superficially and miss the underlying gems.Remember that OO is not a static technology, so to speak. Its natural support for encapsulation and evolution is what makes it an ideal technology in today's modern software management.Read this book again!
Copyright © 2023 Thriftbooks.com Terms of Use | Privacy Policy | Do Not Sell/Share My Personal Information | Cookie Policy | Cookie Preferences | Accessibility Statement
ThriftBooks® and the ThriftBooks® logo are registered trademarks of Thrift Books Global, LLC
GoDaddy Verified and Secured