人気ブログランキング | 話題のタグを見る

.Net Framework

C#のチュートリアルを読んでいたら、このコンパイラが出力するのは機械語のプログラムではなく、.Net Framework 上で動く共通中間言語(CIL)だということがわかった。

C#で作られたプログラムはCILにコンパイルされ、それを、各種のOS上の .Net Framework が実行する。CILに適合していれば、VisualBasic でもC++でもC#でも、.Net Framework を使ったプログラムを作れるわけだ。

したがって、.Net Framework というツールキットのようなものを使うのなら、上のプログラム言語の何を使っても良いことになる。CでGTK+のプログラムを作成しても、Ruby/GTK2 で作成しても、速度の面を除いたら同じようなウィンドウを生成することができるようになるのと一緒だ。

こういう方式の利点は、

1. OSの種類が違っていても、.Net Framework が乗っていれば、コンパイルしたプログラムを使うことができる。
2. データベースのようなアプリケーションにも.Net インターフェースをつけると、C#から直接データベースを操作するプログラムを書くことができる。
3. メモリ管理などの面倒な操作を .Net Framework で肩代わりしてくれるのでプログラムが簡単になる。
4. ネットワークを介した分散処理や、並列処理を実行する機能が .Net Framework で提供されているので詳しい知識がなくてもそれらを使ったプログラムを作ることができる。

Java の機能と被っている気がする。WBでもC++でもC#でも同じものが作れるのなら、覚えることが少なそうなC#はいい選択かもしれない。

C#はオブジェクト指向言語だ。.Net Framework がそうなっているからというより、GUIのプログラムが普及する中でオブジェクト指向のプログラムが当たり前になった。Rubyでプログラムを作った経験があれば、C#は比較的容易に習得できるのではないだろうか。オブジェクト指向プログラムの勉強で一番苦労したのが、オブジェクトでプログラムをつくるということはどういう事かというイメージを持つことだ。

全くプログラムを作ったことのない人が独学でプログラミングを勉強する場合には、C言語またはRuby -> C言語またはRuby -> C++またはC#またはJava -> Javascript の順に勉強して言ったら効率がいいのではないだろうか。あるいは、コマンドラインで動く Javascript はあってもいい気がする。余裕があれば、Scheme も Haskell も知っていると便利だ。
by tnomura9 | 2009-12-29 10:11 | C# | Comments(0)
<< Visual C# Expre... Windows 7 搭載のノー... >>