インスペクター自身を解析する

ここで、興味深い実験をしてみます。次のコードを断片を挿入して、

def ex_Inspector():
target = JTextArea() # Here goes! (@.@)
target = InspectorPanel(target) # What happens? (?_?)

再実行すると、次のようなインスペクターが現われます。ここで、何が起こっているか分かりますか。


実は、インスペクターを使って「インスペクター自身」を確認しているのです。試しに、リスト項目から helpView を選択すると とあることから、それが Java で記述された TextArea インスタンスだと分かります。これは、定義したばかりのクラス InspectorPanel のメンバー特性のひとつに他なりません。
《Tips》読者のみなさんはすでに「アプリケーション開発/ツール作成」を混乱している自分に気付いているかもしれません。しかし、そのシームレスな感覚こそが「オブジェクト指向」の醍醐味です。真の統合開発環境のもとでは「プログラミング言語/開発環境」は、コインの裏表に似て区別する必要はありません。どちらもアプリケーション開発に最適な形に進化しますが、それを促進するのがプログラマーの役割です。逆に、これらが進化しないとしたら、それはプログラマーの怠慢の証とも言えます。□