空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

.NET関係

東京に出て本屋巡り。今週末は.NETとC#について調べるのが目的。詳細な本を読んでいる時間はないので「数時間で読めて,概要が大体つかめる」ことを基準にして選んでみたのが以下の2冊。パッパと選んだ割には両方とも満足のいく内容だった(特に後者)。
Microsoft.NET入門―これだけ知っておけばなんとかなる.NETの基礎知識 (.NETプログラミングシリーズ) C#入門―Microsoftの次世代言語を学ぶ (Ascii books)
僕には「.NET = Microsoft版Java+周辺技術」ということしか分からなかった。C#のほうは「C++Javaからいいとこだけ抽出したよん」という感じ。かなりいい言語だと思う。とくにC++プログラマに対する配慮を見て取ることができ,明日から移行しますと言われても特にストレスは感じなそうなくらいに出来上がっている。また,CLR(共通ランタイム)に依存することから「C#VB.NET,Etc.NETも生成されるコードの効率は同じである」ということも理解した。この点はC系の言語を母国語とする僕には実に物足りないところだろう。なぜならばC/C++を母国語とするアプリケーションプログラマなら誰しも,自分が扱っている言語が一番エラい!(最速でもないし,メンテナンス性が良いわけでもないんだけど…)と思っているはずなので。Basicと肩を並べられるというのはいたく自尊心を傷つけられる話なのであった。
生成物をIntermediate Language; ILのバイナリとして出力し,実行時にJitterが走るという仕組みも興味深い。遠い昔にJavaをやっていた経験上「IL=遅い」というイメージを持っていたけれど,最近はJitterが実行環境のアーキテクチャに最適化されたネイティブコードを吐くおかげで(高々1回目の起動が遅くなる意外は)むしろジェネリックなバイナリで配布しなければならない通常のバイナリよりも高速になる,という話がある。現状ではある条件下で逆転現象が見られる程度で,全体的にはまだまだネイティブコードが圧倒的に強いという認識。ILとJITの技術的な問題点がどうこうという話は要調査としておこう。
敢えて今まで触れてこなかったが,そうはいっても.NET Frameworkの一番の強み/魅力はWebアプリケーションの開発能力であると思う。この点については僕の住んでいる業界の事情を考えると,必要になる日は当分来ないだろうと予想している。