リフレクション
プログラムが実行時に自分自身の構造を調べ、操作する能力。クラスの一覧取得、フィールドの取得、文字列名によるメソッド呼び出しなどができる。
Java/.NET エコシステムの中核(Spring、Jackson、ORM、モックライブラリ)。Python では getattr/setattr と inspect が相当する。静的コンパイル言語では機能が乏しいかまったくなく、Rust には std::any::Any くらいしかなく、Go の reflect は扱いにくく遅い。
トレードオフとして、強力だがコンパイル時の安全性を損ない、ツリーシェイキングを難しくし、AOT コンパイラ(GraalVM、iOS)の妨げになる。最近の傾向は、可能な限りコード生成(Rust の serde、Java の record、Go のジェネリクス)で置き換えることだ。