Microsoft Developers Conference 2006 Anders Hejlsberg スペシャルセッション
日時: 2006 年 2 月 2 日 (木) 19:00-21:30
場所: パシフィコ横浜 内 会議センター 4F 419 番
<参加レポート>
(1)arconeさんのレポート
デベロッパーコンファレンスに行ってきた。なんと言っても今回はAndersに尽きる。
前の晩、チャンネル9からAndersの7本のビデオをダウンロードし夜遅くまで見た。
基調講演を終え、特別講演に現れたAndersを見て、なんかうれしくなった。
特別講演はChanneru9で見たのと同じく、LINQについて。
ほとんど同じものを見てもやはり生は違う。LINQ自体の感想は、
「本当にこれでみんな動くの」と言うのが正直なところ。
SQLの細かな設定に自信がないまま使って、何か問題があったときに逃げる手があるのだろうか。
LINQ自体はSQLに限ったことでないので、いろいろな内部の検索にも使える点はすばらしいと思う。
LINQがブラックボックス化しないで発展してくれると良いと思う。午後の講演ではLINQだけでなく、
C#3.0の話題。でもやはり最後はLINQ。質問もLINQに集中していた。
質問自体もデバッグ時のツールに関してだった。
残念ながら通訳がうまく伝えられなかったのか期待した答えではなかった。
セッションが終了してVSUGの特別枠で当たったMVPの人たちとAndersのトーク。
菊池さんのWelcomeメッセージを終えて、Andersが話し始めた。
まずはAndersからMVPの皆さんへの感謝、続いてコミュニティのにも感謝が述べられ、
簡単な自己紹介からディスカッションが始まった。
VSUGのC#フォーラムで募集していた質問をMVPの菊池さんたちがまとめて質問。
細かな質問にも丁寧に答える彼の姿勢にすばらしいものを感じる。
全ては書けないが、MVPの皆さんにしてはミーハな、C#の名前がどうして決まったかとの質問では、まずは、Cから派生しているのでC何がしにはしたかったこと。
Cool(C like Object Oriented Language)や、いろいろ候補の中でCsとC#に絞られたこと。Csはセシュームの原子記号で、音の響きは良かったが、原子爆弾の材料になったりして、ダーティだとして最後にC#に決定したとのことだった。+が4つ集まっているみたいでしょとも言われていた。
プログラム言語を開発したい人へのアドバイスについては一言「Don't」C#ファンとしてはJavaにあってC#にないものをねだりがちだが、XPで活躍しているMVPの福井さんの質問したAspect指向のC#導入の件では、他の方法でもできるし、アスペクト指向自体が、1度作成したものを他人がWeavingして変更してしまうことで、元々の作者の責任部分が分からなくなるなどの危惧があるから現状では考えていないとのことだった。危惧の問題と道具として完備している問題は別問題のような気もするが、道具が一人で動き出してしまうことのほうが心配なのだろう。
Extension Methodを使用すればAcpect指向的に使用できるとも話されていた。
9時半までの2時間半のセッションがあっという間に過ぎて行き、全員で記念写真を撮り終了した。
家に帰ってRSS Banditを起動してみると、新しいAndersのビデオがChannel9に上がっていた。
今度のビデオはBehind The Codeでのインタビュー。
コードの話はなく、生い立ちから、ボーランドでの話し、マイクロソフトでの話し、家族の話と続く。Channel9が始まって「悪の帝国」の技術者が本当に身近な人たちになったと思う。
このビデオはおススメ。
最終日はMSDNオフラインの第1回「C# バージョン 2.0、およびその未来」。
こちらは昨日と違って一般の人向け。Genericの話から始まってC#2.0の新機能の説明、Visual Stdio 2005の機能の説明。
多くの参加者が2005バージョンを使用していない中でsvm+TABやcw+TABと言ったショートカットキーを使ってコードを書いていくと「オー」と歓声が上がる。
そして最後はやはりLINQ。XMLデータをあっという間に作ってしまうと自然と拍手の嵐。
C#2.0ができたばかりだけれど、早く本物のC#3.0に触れたいと思った人が多かったと思う。
こんなに楽しくすばらしい言語を作ってくれたAndersに感謝をしたい。
まだまだ日本ではメジャーな言語にはなっていないと思いますが、できるだけ多くの人にすばらしさを伝え、少しでもC#の普及に協力できたらと思いました。
Life and Times of Anders Hejlsberg(Behind the Code)
http://channel9.msdn.com/Showpost.aspx?postid=159952
Anders Hejlsberg - LINQ
http://channel9.msdn.com/Showpost.aspx?postid=114680
More C# Talk from C#'s Architect
http://channel9.msdn.com/Showpost.aspx?postid=54970
What brought about the birth of the CLR?
http://channel9.msdn.com/Showpost.aspx?postid=10804
What influenced the development of C#?
http://channel9.msdn.com/Showpost.aspx?postid=10502
Programming data in C# 3.0
http://channel9.msdn.com/Showpost.aspx?postid=10276
What's so great about generics?
http://channel9.msdn.com/Showpost.aspx?postid=10189
Tour through computing industry history at the Microsoft Museum
http://channel9.msdn.com/Showpost.aspx?postid=10116

(2)chackさんのレポート
Microsoft Developers Conference 2006 のために来日した Anders Hejlsberg 氏のスペシャルセッションに、幸運にもVSUG会員として参加できたので、簡単にそのセッションの様子を報告します。
全ての内容はメモしきれなかったのですが、印象に残っているディスカッションを簡単に上げて見ようと思います。
● C# の名前由来は?
・コードネームは Cool だった。
・言語名候補として
eC
C^2
C^3
C#
Cs
Cesium (セシウム)
等が上げられた。
Cesium がカッコイイと思ったが、セシウムについて調べると放射性元素ということがわかり、あきらめた。
それで、最終的には C# となった。C#の # は + を4つ使っているように見えるでしょ、とのこと。
●言語設計をしてみたい人へのアドバイスは?
「ソンナコトハヤメナサイ!!」だそうです。
●C#でWin32Appが作成できる?
・試練課題
・障壁はない。作ろうと思えば作れる
・課題は、ガベージコレクタなど。
● C# で OS が書けるか?
・調査中
・研究プロジェクト
● C++ からの移行ユーザが typedef を欲しがっているが?
・プログラマから見て間際らしくなる
・使わないほうがいい
●今後C#は関数型言語に特化?
・はい
●Mix-in実装を容易にしてほしい
(多重継承はスマートではない。コンパイラで何とかならないか?)
実際やるとするとジェネリックの拡張と考えて、こんなのはどう?
class Printable<T> : T
{
public virtual void Print() {...}
}
class MyPrn : Printable<Form> {...}
・・・とホワイトボードにコードが書かれ、参加者も混ざってしばらくあれやこれやとディスカッション。
私もホワイトボードに夢中でメモしきれなかったです。
● C# 3.0/LINQ について
可読性悪くなるのでは?型推論ってどう?
・IDEでのツールチップで型がわかるように検討はした。
・リファクタリングで置き換える方法も考えられる。
ver の型推論のコストは?
cost = 0 だ。
コンパイル時のコストは?
cost = 0.000001 だよ。
(場内拍手!)
● COM の IDispatch インターフェースに対する late-binding を提供してほしい。
・検討することを約束する!
(場内拍手!)
● C# での VB.NET Myクラスの採用は?
・要望がたくさんあれば検討はするけど。
・この中で My が欲しい人は?
挙手 0人!
● Java 言語の進化についてどう思うか?
・.NET Framework での実装を Java でも実装していると思う。
・Java の最新のいくつかの機能では、明らかに .NET に触発されていると思うよ。
●最後に Anders から一言
このようなセッションに参加させていただいてありがたい。
インタラクティブなセッションは楽しい。
MVPの方々やコミュニティは大切です。
以上のような感じで、2時間半があっという間に過ぎてしまいました。
最後には恐れ多くも記念撮影にまで参加させていただき、
とても有意義な時間を過ごせることができました。
Anders 氏をはじめ MVPの方々やコミュニティの皆さん、
そして関係者の皆さんに大変感謝しております。
多くの刺激を受け、私自身リフレッシュされました。
今後も機会があれば、このようなディスカッション形式のセッションが行えるといいですね。
私も VSUGメンバーとして積極的に参加し、そして協力していきたいと思います。

(3)uemuraさんのレポート
Visual Studio ユーザーグループの応募にてC#の開発者であり、かつてはDelphiの開発者でもあったAnders Hejlsbergさんのセッションに参加させていただきました。
LightWeight Languageのカンファレンス等には何度か行ったことはありましたが、マイクロソフト主催のカンファレンスは初めてでした。
お弁当を用意してくれてたり(しかもお弁当とは思えない良い牛肉を使ってた)、書きやすいボールペンやストラップを頂いたりとマイクロソフトはやはり太っ腹!
msdnのロゴが入ったミネラルウォーターなんかもありました。
Anders Hejlsbergさんはマイクロソフトの黒いシャツにブラックジーンズ。
Anders Hejlsbergさんに限らずマイクロソフトの社員はみなキチンとした格好と髪型をしてました。
このへんはオープンソースの世界の住民とは違うところかもしれない。
(もちろんオープンソースの世界にもキチンとした格好の人はたくさんいますけどね)
私はいつでもメモ帳を持ち歩くように心がけているのですが、Anders Hejlsbergさんも、よく鍵をつけるリール式のチェーンにメモ帳をつけてぶらさげてました。
少し親近感がわきました。
参加者は30~40人くらい。VSUGのロゴの入ったシャツを着てる人もちらほら、多くの人が知り合いのようで仲良さそうにいろいろなことを話していました。
名札を見ると私も購読している有名なBlogerの人も何人かいました。
セッションはというとVSUGのフォーラムで集めた質問をAnders Hejlsbergさんが答えるという形。
通訳さんが的確に訳してくれて英語が分からなくてもOKでした。
しかし、訳す前にAnders Hejlsbergさんのジョークで笑ったり、納得したりする人が多数!
直接英語で質問する人もいました。
ん~英語重要。
私は半分くらいしか分かりませんでした。
内容も「C#の名前の由来は?」みたいな面白い質問から「関数型言語へと進化するのですか?」のような来るC#3.0への質問、「win32comで実装できないのか?」のような現実的な質問までさまざま。
Anders Hejlsbergさんは全ての質問に丁寧に答えてました。
印象的だったのは、どの質問に対しても「C#はシンプルでなくてはいけない」
というAnders Hejlsbergさんの主張が感じ取れたこと。
便利さと引き換えにシンプルさを無くすことがありすぎてはいけない。
そのへんのバランスに常に気を使っているように思えました。
思えばC#2.0も、アナウンスされたC#3.0の機能のどれも開発者が
「より簡単に書けるようにするもの」
ばかり。
C++出身のベテランの開発者も便利に扱えるのと同時に、はじめてプログラムを組むような初心者も分かりやすく使えるもの。
且つ、堅牢で大規模開発にも耐えうるもの。
C#の進む道はそのようなものではないかと思いました。
聞きたかったけど聞けなかったことといえば、
関数型言語への影響を言われてましたが、HaskellやMLなどの純粋な関数型言語というよりは
RubyやPythonのようなインタプリタ言語の関数言語の機能の取り込みを意識されてるのではないか?
ということ。
もちろん型の厳格さの必要性はPascal時代から変わらずあるのだということも感じました。
その上での型推論でありラムダ式なのだと感じました。
最後はみなで記念撮影。
集合写真撮影の後もメンバー同士で記念撮影をする姿にVSUGの主要メンバーの仲の良さを感じました。
今後はC#にもより力を入れていくのでVSUGフォーラムへの参加、
こういったイベントへの参加、C#の勉強をがんばりたいとおもいました。
このたびは参加させていただいて誠にありがとうございました。