BUILD windows のスライドを23個観た

BUILDwindows2011のスライドを観た。世の中的にはMetroデザインがどうとからしいが、そんなの割と些末だった。

特筆すべきトピックは下記の2つ。

  • Windows Runtime (WinRT)
  • Asynchrony

以下説明。

Windows Runtime (WinRT)

とうとうついに Win32 がレガシーになる。噂は聞いていたが、スライドを読むまで本気だとは思わなかった。本気でびっくりした。

Cはもはや primary language でない。Windowsの開発言語は、C++/CX, C#, VB, JavaScript になる。

Managed C++, C++/CLIが出たとき「そんなアホ言語誰が使うんだ」という話になっていたが、その成果がC++/CXであり、OSインターフェイスに十分な仕様をもっていることが素晴らしい。アプリの記述言語はC#だろうが、クリティカルな部分はC++/CXの方が書きやすそうだ。

また、VistaWinFX が先送りされたことは今でも覚えている。「Vista はダメな子」とよく言われているが、そうではないと今でも思う。7/8の基礎技術はVistaで培われたものだ。

Asynchrony (async)

私は Windows, iOS, Android, Windows Phone 7, au BREW などでプログラムを書いたことがあるが、非同期処理はいつも悩みの種だった。どんな技術を使っても、コードが分断されて可読性が悪くなる。

Async は、基礎技術的にはいままでデベロッパが実装した手法の汎化なので、新規性という点でみるところはない。

Async の優れているところは、OS, 言語 (C#, JS)、ライブラリのすべてに渡って、非同期のためのパラダイムが埋め込まれたことだ。この効果は非常に大きいと思う。

なお、私のような「既存技術に問題を感じていた人」には便利だと思うけど、「非同期処理が簡単になった」というものではないので、難しいものは難しいままではある。

その他

C#で、呼び出し元パラメタが使えるようになったw 次のようなメソッドで、呼び出し元情報を取得できる。地味に嬉しい。そして、ヘジルスバーグがこういう点について発表するという判断がいい。さすが。

public static void WriteLine(string message,
[CallerFilePath] string file = "",
[CallerLineNumber] int line = 0,
[CallerMemberName] string member = "")
{

var s = string.Format("{0}:{1} – {2}: {3}", file, line, member, message);
Console.WriteLine(s);

}

観たスライド

.NET Framework / Development

Windows Runtime

Asynchrony

UX

etc.