C#について

 C#は.NETにおける位置づけがポイントとなること,言語の特徴があまりにもシステムプログラムに近くてわかりにくいという理由から,C#の背景を先に解説しました.

 C#は単に言語仕様の拡張というだけに留まらず,.NETを具体化する開発作業の主要な言語として,C++言語仕様および過去のソフトウェア資産をCOM+,ATL+,XMLなどと統合し,データベースからインターネットまで統括して開発するための中心になります.

 C言語が高級アセンブラと呼ばれたように,またUNIXを記述するのに使われてきたように,アセンブリ言語に変わってCがシステムプログラムを記述するために使われてきました.アセンブラの需要がまったくなくなったわけではないものの,C言語,そして現在ではC++言語によって記述される例が多くなっています.

 C/C++言語の特徴は,やはり実行プログラムのコンパクトさと実行速度,ROM化システムからネットワークまで幅広くシステムプログラムの部分が記述できるという記述性の高さ,そしてANSIなどで標準が定められているためソースレベルでの再利用がしやすいという点にあります.

 C#は,C/C++言語以上に抽象化を進め,よりシステムに依存しにくくし,移植性を高めています.また,ソースレベルの移植性だけでなく,異なるプラットホーム上で実行オブジェクトを動作させることを前提にした設計がなされています.

● Visual StudioにおけるC#
 Visual Studio 7.0の詳細はまだ発表されていませんが,一端は公開され始めています.それがVisual FoxProの統合であり,C#の採用です.これらのことは,今後のマイクロソフトをはじめとした開発言語ベンダの対応,そして多くのアプリケーションメーカーに大きな影響を与えるでしょう.

 前述したように,Visual Studio 7.0で搭載されるのはC#だけではありません.ASP+,Visual Basic with ATL+などはまだ詳細が発表されていませんが,ドキュメントを読むと,現在のn層クライアント/サーバの構築に見られる各層の言語非統一性注2 を解消するための第一歩といえるのではないかと思います.

 言語を統一するといっても,C++でDHTMLのような処理を行うということではありません.HTMLやDHTMLのバックグラウンドで動作させるサーバサイドスクリプトやサーバサイドコンポーネントの記述を,層ごとにそれぞれ違う言語で書くのではなく,すべての層のオブジェクトをC#でプログラムし,広い範囲にわたって再利用が可能な記述を効率よく行おうということです.

 実際,現在のC#言語仕様書にみられるサンプルの記述は,C言語に慣れ親しんだユーザーにとってはJavaにしか見えない(Java自身がC++と同じような表記なのでしかたのないことだが)でしょうし,C++が発表された初期の頃にOOPを学んだ人にとっては,C#がC++そのものに見えることでしょう.それほど両者は近い存在です.


注2:クライアントではJavaやHTMLを使い,中間コンポーネントにはASPやVisual Basic,さらにサービスコンポーネントではC++を使うといったように複数の言語を使った開発のこと.

▲ C#とXML
 XMLは,Visual Studio 6.0ではVisual InterDev 6.0を使用し,スクリプトとしてASPコードなどで利用します.デバッグはしやすいのですが,COM/COM+オブジェクトと比べるとサーバの負荷が大きく,ネイティブなコードに比べて速度などでは一歩譲ってしまうことになります.また,スクリプト型のXMLでは,ソースそのものの配布ということになるのでセキュリティ問題や著作権問題などが起こります.COM+など認証システムを有しているオブジェクトに対しても安全性の保証がなくなる可能性があります.

 C#は,従来のプログラミングを継承し,XMLの統合などによってオブジェクトの再利用やライブラリ化,コードのセキュリティの向上に役立つようです.


Copyright 2000 広畑 由紀夫

コラム目次
New

Engineering Life in Silicon Valley 第79回 フリー・エンジニアという仕事(第一部)
移り気な情報工学 第36回 時代間通信アーキテクチャ
フリーソフトウェア徹底活用講座 第14回 GCC2.95から追加変更のあったオプションの補足と検証(その3)

Back Number

フリーソフトウェア徹底活用講座
第13回 続々・GCC2.95から追加変更のあったオプションの補足と検証
第12回 続・GCC2.95から追加変更のあったオプションの補足と検証
第11回 GCC2.95から追加変更のあったオプションの補足と検証
第10回 続・C99規格についての説明と検証
第9回 C99規格についての説明と検証
第8回 C言語におけるGCCの拡張機能(3)
第7回 C言語におけるGCCの拡張機能(2)
第6回 GCCのインストールとC言語におけるGCCの拡張機能
第5回 続・C言語をコンパイルする際に指定するオプション
第4回 C言語をコンパイルする際に指定するオプション
第3回 GCCのC言語最適化以外のオプション
第2回 GCCの最適化オプション ――Cとアセンブラの比較
第1回 GCCの最適化オプション

移り気な情報工学
第36回 ITもの作りの原点
第35回 ビットの化石
第34回 ユビキタスなエネルギー
第33回 ロゼッタストーンとWWW
第32回 情報家電のリテラシー
第31回 草の根グリッドの心理学
第30回 自分自身を語るオブジェクト指向「物」
第29回 電子キットから始まるエレクトロニクス
第28回 映画に見る,できそうでできないIT
第27回 ITも歴史を学ぶ時代
第26回 1テラバイトで作る完全なる記憶
第25回 日本はそんなにIT環境の悪い国なのか
第24回 10年後にも生きている技術の法則
第23回 ITなギズモ
第22回 ブロードバンドネットワークに関する三つの質問

Engineering Life in Silicon Valley
第78回 インドに流れ出るシリコンバレーエンジニアの仕事
第77回 エンジニア達の健康管理・健康への努力(第二部)
第76回 エンジニア達の健康管理・なぜエンジニア達は太る?(第一部)
第75回 ユーザーインターフェースのスペシャリスト(第二部)
第74回 ユーザーインターフェースのスペシャリスト(第一部)
第73回 放浪の旅を経てエンジニアに……
第72回 凄腕女性エンジニアリングマネージャ(第二部)
第71回 凄腕女性エンジニアリングマネージャ(第一部)
第70回 ビジネススキルを修行しながらエンジニアを続ける
第69回 専門分野の第一線で活躍するエンジニア
第68回 シリコンバレーに夫婦で出向(第二部)
第67回 シリコンバレーに夫婦で出向(第一部)
第66回 目に見えないシリコンバレーの成功要因
第65回 起業・独立のステップ
第64回 インターネットバブルの前と後の比較
第63回 日本でシリコンバレースタートアップを体験する(第四部)
第62回 日本でシリコンバレースタートアップを体験する(第三部)
第61回 日本でシリコンバレースタートアップを体験する(第二部)
第60回 日本でシリコンバレースタートアップを体験する(第一部)

フジワラヒロタツの現場検証
第72回 現場検証,最後の挨拶
第71回 マイブーム
第70回 OSぼやき放談
第69回 技術者生存戦略
第68回 読書案内(2)
第67回 周期
第66回 歳を重ねるということ
第65回 雑誌いろいろ
第64回 となりの芝生は
第63回 夏休み
第62回 雑用三昧
第61回 ドリームウェア
第60回 再び人月の神話
第59回 300回目の昔語り
第58回 温泉紀行
第57回 人材ジャンク
第56回 知らない強さ
第55回 プレゼン現場にて


Copyright 1997-2000 CQ Publishing Co.,Ltd.