WinRTの登場とSilverlightの陰りを見ると、NETの人気やその人気を背景にしたMicrosoftのサポートが縮小しているのではないかと考える開発者もいるだろう。NETの中心的な言語はC#だが、C#の開発者であるAnders Hejlsberg氏の新しいプロジェクトはTypeScriptだ。この予想外の展開はBrandon Bray氏の"The Evolution of .NET"と題したプレゼンで発表された。氏のプレゼンは.NETに蓄えられたものを示すものだった。
Bray氏は.NETグループプログラムマネージャだ。氏は2000年のProfessional Developers Conferenceの発表から現在の状況に到るまでの.NETの歴史を振り返ることからプレゼンを始めた。2002年2月の.NET Framework 1.0のリリースから今年で10周年になる。
.NETには永久的なテーマが3つあるとBray氏は言う。
- プラットフォームと産業のトレンドを幅広くサポートする
- Time to solution getting better
- ランタイムとライブラリの性能改善
Bray氏は.NETの歴史と共に働いてきた中で、 Silverlightが"重要な役割を果たした"こと見てきた。氏が言うにはSilverlightから得られた知見はWindows PhoneとWindows 8に生きているそうだ。
Framework 4.5が3ヶ月前にリリースされてから、400万回もダウンロードされ、このプラットフォームの人気を示している。Bray氏によれば現在の開発者は次のような特徴を求めている。
- ビジネス互換アプリケーション: ITのコンシュマライゼーションの反映。私用のデバイス(電話/タブレット/ラップトップ)を仕事に持ち込むために必要な機能。私用のデバイスを仕事で使うのは企業の世界のトレンドだ。
- 高速&流れるような経験: これはユーザインターフェイスの性能だけではない。アプリケーションの使い方が簡単にわかることも含む。
- モダンな接続されたアプリケーション: デバイスからデータを取得しウェブ/クラウド、ディスクトップに送る。
Bray氏が言うには開発者の視点から見れば、複数のプラットフォームをターゲットにする機能がほしい。Windows Phone、ウェブ、クラウド、Windows 8などのプラットフォームだ。ユーザと開発者のニーズが.NET Frameworkが提供しようとするものを定義する。
性能改善
Bray氏は.NET 4.5のバックグラウンドガベッジコレクション、マルチコアJIT(just-in-time)コンパイラを紹介した。Bingチームによる新しいバックグラウンドガベッジコレクタの導入よって、古いGCでは平均8%だった停止が2%へ低下した。マルチコアJITはASP.NETでは自動的に有効になるが、開発者はProfileOptimizationクラスを使ってアプリケーションにマルチコアJITを追加することができる。
.NET 4.5にアップグレードした結果発生するDLL Hellを気にしている開発者はMicrosoftに確認するといいだろうとBray氏は言う。Microsoftは認識済みの問題を積極的に解決しようとしているからだ。
Windows Phone 8の.NET: クラウドでのコンパイルの利点
Windows Phone 8についてBray氏は次の改善が行われたと言う。
- CoreCLRがNETの基盤になった
- NET4.5の互換性が搭載された
- クラウドでのコンパイルによってアプリの起動が速くなる
クラウド上でコンパイルすることでWP8を搭載するハードウエア上で動作するアプリの速度は2倍になるという。以前は事実上電話をコンパイラとして扱っていたが、これだと性能とバッテリが最適化されない。クラウド上のコンパイラを利用することで、MDIL(マシン依存命令言語)へコンパイルをアウトソースする。MDILコンパイラはMDILアセンブリを生成し、電話に配置する。
将来
Bray氏は.NETのプラットフォームの将来については保留した。新しい機能について公表したくないからだ。しかし、氏はMicrosoftは.NETを支えており、.NETは同社のプラットフォームの不可欠な一部である、と繰り返し主張した。“私たち(Microsoft)は.NETの成功を求めています”
仮定が変われば.NETプラットフォームの将来も変わる、とBray氏は言う。将来に取り組む領域は、
- デバイスのエクスペリエンスを改善する(Windows Phone、タブレット)
- クラウドのエクスペリエンスを最高にする
- 異種混合の開発
- マルチプラットフォームをターゲットにする
具体的なことはアナウンスされなかったが、いくつかの興味深いヒントが示された。Silverlightからの教訓が得られたように、Singularityプロジェクトも異なるプロジェクトへの用途を見つけたようだ。今年の8月、Channel 9のユーザである“Felix9”は、WP8のMDILは以前はSingularityのBartokコンパイラとして現れたものだと指摘している。