On Mon, Jan 6, 2020 at 12:26 PM xap <xap@router.33mail.com> wrote:
Hmm, just where are these prof stef Gedankenexperiments :-? I didn't see 'em
in the syntax tutorial proper.

Thx for the tiny-is-beautiful article. I didn't have any moment of satori,
but am happy to have found a prolific author (in addition to
Richard-evangelist)

About not feeling extra-illuminated ... perhaps it comes from my stance that
once one lays down the ground rules that everything is an object, and that
objects inherit, and get work done by doing it themselves or by delegating
it, then, say, much of Boolean's implementation shakes out of that, no?
(that's rhetorical)

For me the value in the pharo Boolean implementation is notsomuch who passes
the buck and who ultimately does what, but the synergy among objects and
methods that get all this done.

(BTW I'll bet the fait accompli synergy we see in today's source didn't
start out that way -- there were likely many prosaic versions along the way
to getting there, if not on paper then in somebody's mind. Often I find that
process MUCH more valuable than the spit-and-polish of a finished product.)

It is often informative to understand *how* a thing came to be, beyond the "Tada! Here it is."


Recursion often has me laugh because it seems "nobody does any work" -- dang
near everything is delegated elsewhere, and it's just a few base cases that
actually do any heavy lifting. I'm being facetious, of course.

To me interconnected object systems are often like that, and multiplied many
times over -- any bit of work is delegated here, there, everywhere ... and
(for me) this federated work disperses logic and makes it less immediately
comprehensible.

This is absolutely true and correct. That's why it's crucial that a message send clearly identify the "what" and the method implementation clearly implement the "how". (And that too is recursive!)

Many years ago, my wife worked for a life insurance company. No one could look at one department and understand the whole algorithm involved in even just the lifecycle of a new policy.

We don't slavishly or dogmatically mimic nature when we design objects, but we do attempt to clearly and cleanly separate responsibilities much as nature does. There are many guidelines, heuristics, and practices we employ to achieve good robust designs. Using analogues to real-world things helps make them familiar and innately understandable.


There's definitely gee-whiz appeal to the synergy of a multitude of objects
in a loosely-coupled system, and IMO that appeal is valuable (which echoes
the ethos of the tiny/beautiful article), but ... anyway, yeah, part of my
reason for this foray into smalltalk is to see how that side lives.

TLDR: the above is just my thinking out loud, possibly for a future-me to
find; i have no questions; pls ignore :-)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html