始めとは?

本記事は、(株)技術評論社が発行する書籍『新プログラミング環境 C#がわかる+使える』から許可を得て転載したものです。同書籍に関する詳しい情報については、本記事の最後に掲載しています。
まずは、最低限の背景知識を説明しよう。C#とはどのような形で生まれた言語か、そして、ECMAによる標準化やCLI(Common Language Infrastructure)などの言葉の説明も今回で行う。
本連載は、新しいプログラミング言語、C#のプログラミング入門を扱う。C#とは何か、という話題は本連載の本題でもあるので、あとで詳しく説明する。想定する読者は、C#のことは何も知らないが、プログラミングの経験のある方々とする。つまり、C#のことを何も知らない人も歓迎するが、いちいち「変数って何?」というような基本的な説明は行わない。それでも、プログラミング言語によって知識に偏りがあるのは事実なので、もしかしたら、あなたがご存じのプログラミング言語には存在しない用語を使って説明する場合があるかもしれない。少なくとも、Visual
Basicの経験があれば、読み通せる水準を想定している。JavaやC++の知識があるとよいが、必須ではない。
さて、本連載では、C#というプログラミング言語に関して説明するだけでなく、Visual Studio .NET(詳細はあとで説明する)の具体的な操作手順も一部解説に含めている。これは、抽象的な知識に偏ることなく、実際に追体験可能であることを重視したためだ。プログラミング言語の新しい概念などは、すぐに意味が理解できなくても、実際に動かしてみると分かることもある。そのため、具体的な操作方法の説明にも重点を置く。また、最近では統合開発環境が主流になっているため、テキスト・エディタでソース・コードを書いてコマンドラインでコンパイルすることができないプログラマーも多い。これを配慮して、グラフィカルな統合開発環境を前提に解説を進める。
本連載では、主にC#の言語仕様のトピックごとに解説を進める。実際にC#でプログラミングを行う場合は、.NET Framework(後述)に用意された膨大なクラス・ライブラリを活用する必要がある。しかし、クラス・ライブラリはあまりにも膨大であり、C#の解説書の一部に収めるには無理がある。そこで本連載では、C#を理解し最低限活用していくために必要なクラスに限って、そのつど解説を加える構成とする。実際に本格的なプログラムを開発する際には、クラス・ライブラリのリファレンスマニュアルを随時参照していただきたい。
C#は、Microsoftが開発したプログラミング言語である。Microsoftが提唱する .NET構想の中核となるプログラミング言語ということで注目を浴びている。また、ヨーロッパの標準化団体であるECMA
C# Language Specificationとして標準化されている。つまり、C#はMicrosoftの技術として注目を集めていると同時に、国際的な標準としても認知されているのである。
技術的な面から見ると、C#は、C++の一種の進化形であると同時に、Javaの影響を大きく受けている言語といえる。また、Visual BasicやDelphiなど、さまざまな言語の長所を集めた言語ともいうこともできる。
ここで重要なのは、「なぜC#か?」ということだ。なぜなら、プログラミング言語として、すでにC、C++、Java、Visual Basicなどが存在するからだ。これだけプログラミング言語があって、どうして、それに新しい言語を付け加える必要があるのだろうか?
その答えは簡単だ。既存の言語がいくら多くても、すべてに関して満足のいく言語というものは1つもないという、大きな問題があるからだ。Cはすでに時代遅れであり、C++という後継言語が使用されている。C++は、高機能で何でも記述できる自由度があるが、メモリの管理が自動化されていないため、少しのミスでもメモリを使い尽くすプログラムができてしまう。Javaは、メモリの管理が自動化されているのでそのような危険はないのだが、どんな環境でも実行できるという理想ゆえに、どうしても機能が最大公約数的になり、思いどおりの機能を実現するには不向きだ。Visual
Basicは、基本的にデータ型が自動変換される言語であり、これがプログラムの見通しを悪くし、バグの温床になるという構造的な問題を有している。データ型を厳密に適用すればコンパイル時に判明してしまうようなバグが、入り込んでしまう危険がある。
このように、どの言語も、現在のニーズにジャストフィットするプログラミング言語とはいえない。これに対するMicrosoftの結論がC#である。C#はほかのプログラミング言語と比較したときに、以下のような位置付けになる。
もちろん、これらは、ごく大ざっぱな要約にすぎない。言語の相違を論じればそれだけで1冊の本になってしまうので、ここでは深くは触れない。
C#について語る場合は、それと同時に、CLI(Common Language Infrastructure)についても語らなければならない。CLIは一種の実行環境であり、クラス・ライブラリを持つ。C#でプログラムを作成するということは、CLIで実行するプログラムを作成するということとイコールである。CLIは、ECMA-335
Common Language InfrastructureとしてECMAにて標準化されているが、これに則って開発された実行環境の上で、C#で記述されたプログラムが実行されることが主に想定されている。実際にCLI準拠の実行環境はいくつも開発されつつあり、対象はWindowsに限定されない。例えば、FreeBSDやLinux上でも、C#で記述したソース・コードをコンパイルし、実行することも実現可能である。
これに対して、Microsoftが提供する実行環境は .NET Frameworkという。.NET Frameworkは、CLIの機能に加えて、ウィンドウを使用したアプリケーションの作成やWebアプリケーションを実現するASP.NET、さらに、XML
Webサービスを実現する機能なども含まれている。そのため、CLIと .NET Frameworkは等価ではない。つまり、.NET Frameworkで動作するプログラムをC#で記述した場合、それがすべてのCLI環境で動作するわけではない。
また、C#は .NET Frameworkの環境で使用したとき、Win32 APIに直接アクセスする機能を利用できる。これは、当然のことながら、Windows環境でのみ利用可能な機能である。その意味でも、C#で記述されたプログラムがすべてのCLI環境で動作する保証はない。
もし、CLIに含まれる機能だけで記述できるプログラムを作成する場合、CLIの機能だけ参照する形でソースを記述すれば、多くの環境で動作することが期待できる。しかし、CLIに含まれる機能で足りない場合は、環境依存を恐れずソースを書こう。
Studioの最新バージョンといえる。しかし、従来のVisual Studioが主にWindows向けのソフトウェアを開発するツールであったのに対して、Visual
Studio .NETは主に .NET Framework上で実行するソフトウェアを開発するツールであるという点で、大きな方向転換が行われている。その違いをよく理解しておく必要がある。いまのところ違いがはっきりしないかもしれないが、Windowsとの互換性はなくても
.NET Frameworkをサポートした環境が増えてくれば、だれの目にも違いがはっきりと見えてくるだろう。
Studio .NETでは、Visual J++のサポートがなくなり、その代わりに、Visual C#が追加されている(Javaのサポートはなくなるが、Java言語のソース・コードをCLI環境で実行できるプログラムとしてコンパイルする、Visual
J#という追加ソフトがアナウンスされている)。つまり、Visual Studio .NETになったからといって、従来型の言語の開発が不可能になるわけではない。Visual
Studio .NETでは、C#が最新の代表的な言語となるが、例えばBasicプログラマーがそのままVisual Basicを使い続けることも可能である。従来からの言語を使い続けるか、それともC#に乗り換えるかは、あくまで個々の利用者の判断で可能となっている。
しかし、効率のよさや生産性の高さを意識するなら、C#への乗り換えを検討すべきだろう。学習の時間を費やしても、その程度は簡単に回収できるほど、開発効率に差がある。また、C#はカバーする領域も広いので、1つの言語を覚えるだけでさまざまなプログラムに対応できる。C#は、Visual
Basicのように使っても、C++のように使っても、Javaのように使っても、そこそこの実用性を発揮する汎用性の高い便利な言語といえる。
本連載では、このVisual Studio .NETが利用可能であることを前提に説明を進めることとする。
本記事は、(株)技術評論社が発行する書籍『新プログラミング環境 C#がわかる+使える』から許可を得て一部分を転載したものです。
この書籍は、本フォーラムで連載した「C#入門」を大幅に加筆修正し、発行されたものです。連載時はベータ版のVS.NETをベースとしていましたが、書籍ではVS.NET製品版を使ってプログラムの検証などが実施されています。技術評論社、および著者である川俣晶氏のご好意により、書籍の内容を本フォーラムの連載記事として掲載させていただけることになりました。
Google対抗? Microsoft Sync Frameworkの正体 (2007/11/20) 先日、マイクロソフトが発表した同期フレームワークは、.NETアプリケーションに何をもたらすのか? 実装サンプルを通して、その機能と特徴を簡単に紹介
Windows VistaでVB6アプリは本当に使えるのか? (2007/11/9) 「Vista時代もVB6で開発していきたい」、そんな開発者は必見。Vista対応時に起こる問題点、注意すべきポイント、効率的な対応方法とは?
ホワイトペーパー利用者に「Amazonギフト券」を抽選で100名様にプレゼント!――TechTargetジャパン リニューアル・キャンペーン
@ITトップ|Insider.NETフォーラム トップ|会議室|利用規約|プライバシーポリシー|サイトマップ

[ 181] @IT:連載 改訂版 C#入門 第0章 始めに
[引用サイト]  http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_000/cs2_000_01.html



お気に入り



  • track feed
    • seo