相談フォーム信頼の「飲んだくれマーク」をご確認下さい。初めに言っておくが、あまりまとまって無いです。思ったことをつらつらと書いてみます。私は元々、Javaを好んで使っていた。それは私が大学生の時のことだったので、2006年か、そのあたりだったと思う。その当時メジャーだった言語の中では、Javaは綺麗にオブジェクト指向設計ができる言語だった気がする。標準APIも充実しており、たいていのことは標準APIの範囲で事足りた。就職してからC#を使い、ちょっと戸惑うところがあった。あまりにも高機能すぎるて、オブジェクト指向設計が破たんしてしまうのではないかと思ったのだった。J++→J#→C#の開発の流れで、MicrosoftはP/Invokeやデリゲートの導入を進めたがそれは契約と反するとしてSunと対立し、裁判に負けたのでJava関連の機能を省き、C#を独自実装したという流れがあったように記憶している。その流れの中で、P/Invokeはともかく、「デリゲートはオブジェクト指向言語に不要」という意見があった。SE開発の際にも、「Javaにクロージャは要るかどうか」でずいぶんと議論になった。support?というアンケートがあります。このアンケートには約2,000人が答えており、BGGAとクロージャは必要ないという意見に二分されていることが分かります。pro「オブジェクト指向言語にデリゲートやクロージャやラムダ式は要らない」まあ、これは私もある程度同意する。ピュアなオブジェクト指向設計を考えると不要であるし、オブジェクト指向でないような実装方法もできてしまう。