[Cuis-dev] Object Oriented Design & Thinking

Ezequiel Birman ebirman77 at gmail.com
Mon Jul 8 12:42:48 PDT 2024


>
> 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.
>

You don't seem particularly indecent to me; most people would get lost when
approaching a problem so abstractly. A book application for whom? A reader?
An author? A typesetter? A publisher? A bookstore? Your proposed hierarchy
seems to suggest that it is a typesetting system in the same domain as TeX.
Even though Cuis' Morphic already solved *some* of the hardest low-level
problems, the remaining tasks for an implementer aren't easy.

I think I am less experienced than you. What I often find about more
experienced programmers is that they are better at recognizing problems,
justifying decisions, and explaining them to others. So, more than a
particular book, what I believe helped me the most (and most quickly) was
attending the courses taught by Máximo Prieto and Hernán Wilkinson. TDD
helps *a lot *too; it doesn't make my designs necessarily better but eases
my anxiety when confronted with options.

The object model suggests idiosyncratic solutions to problems that in other
models are solved differently, or in some cases ignored because they cannot
even allow to conceive the problem. I like the books mentioned by Ken
(Wirfs-Brock, Valloud) and West's Object Thinking. I also encourage you to
take a look at the bibliography page
<https://www.isw2.com.ar/bibliografia-1/> on the website for the course
Ingeniería de Software 1, FCEyN, UBA.

HTH.

-- 
Eze


On Sun, 7 Jul 2024 at 13:52, 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.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20240708/21e351b2/attachment.htm>


More information about the Cuis-dev mailing list