[Cuis-dev] Object Oriented Design & Thinking

Ignacio Sniechowski 0800nacho at gmail.com
Sun Jul 7 05:51:22 PDT 2024


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/dd889f4f/attachment.htm>


More information about the Cuis-dev mailing list