It’s called bottom up programming, the foundation of which is small composeable methods.
This is of course the most important lesson to take from Lisp and its Lispy friend Smalltalk, and in this recent posting, Ramon Leon discusses the relationship between the Smalltalk code/method browsers and bottom up programming. I have no doubt, as Leon suggests, that this type of code browsing IDE encourages and perhaps even demands bottom up programming. However, just as I’ve wondered about this same topic with regards to Lisp and slime, I still maintain that bottom up programming has less to do with the tools than the language itself. Though I’ll assume this to be true and the discussion of why this is the case is beyond me and would take many reams of paper, I’ll state without proof that bottom up programming only emerges from languages with super consistent syntax and semantics.
Now on to the “Opiniated” nature of the Smalltalk browser. Leon, I think, shows how the browser really does facilitate better code, but I do not think that this type of environment is a precondition for bottom up programming. On the contrary, the Smalltalk code browser is best appreciated and used after one understands the benefits of bottom up programming. So I think that presenting new users accustomed to more ‘traditional’ IDEs with the Smalltalk browser is a mistake. Instead, provide them with a very simple text editor (something slightly more sophisticated than the workbench), while encouraging them to check out the class browser at a later date. If we were writing a tutorial, maybe we’d do a simple example in the text editor first, and rework this example in the later chapter on the code browser. Ultimately, they’ll appreciate the code-reading-browsing IDE and bottom up programming all the more, and this may reduce some of the initial ‘what the hell is this?’ experience when starting in with Squeak.