C++/CLI

上の記事を読んで、一瞬VS2005を買うのをやめようかと思った。なにやらあつい口調で語っているけれど、全然凄くない。

C++を.NETの世界に持ち込むなら、マネージ拡張までは自然だと思うのだ。でも、マネージド/アンマネージドの混交さえできるなら、C++使いの発想として当然、C#のusingによるリソース管理の代わりとしてテンプレートでIDisposableをデストラクタで解放するスマートポインタを書くだろうし、というか、何でM$はそういう当然のライブラリを付けないで、今更余計な言語拡張してるの? と思った。

for eachも要らないと思う。boost::lambdaで十分でしょ? それよりboost::lambdaを安心して使い倒せるようにテンプレートの実装をもっとまともにしてくださいな。VC++ 7.1は随分ましになったとはいえ、さぁ。

マネージド/アンマネージド混交を許すのは技術的には凄いとは思うのね。でも、この記事からではそれ以上に凄い部分が見えてこない。マネージドな参照とアンマネージドな参照を区別する記法って本当に必要? .NETオブジェクトをネイティブC++から扱えるのは凄いよ。でもそれさえできれば、敢えてそれ以上言語機能を弄くる必要は無いんでない? 精々が、特殊なスマートポインタじゃ何かまずいの?

ライブラリでできることを言語本体に組み込んでも、今まであんまりいいことは無かったように思うんだけどね。いや、それを突き詰めると全部Lispになっちゃうんだけどね。でも、このままではVC++がだんだんVBになっていく。.NET/CLIを本気で作ってしまったM$の技術力は否定しないけれど、殊この代物に関しては技術力を何か違う方向に使ってしまっている気がしてならない。