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の方が書きやすそうだ。
また、Vista で WinFX が先送りされたことは今でも覚えている。「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
- Future directions for C# and Visual Basic
- What's new in .NET Framework 4.5
- What's new in Visual Studio 11
- Building parallelized apps with .NET and Visual Studio
VS11は買わねばなるまい。
Windows Runtime
- Deep dive into the kernel of the .NET Framework
- Windows Runtime internals: understanding "Hello World"
- Using the Windows Runtime from C# and Visual Basic
- Using the Windows Runtime from C++
- Lap around the Windows Runtime
Asynchrony
- The zen of async: Best practices for best performance
- Async made simple in Windows 8, with C# and Visual Basic
- Async everywhere: creating responsive APIs & apps
UX
- Achieving high performance 2D graphics with Direct2D
- Create cool image effects with Direct2D
- Understanding the Windows 8 graphics driver model
- Building great touch systems
Touch Languageの定義がある。
etc.
- Writing modern C++ code: how C++ has evolved over the years
- Windows Phone app performance and optimization
- Architectural discovery with Visual Studio 11
- New techniques to develop low-latency network apps
Registered I/Oの話。 - Improving battery life and energy efficiency
- Building great Windows 8 systems
- Make great touch apps using XAML