I ran into a similar situation a short while back.  I was introducing someone
to Pharo, and suggested they run through ProfStef.  I was familiar with the
reaction of others to the "Print it" behavior, which evaluates and inserts
the resulting string into the window: It tends to confuse new learners,
because inserting the results creates a syntax error with the following
statements in the ProfStef window.  (This is not a bad thing, per se, as
there are instances where this behavior is useful -- just not in the context
of ProfStef.)

But I am also well aware that the behavior in the Playground window is
different: a "Print it" does *not* insert the result into the window; it
displays it in a morph, which disappears when you click elsewhere.  So I was
curious...  Exactly where does this occur, and why is it different for the
two windows?  And could ProfStef be modified to act more like the
Playground?

Investigating this was very educational...  I was able to track down the
class, method, and code that each was using -- they're quite different! 
Totally different class hierarchies.. enough so that modifying ProfStef is
probably a significant undertaking.  (Which made me reflect on the job done
to make the Playground from GT library objects.  It seems like it must have
been a full rewrite of Workspace.)

I also tried to understand how Pharo Launcher works -- to get an
understanding of how to make a standalone double-clickable application using
Pharo.  It's also very complex internally!  (I'm awed by the skill &
knowledge of those who wrote it & maintain it.  How long until I could do
something similar??)

Pharo *is* a wall of complexity, internally.  I suppose that calls for good
documentation at the outer layers, to minimize the need to browse deeply in
the foundational classes.  I understand why it isn't there yet, and I've
donated some of my free time to helping write/improve documentation for
Pharo (and plan to continue doing so).

Even though parts of Pharo are complex, it's still intriguing as a
development environment.  I tell myself that these more complex parts are
like "being able to look into the guts of a C/C++ compiler while writing an
application in those languages" -- it would likely be just as daunting.  But
you can't (easily, anyway); you can only use the "surface parts" and the
rest "is black magic".  Pharo is cool because you can open it up and peel
back layer after layer to "see how it does it" -- and even modify how it
does it.  There's nothing like that!  So, of course there will be many parts
that "make my brain hurt".  I like it anyway...



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply via email to