Behaviorism versus Reflection
https://handbook.selflanguage.org/2017.1/progguid.html#behaviorism-versus-reflection
From the Self docs, but applies to every dynamically typed OO PL I've worked with.
miniblog.
Related Posts
Mid stack inlining in Go: https://go.googlesource.com/proposal/+/master/design/19348-midstack-inlining.md
(Interesting implementation details: the inliner is AST based, how to preserve existing stack reflection APIs, and how to show good tracebacks.)
ArchUnit is really neat way of testing Java, using reflection to enforce code style ('architecture') properties. For example, enforcing that all subclasses of Connection have a name ending with 'Connection':
Nice post on implementing a datastructure like pandas.Series using Smalltalk reflection: