が全ての近未来的な言語の目標だと思う。
動的が必要かどうか…は必要だと思う。ダイナミックライブラリだって動的だし、Firefoxの拡張も動的だから可能である(グローバル変数内の関数を書き換えて実現している)。
#個人的には静的言語のプログラムを拡張する良い方法としてバイナリにソースとコンパイラを埋め込んで拡張の為の上書き構文を用意してシームレスにリコンパイルできればいいと思う。まぁこの方法だと書き込み権限の無い所にあるのは拡張できないし、依存ライブラリの問題もあるけど。
生成と動的をシームレスに扱う場合、生成はジェネリックで無ければならない…はず。でもジェネリックって生成ってより静的な気がする。テンプレート(生成)からジェネリック(静的)を作成できればいいという話か。
言語名 | 動的 | 静的 | 生成 |
Java | △(リフレクション) | ○ | △(ジェネリック) |
C# | △(リフレクション) | ○ | △(ジェネリック) |
C言語 | × | ○ | ○(マクロ) |
C++ | × | ○ | ◎(マクロ+実装共有テンプレート) |
D言語 | × | ○ | ○(実装共有テンプレート) |
Ada | ×? | ○ | ○(非実装共有テンプレート) |
Ruby | ○ | × | × |
Perl | ○ | × | × |
Eiffel | × | ×? | ○ |