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