File Size: 3412 KB
Print Length: 368 pages
Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
Publisher: Microsoft Press; 1 edition (February 11, 2004)
Publication Date: February 11, 2004
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Not Enabled
Best Sellers Rank: #314,444 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #61 in Kindle Store > Kindle eBooks > Computers & Technology > Networking > Client-Server Systems #186 in Books > Computers & Technology > Networking & Cloud Computing > Data in the Enterprise > Client-Server Systems #326 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > Software Design > Software Development
This is one of the first books in Microsoft Press' new "Microsoft Professional" series and first impressions are that it looks a bit dry. If you're as averse to "pretentiously long words" as I am - headings like "hermeneutics", "anthropomorphism" or "A syncretic Approach" leap off the page as you flick through the slim volume - then you're going to find the book a bit of a struggle("Looks like a great cure for insomnia" as a colleague commented after a quick flick through it) and my initial hopes were not high.However persevere, because it's worth it! Although the language and presentation is almost the polar opposite of one of the "companion" titles in this series ("Extreme Programming Adventures in C#") this has a very high signal to noise ratio (which sadly the other much fatter volume doesn't!). So, don't be put off by the long names and endless footnote references to old ACM papers because what's presented here is a thoughtful and convincing book on the history of object-oriented development, the politics and design errors that have caused the "wrong" thinking to take place and a convincing argument as to why so many of us have got object orientation so wrong. The blurb promises "visionary insight" and if you can get through some of the "academic" language, against all expectations the book delivers on that promise. This ISN'T, as you might expect from a Microsoft Press book, a book of code examples and "silver bullet" handbook for the developer who wants to cut and paste code, for reasons that are well explained in the book.
Review of "Object Thinking" by David WestThis is a very interesting work from Professor West for those that want to explore the philosophical underpinnings of Object Oriented Software Development. Early in the text he relates the Greek philosopher Plato's comments to decomposition, dividing a problem along the natural joints. Although it includes good practical examples the philosophical basis for shifting from the deterministic approach of structured methodology in software development to the new agile techniques he so obviously favors is presented in a quite convincing manner.The book ably serves as a reference to the philosophical basis of thinking regarding programming with copious references notes and sidebars. This also helps improve the readability of the book by reinforcing the rationales offered and providing substance to his claims.Professor West we learn early on is a proponent of agile methodologies and still favors the Class, Responsibility, Collaborator (CRC) cards. There is much to recommend this in the early stages of software design. West also points out to no surprise that Object thinking is truly different and attaining this level of sophistication is not merely a matter of experience with Object Oriented languages.As an example West includes an interesting statement "Eliminating centralized control is one of the hardest lessons to be learned by object developers.". My own experience with Java and J2EE bring to mind the example of Sun Microsystem's Pet Store. The example prominently features several classes which function as Controllers; ScreenFlowManager, ModelManager and ShoppingCartClientController. West prefers the use of Coordinator in that the objects register listeners and coordinate rather than actually control the events.
And I did - but I'm not sure how broad the appeal of a work such as this will be.Readers looking for a 'pure' programming book will be disappointed; readers expecting a theoretical introduction to object-oriented programming will probably find themselves overwhelmed. The other groups of readers for whom I feel saddest will be those where English is their second language and readers predisposed to hostility towards Agile programming methodologies ([...]) - for them, this book will be an exercise in frustration.The language in this book is written at a higher level of vocabulary than is typical - perhaps not atypical of a philosophy textbook (which is much closer to what this book is), but certainly outside the norm for books about programming. And it is because of this emphasis on philosophy that I find myself only able to give the book 3 stars. I loved it - but a lot of people will be put off by Dr. West's vision of titanic struggle between formalist culture and relativist culture, technocrats and managers against geeks and code poets.On an emotional level, I get it. At an intellectual level, I get it. The process he's describing, the methodology he proposes, totally gel with the way I've long thought about my programs. Even when I was writing largely procedural code, I was holding in my head metaphors that made it a lot easier for me to visualize what I was trying to achieve. West believes that by training developers to accept fuzziness and chaos, to embrace uncertainty and relativism, to adopt an almost Zen-like approach to software-by-metaphor, better software will come about.This book is almost a Gnostic text of sorts - to the believer or not-quite-believer actively seeking the message this book tries deliver, it will be a wonder.
Object Thinking (Developer Reference) Positive Thinking: How to Eliminate Negative Thinking and Gain Success, Health and Happiness Through Positive Thinking and Self-empowering Affirmations (Positive Thinking Everyday Book 1) Object Relations Couple Therapy (The Library of Object Relations) Object Relations Individual Therapy (The Library of Object Relations) ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques (Adobe Developer Library) The iOS 5 Developer's Cookbook: Core Concepts and Essential Recipes for iOS Programmers (Developer's Library) The Swift Developer's Cookbook (includes Content Update Program) (Developer's Library) The CORBA Reference Guide: Understanding the Common Object Request Broker Architecture Emotional Intelligence: Master Your Emotions- Raise Your EQ, Critical Thinking and Optimize Your Life (Emotional Intelligence, Critical thinking, EQ) Thinking About You Thinking About Me: Philosophy and strategies to further develop perspective taking and communicative abilities for persons with ... Autism, Hyperlexia, ADHD, PDD-NOS, NVLD Positive Thinking: How to Rewire Your Brain with Positive Thinking and Self-Empowering Affirmations to Finally Achieve Success and Freedom Critical Thinking: Decision Making with Smarter Intuition and Logic! (Critical Thinking, Decision Making, Logic, Intuition) Thinking Through Systems Thinking Thinking German Translation (Thinking Translation) Thinking Spanish Translation: A Course in Translation Method: Spanish to English (Thinking Translation) The Nature of Theoretical Thinking in Nursing: Third Edition (Kim, The Nature of Theoretical Thinking in Nursing) 50 Philosophy Classics: Thinking, Being, Acting, Seeing, Profound Insights and Powerful Thinking from Fifty Key Books (50 Classics) Critical Thinking in Long-Term Care Nursing: Skills to Assess, Analyze and Act (Cohen, Critical Thinking in Long-Term Care Nursing: Skills t) Thinking Critically to Solve Problems: Values and Finite Mathematical Thinking Inside Windows Debugging (Developer Reference)