[Cuis-dev] Object Oriented Design & Thinking

Jaromir Matas mail at jaromir.net
Sun Jul 7 08:53:07 PDT 2024


I very much enjoyed Smalltalk, Objects, and Design: Chamond Liu (1996). 
Available as a hardcopy or free PDF.

You could skip outdated chapters (12 and 13) but the rest is great. Nice 
chapters on polymorphism, inheritance. He e.g. discusses whether a 
square should be subclassed from a rectangle or perhaps subclass 
rectangle from a square. Classic :)

best,
Jaromir


On 07-Jul-24 2:51:22 PM, "Ignacio Sniechowski via Cuis-dev" 
<cuis-dev at lists.cuis.st> wrote:

>Hi Cuisers,
>
>Hope you’re all doing well.
>
>I’ve been using Cuis for several years now, and I absolutely love it. 
>To me, it’s the perfect embodiment of how a system should be. The first 
>time I delved into “Design Principles behind Smalltalk” by D. Ingalls, 
>it was a memorable experience. In that article, I discovered an 
>impressive description and roadmap for building systems—especially the 
>concept of Mastery. I find Cuis aligned perfectly with that.
>However, I find the other incarnations of Smalltalk (such as Squeak and 
>Pharo) a bit too complex for my understanding. There are just too many 
>classes, frameworks, and overlapping technologies.
>
>Especially the Mastery principle. I find the other incarnations of 
>Smalltalk (Squeak & Pharo) too complex for me to understand. Too many 
>Classes, too many frameworks, overlapping technologies...
>
>As time went by, I realized that I’m still far from being a decent 
>Smalltalker. I suspect the issue lies in how I approach problem design. 
>Choosing the right objects is challenging. For instance, let’s say I’m 
>planning a “Book” application. My initial design might involve objects 
>like Book, Page, Paragraph, and Image—a kind of hierarchy. But then I 
>get lost when it comes to assigning tasks to specific objects.
>
>While I’m not a professional developer, I heavily rely on programming. 
>Over the past few years, my work in the finance field has led me to use 
>Python extensively (thanks to libraries like pandas, matplotlib, numpy, 
>and yfinance). Python allows me to write rapid code that gets the job 
>done, but it’s not a language I particularly enjoy working with.
>
>Now, let’s circle back to Smalltalk. I’ve hit a wall. I’ve come to the 
>conclusion that it’s my mental framework that needs addressing. 
>Smalltalk isn’t just a language; or an environment and a collection of 
>classes. To truly grasp it, you need to immerse yourself in its 
>philosophy and shift how you think.
>
>I've tried to focus on thinking in objects. But I still have the 
>feeling that I am missing a lot.
>
>Recently, a friend of mine—who considers Smalltalk a brilliant 
>foundational idea despite its limitations (limited libraries and the 
>usual drawbacks)—recommended a few books that “could help.” Here’s the 
>list:
>
>“The Object-Oriented Thought Process” by Matt Weisfeld
>“Object-Oriented Programming” by Brad Cox
>“Object Thinking” by David West
>“A Touch of Class” by Bertrand Meyer
>
>While this list isn’t exhaustive, I’d love to hear your 
>recommendations. Smalltalk is an exciting journey of experimentation 
>and immersion, and I’m thoroughly enjoying it. However, I believe I 
>need a solid background in object-oriented design and implementation.
>
>Any guidance you can provide would be greatly appreciated.
>
>Thanks in advance!
>Nacho
>
>PS: Sorry for the long mail.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20240707/9979a0eb/attachment-0001.htm>


More information about the Cuis-dev mailing list