.NET FrameWorkとは

.NET FrameWorkとはいったいなにか。
そのことを説明するにはJIT(Just In Time)コンパイルというものを
説明しなければならない。


JITとはなんだろう。


これは、起動時にコンパイルをかけることで、
各マシンの環境に応じた実行ファイルを作成する方式のことである。

.NET FrameWorkとはJITを行う仕組みなのである。

流れを大まかに書くと以下のようになる。


ソースファイル
 ↓
 ↓ Visual Studio 等によるコンパイル
 ↓
中間ファイル
 ↓
 ↓ JITによるコンパイル(.NET FrameWork)
 ↓
実行ファイル


さて、なぜこのように回りくどいやり方をするのだろうか。
普通に考えればソースファイルから実行ファイルを作成したほうがよい。

 ・作成時の手間が省ける
 ・実行時にコンパイルしないため起動が早い

などの利点がすぐに思いつく。

事実、Microsoftは今までこのようなファイルの作り方をしていた。
しかしMicrosoft.NET FrameWorkへと全てを移行しようとしている。


なぜならこの方式には上記の利点をも上回る利点があるからだ。


まず、どのような環境にも対応することが出来る。

.NET FrameWorkに対応した実行ファイルを作成することで、
.NET FrameWorkというプラットフォームがインストールされていれば、
その下の環境は関係ない。
理論上はLinux上でも動かすことは可能なはずだ。


次に、得意なプログラム言語で実行ファイルを作成することができる。


Visual Studioを使用して中間言語を作成することを記述したと思うが、
これは、Visual Studioを使用すればどのような言語も使用できるということである。
つまり、VBVC++、VC#などどの言語を使用しても同じものが作成されるのである。


最後に、少しだけ実行速度が速くなる。


.NET FrameWorkで作成された実行ファイルは環境によって最適化される。
その最適化にはどのCPUを使っているかなどの情報も含まれているため、
全てのPCで最適なコンパイルがなされるのである。
そのため、PCのスペックを最大限に引き出すことができる。


このような利点から、Microsoft.NET FrameWorkへと以降を行っているようだ。
まぁ、その裏にはJavaの存在もあるのだろう。

Javaはいち早くこのような方式を採用している。
そして、Javaはご存知の通り広く普及している。


これからはこのようなマルチプラットフォームに対応した言語が
はやっていくのだろう。

Ajaxが受け入れられているのも個人的にはIT全体の流れに沿ったものだと思う。