俺#

新潟市でIT業を営むおっさんのブログ。

プログラミングMicrosoft .NET Framework 第2版

プログラミングMS .NET FRAMEWORK 第2版 (マイクロソフト公式解説書)

プログラミングMS .NET FRAMEWORK 第2版 (マイクロソフト公式解説書)

ハテナのISBNタグを使ってみるテスト。ではなくて、買ってみた。いわゆるHOW TO本ではない。この本を読んでも何も作れない。これは未だに「ネイティブなC++で困んないから。」とか言い続けている人々(俺)に.NET Frameworkの凄さを知らしめる為の本である!「アセンブリって何よ?」とか「マニフェスト、ウゼー!」とかいう面倒クサがりがちなエンジニア(俺)は是非読むべし!

最初の100ページも読めば「こんな工夫がされてるなら、ちょっと使ってみるか!」と思わせてくれる(かもしれない)。「.NETはパフォーマンスが悪い」とか言ってると、時代遅れなエンジニアだと陰口叩かれるカモ、と思う事必至(かもしれない)。とにかく、この本に加えて好みの言語のHOW TO本が1冊もあれば、.NET時代も全然大丈夫である(これは多分ホント)。

個人的に、生成したオブジェクトに含まれる関数ポインタの初期値が「JITコンパイラのアドレス」になっていて、一度JITを通ってネイティブコードが生成されるとそのポインタは「生成されたネイティブコードのアドレス」に書き換わる、という辺りでビビビッと来てしまった。「ああ、それなら使ってもいいかな?」とね。この感覚を分かち合える人いない?(笑

でも、C++/CLIでネイティブが混ざったコードが簡単に書けちゃう理由はこの辺だよね。中間コードの実行環境としてこの柔軟性は最強かも。ピュアな中間コードで世の中を綺麗にすることは先々まで不可能になっちゃう気もするけど、.NET Frameworkのクラス群を使わせる事に拘らずC++/CLI用のSTLを提供するってのも実にMSらしい。ここでも理想を追い求めるSunと、ちょっとアレだけど現実的なMS、という対比は不変ですな。

俺はさー、「Vista(その頃はロングホーンだったか)ではアプリ用のAPIが全部.NETベースになる。Win32はその上でエミュレートされる。」って話を聞いた時、そんなバカな事はないと思った訳ですよ。.NETなんて所詮中間コードの実行環境というアプリに過ぎないんだから、必ずその下に相当するネイティブなAPIが要るでしょ、.NETでできる事は全部ネイティブで出来るハズでしょ、と。

しかし、仮にJITが今よりkernelに近いレイヤで動くようになれば、そこから上のコードは全部.NETで書けるようになる訳ですな。下手をするとデバイスドライバも大部分が.NETで書けるようになる時代が来るかもしれん訳ですよ。WDMでも既に低レベルなI/Oは抽象化されていて、APIを叩いて制御するんだしねぇ。いずれにしてもMSがVistaで目指したのはそこなんだなと。

まぁ、Vistaでは全〜然間に合っていないし、Webに脅かされつつ今の調子で今後もそこを目指し続ける事が可能なのか知らんけど、.NET FW3.0で追加されたWPFとか見れば地道に進んではいるのかねぇ。将来「ほとんど全部が中間コードになったOS」を見てみたいかと言われたら、それは「Yes」かもな。いずれにしても、そんなふざけた事はMS以外には出来ないでしょ。がむばれMS(笑

...。何の話だっけ?ああ、本だ、本。技術屋ならそんな感じで盛り上がる事ウケアイなので、是非読みましょう(^^;;;