Comment by gdwatson
7 hours ago
I think the idea is that SmallTalk replaced conditional syntax with methods on booleans. You could call `ifTrue:` on a boolean, passing it a code block; a true boolean would execute the block, and a false boolean would not. (There was also an `ifFalse:` method.)
This feels more like a party trick than anything. But it does represent a deep commitment to founding the whole language on object orientation, even when it seems silly to folks like me.
Linguistically, it meant your control structures looked the same as native language control structures so there was never any dividing line visually between your code and the system.
It also made it really easy to ingest code, and do meta programming.