どこが良いのC#

昨日の続き。Javaと比較するとdelegateやstruct、anonymous methodにgenericsのランタイムサポートなどがありますが、機能面でのアドバンテージよりも、そこそこのコストで大抵のことが出来るバランスの良さが好ましいです。機能だけを問題にするのなら、Managed C++の方が更に出来ることの範囲が広いですよね。(使いにくさは比じゃありませんが)

unsafeは嫌われることも多く、Javaに比べて不純だとか、そんなことするくらいならManaged C++を使えとか言われることもありますが、Win32APIをちょっと叩くためだけにC#の生産性を捨てるなんてこと出来ません。

っと言うわけで、C++で組むのには疲れたがネイティブな世界とは縁を切れない、そんな位置にいる私にはぴったりでした。


ところで言語の好みだけで言ったらPythonが好きなので、BooとかIronPythonに走りそーなものなんですが、BooはPythonライクな文法で.NETのクラスが作れて魅力的だけど未完成な部分が多く、IronPythonはライブラリを作る言語ではなく、ライブラリを結びつけるグルー言語的な位置づけ(.NETなクラスが作成出来ない)というところがネックです。

あと日記に良く登場するNemerleは、何でも出来る機能ぶち込み型なのでC++のようなキッチンシンクアプローチを想像してマイナスの印象を抱くかもしれないし、実際問題そーなんですが、便利なんで使ってしまうんですよね。(笑)