原文(投稿日:2009/7/17)へのリンク プログラミング言語は、完全な柔軟性をもって開発者が好きなようにいじり回せて、開発者が自分でやったことには責任をもつと信じるべきなのか?それとも悪いコードやメンテナンス性や可読性をさげてしまうような失敗を避けるために、設計時に言語の中に明確な制約を設けるべきなのか? Bruce Eckel氏は、ある種の機能は複雑すぎて、結局のところ、ほとんど使われないと考えている。 実行時のモデルが存在しないC++(コンパイルすると全てネイティブのコードに変換されて、Cとの互換性をもたなければならない)では、テンプレートによるメタプログラミングが現れました。そんな制約があったので、テンプレート・メタプログラミングはとても複雑で、ほとんど誰も、どう扱ってよいかわからなかったのです。 Javaは実行時のモデルを持ち、動的にコードの変更を行う方法すらあります。しかし言