C#3.0の脅威

C#3.0の興味深い記事とコードを2つ。

stringをキーとするハッシュテーブルを、C#3.0のLINQ Expressionでランタイムコンパイルして900%高速化してみせる興味深い記事。・・・だったはずが、コメント欄に投稿されたC++のコードのほうがC#よりずっと遅いコードだったため、その後C#C++の速度対決にw
最後はC++が勝つコードを編み出して終わってますが、C#C++が「速度」でガチンコ勝負できるってのが興味深い。勝負になる日がついに来てしまうんですか。コードが見れるけど、よくわからん…。
Expressionは奥深い上級テク領域ですな。マニアックというか、パズルというか。

C#3.0で書かれたレイトレ。たった400行!こちらもコードつき。
LINQなんてSQLプログラミング言語に統合しただけじゃね?とか、LINQを使えばおもしろそうなことができそうだけど、うまく使いこなせないって人は注目。
このコードは心臓に悪いw LINQポリモーフィズムが絡み合うとヤなコードになりますねぇ。

しかし。このレイトレをVirtualPC上のWindowsの.NETで動かしたんだけど、まあまあの速度で動くってのが、現代のPCのパワーってスゴスとか思ったり。ムーアの法則万歳。


どっちのコードを見ても、C#3.0はこれまでのCファミリの王道的で比較的大人しい優等生的な言語だったC#2.0とは、全然違うモノですな。C++Lispに感じるマニアックさを取り込んで、2.0までとは違う言語に変貌をとげたなぁと。礼儀正しい少年だったのに、久しぶりに会ったら舌ピアスして緑の髪の青年になってたような感じw
どっちのコードもさらっと読める人っているんでしょうか?(^^; こういう過激な使い方するグルと、従来の書き方する一般人とに二層化が進むのかね。C++みたいだ。