Insider's Eye

C#への期待。アンダースからの返答

デジタルアドバンテージ 一色 政彦
2006/02/15

Page1 Page2 Page3


Microsoft PDC 2005で発表された次世代テクノロジと新製品
巻き返しが始まるMicrosoftのRSS/Ajax戦略
動的プログラミング言語へと発展するC# 3.0とVB 9.0

 今月初めの2006年2月2日(木)〜3日(金)、パシフィコ横浜にて、「Microsoft Developers Conference 2006」(以降、MDC 2006)が開催された。これは、昨年9月に米国で開催されたカンファレンス「PDC 2005」の内容を、日本の先進的な開発者向けにあらためて(アップグレードしつつ)提供するためのカンファレンスである。

 このMDC 2006に合わせて2月2日の正規のセッションの後、主にMVP(ほかにVSUGINETAなど)を対象としたスペシャル・セッション「コミュニティ・スペシャル・セッション with Anders Hejlsberg」が催された。このセッションは、「C#の父」と呼ばれるC#言語チーフ・アーキテクトのアンダース・ヘルスバーグ氏(Anders Hejlsberg。以降、アンダース氏)をゲストに迎えて、C#に対する疑問や、より良い言語設計に対する要望などをアンダース氏に直接ぶつけてディスカッションしてみようという試みだ。

 そしてこの試みは大成功だったと筆者は感じた。セッションでは、アンダース氏と参加者が一体となって、C#に対する深いテーマが熱く議論され、ホワイトボードを使いながら、参加者が持っているC#への疑問にアンダース氏が丁寧に答えたり、より良い言語仕様について参加者全員で考えたりした。この全員参加によるディスカッションは大盛況だった。

 ここで議論された内容は多くの.NET開発者にとっても有益なものである。本稿では、このディスカッションの内容を筆者なりに要約してお伝えする。

アンダース氏が明かすC#言語設計の秘話

■C# 2.0の設計段階で削った機能や、意図的に搭載しなかった機能はあるか?

 いくつかある。例えば次のようなものがある。

  • 「プロパティの自動実装」(Automatic Implementation of Property)
  • 「宣言型例外処理」(Declarative Exception Handling)

 プロパティの自動実装では、ゲッター(getter。getアクセサ)やセッター(setter。setアクセサ)や、そこで使われるインスタンス変数の宣言を自動的に実装するような機能を考えていたが、さまざまな意見があり、最終的に答えが出なかった。将来的には答えが見えてくるだろうが、いまのところはまだ実装していない。

 また宣言型例外処理(=例外処理を.configファイルなどに一括して記述できる機能)については、特にJava開発者からなぜ組み込まないのかと聞かれることもあるが、これらの手法は問題を別の問題にすり替えているだけのように思えるので、意図的にC#には組み込んでいない。このような機能に手を付けないのは、それ以外の解決策を模索しているからだ。

■C#に関して何か興味深い秘話はあるか?

 「C#」という言語名を決めたときの話だが、もともとC#プロジェクトのコード名は、「COOL」(C like Object Oriented Language:Cライクなオブジェクト指向言語。クール)だった。だが、すでにほかの製品で使われているなどの理由で、この名前は採用されなかった。

 ほかの案として、「EC」(イーシー)、「C2」(シー・スクウェア)、「C3」(シー・キューブ)、また音楽の要素を取り入れて「C#」、元素の名前から「Cs」(シー・セシウム)などが出てきた。「C#」を近くでよーく見ると、「C++++」に見える。そのような理由で最終的に「C#」という名前に落ち着いた。

■言語を設計してみたい人へのアドバイスはあるか?

 ある。それは「そんなことはやめなさい」ということだ(笑)。

 言語設計のおもしろさは、「言語の設計は、芸術と科学の組み合せである」というところにある。一方では主観的・直感的な判断が必要になる。例えば、言語を使用する開発者にとって、その言語が易しいものなのか、コーディングしやすいのかといったこと。またもう一方では客観的・厳密な判断も必要だ。例えば、その仕様が言語として妥当か、そのコンパイラを実装するうえで妥当かといったことである。

 これまでいろいろなプログラミング言語を見てきたが、芸術性の面では良いが、科学の面では良くないといったパターンや、またその逆のパターンもある。この2つをうまく両立させなければならないところに、言語設計者としての妙技があるのだと思う。

 

 INDEX
  Insider's Eye
  C#への期待。アンダースからの返答
  1. アンダース氏が明かすC#言語設計の秘話
    2. C#に対する開発者からの要望
    3. C#自体やその将来に対する疑問、他言語に対する意見
 
 Insider's Eye

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH