I can't really put a finger on why, but for some reason runtime reflection in programming languages makes me feel slightly uneasy in the back of my mind. It feels like it's both cheating, but it should also be perfectly natural somehow. But it's neither. But at the same time it's also both. Compile time reflection? Perfectly fine. Makes total sense. Runtime reflection? Weirds me out every time I use it or see it used. Just that tiny little bit.
wanted to write a little rant on how reflection and laziness are very closely linked, but technically dlopen and dlsym together are also a kind of reflection. so, not quite so convinced of my own argument any more