Skip to content
Paperback Programming on Purpose: Essays on Programming Design Book

ISBN: 0137213743

ISBN13: 9780137213740

Programming on Purpose: Essays on Programming Design

A guided tour of numerous software design methods, this volume collects into book form a variety of articles from P.J. Plauger's monthly column Programming on Purpose which has been entertaining... This description may be from another edition of this product.

Recommended

Format: Paperback

Condition: Acceptable

$7.99
Save $25.00!
List Price $32.99
Almost Gone, Only 3 Left!

Related Subjects

Education Education & Reference

Customer Reviews

3 ratings

Why is software design so hard?

Maybe because, unlike Plauger, most authors tend to advocate for their particular methodologies and do not really teach how to make the best use of the available design techniques. (Well, maybe it is just that way and it will never become easier. That's part of its charm.) There are no silver bullets (that is, no "one-size-fits-all" method) and "we often cannot articulate why we do what we do when we do it." Plauger tries to address this problem not by proposing yet another silver bullet, but discussing useful design principles. Despite some dated examples, Plauger's observations and advice are still relevant. You will find interesting essays on stepwise refinement, the use of grammars to parse input data, and structured design techniques. If you think these are not "hot topics" today, pick this book just to enjoy yourself reading about "software design heresies" (apparently counterintuitive ideas), the authors' curious approach to teaching, or his peculiar comments trying to demystify [and even debunk the hype behind] object-oriented programming (written at a time when object-orientation was something completely new for the standard software developer.) I'm sure you will not regret the time you spend reading this book.

A must have for any professional programmer

Definitely a must have. One thing to keep in mind while reading this book is that it is a collection of essays taken from Plauger's column in Computer Language. Mr. (or should I say Dr since he has his PhD) has an easy and enjoyable reading style. The book's main thrust is collection of design methods each with a specific purpose. These design methods are used at various stages of developement on specific type of problems typically faced by programmers. Thankfully, P.J. also provides an overview chapter of when these various design methods must be used as well as their strengths and weaknesses. This is not an OO methods book. Although P.J. does mention OOP, he is not focused on this subject. However, he does remind us that abstraction, encapsulation, and inheritance existed long before OOT. While this is rather obvious, it is something many of us need reminding. This book convinced me that understanding pre-OOT design methods (i.e. structured analysis, data-structured design) would enable me to better apply OOT. Although Plauger mentions near the end of the book that he is not a text book writer, I sure wish he would reconsider turning this material into a textbook. The essays are really good, but some lack enough detail to be applied strictly from the knowledge imparted in the essay. Plauger also cheerfully reminds us that there is no one-size-fits-all method to solving a problem and that sometimes experience might lead us to do things we previously thought we shouldn't. In the end, software development is still as much an art as it is anything else. Thanks Mr. Plauger for an excellent read.

Simple, powerful ideas

Few books I review get 5 stars. This is one of them. Programming on Purpose is a collection of essays originally written for Computer Language magazine. Although the original publication of this collection was in 1993, the materials in the book date back considerably further. Are Plauger's observations and nuggets of advice still relevant? Absolutely. When you read modern classics like Design Patterns (Gamma, et. al.) you might mistakenly think that such works are revolutionary instead of evolutionary. Going back and reviewing books like this should correct any such misconception. Here's an example: In his discussion "order out of chaos", Plauger writes "When you encounter a situation where data is presented in chaotic order, but must be processed in some definable order, you have a sorting problem. Forget about data structures or structured programming for the time being. Instead, cast the problem in a form that can be handled by known sorting technology, then apply it." In short, Plauger urges you to "see the patterns" in the problem. If books that purport to teach design patterns were so pragmatic and clear they might be more successful! Plauger has many such clear, lucid thoughts, elegantly expressed. Here's another: "My major concern here is the Principle of One Right Place--there should be One Right Place to look for any nontrivial piece of code, and One Right Place to make a likely maintenance change." Of course. Good OO design, indeed any good system design, should support this notion. Yet, how many systems and their designers do not? UML design tools and other wizard-like code generators may produce the superstructure of our programs (under our design and direction, of course), but what goes between those curly braces often, if not always, dictates the final quality of our work. Plauger provides powerful insight into our craft that shouldn't be missed by anyone who codes for quality.
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