Years ago, someone made a fun proof of concept called Entity that'd allow you to do this with Perl, C, and one more language (I want to say Javascript). The C support involved shelling out to gcc and building an .so file that was then dlopen()'ed... It was quirky, and obviously not production-ready, and then it vanished. But it was an interesting experiment.
I agree with you to a great extent. For my Ruby development I often near live in Pry (a REPL that while nothing like Smalltalk, is at least loosely inspired by it, the same way Ruby in general has elements that are Smalltalk-ish under the hood), and often integrate Pry into the application so I can drop down into a REPL and modify the running system to debug things.
I also often make a point of implementing a "reload" method that will reload the main parts of the codebase into the running image, so I can make bigger changes "outside" and load them without losing current state.
I agree with you to a great extent. For my Ruby development I often near live in Pry (a REPL that while nothing like Smalltalk, is at least loosely inspired by it, the same way Ruby in general has elements that are Smalltalk-ish under the hood), and often integrate Pry into the application so I can drop down into a REPL and modify the running system to debug things.
I also often make a point of implementing a "reload" method that will reload the main parts of the codebase into the running image, so I can make bigger changes "outside" and load them without losing current state.
It makes a great deal of difference.