Javaでプログラムを書くとき,クラスにmainメソッドを作り,そこでクラス自身をnewしたりそのメソッドを呼び出したりできるのが,以前からすっごく違和感がある.正直,エントリポイントというかメインルーチンというかそういうのは,クラス定義とは別のところにいてほしい.みんなこんなことは気にならないのだろうか.C言語とかなら,別にオブジェクトも何もないから別に気にならないんだけど.
授業でJavaの練習をしていて,学生たち(おそらくプログラミングの経験自体がほとんどない連中)がオブジェクト生成とメソッド呼び出しに慣れるのにわりと時間がかかるのだが,ここの違和感も原因のひとつではないかと疑っている.確かめるには全然別のカリキュラムを作らなきゃいけないから証明できないとは思うけど.
Androidでアプリを作るときなんかは,あの意味不明なAndroidフレームワークが,ActivityとかServiceとかを生成して呼びだす役をやってくれてるので,そのへんはむしろ気にならない.フレームワークをブラックボックス扱いしてる限りは.