なぜインターフェイスの接頭子としてIをつけてはならないか

あと.NETの場合だとインターフェースには「I」を先頭に付けるので、実装クラスなのに「I」を付けるのには抵抗が出てきますね。

http://d.hatena.ne.jp/sugimotokazuya/20070519#1179539198

前からC#(というか.NET)の命名規約には違和感があったのだけど、こういう実害を考えるとやはり問題だと考えたほうが良いのだなと。この問題はViewの命名規約をTableの命名規約と分ける場合にも同じことが言えるわけだけど、やはり命名規約は論理的につけるべきで物理的な違いを反映すべきではないのだろう。

大昔、変数の頭にiとかsとか付けるのが業務アプリでは一般的だったが、定義を見れば明らかなものを命名規約で判別する必要はまったくなく、単にわかりづらくタイプ数を増やすだけのようにしか思えない。

いや、もしかすると当時のプログラミングスタイルの問題なのかも。(昔話は知らないのでなんともいえないのだが)グローバル変数が多いとか、型エラーが判別しにくいとかそういう理由があったのかもしれないなぁ。

ともあれ、JavaC#でそのような命名規約は本来ナンセンスということには違いない。