misc.log

日常茶飯事とお仕事と

Tech Days 2009 二日目

横浜 みなとみらいのパシフィコ横浜で2日間に渡って開催された、Tech Days 2009、二日目を終えてぐったりして帰ってきました。自社内にフィードバック(1時間ちょいくらいのプレゼン)というタスクがあったので、極力セッション内容をメモった結果、二日でA5サイズノートに50ページくらい手書きするハメに。さすが万年筆(LAMY SafariとPelikanのM205でデモンストレータ)。
本日はひたすらWindows7に関連したセッションに参加することに。

Windows7機能概要

先日ベータ版が公開されたWindows7、カーネルはXPのNT5カーネルと異なり、Vistaと同じLonghorn。従ってコアな部分はVistaと同じ。製品としてのポイントは

  • UX(User Experience、ユーザーエクスペリエンス)
  • WindowsとWebの連携
  • 強固な基盤

この3本柱だそうで。


UXについては、.NET Framework3.5で話題になっていたWPF(Windows Presentation Foundation)が基軸ですね。一般の人向けのプレゼンでは、「タスクバーが新しくなりました」なんて感じの話になりますが、これも全部裏側は最終的にWPFが支配するようで。タスクバーの新しい機能「ジャンプリスト」にしても、「オーバーレイアイコン」にしても「サムネイルツールバー」にしても、Windowsのネイティブなコードはすべて最終的にはWPFがラップして、開発者はWPFXAML(ザムル:WPFを用いた成果物の外観や挙動を記述するXMLベースの言語)で定義することに。
これ、「うちはWPFなんて使うことないから。関係ないよ」とか言ってられなくなりますよ。マイクロソフトが直に言うことなんで、どこまでが戦略的内容なのか判りませんが、少なくともWinFormsに関しては完全に後回しか、サポートしなくなる雰囲気が充満してました。


また、Web連携、これについては従来のIEなどを中間に挟んだWeb機能利用ではなく、OS自体がWebサービスなどを利用する機能を持ってしまうようです。まぁ、クラウドコンピューティングマイクロソフト的実現の1つである「Windows Azure」なんかに向けての基盤作り何でしょね。


面白かったのは強固な基盤、として、パフォーマンスの改善(起動などの速度向上)や、消費電力低減のための機能が盛り込まれていることですね。消費電力をプログラミングや設計の面から低減するために、

  • Timer Coalescing:CPUに依頼する処理に、猶予時間を設定することで、複数の処理をまとめて実行したりして処理を行う時間と行わない時間をきっちり分ける、という機能。
  • TriggerStart:Windowsサービスを、必要になるときまで起動しない機能。SCMに定義したイベントによってサービスを起動し、使いもしないサービスの起動を防止する。

こうした策が盛り込まれるようです。前者は、CPUが処理を行うために刻むTimerTickなどになるべく各種作業を合わせることで、なるべく「まとめて動作、まとめて休む」という動きを実現するもののようですね。人間にとっては微々たる時間かもしれませんが、積み重ねで低稼働時間を増やして消費電力を下げようという試みです。後者は、たとえばUSBメモリが挿された、といったハードウェアの認識などをイベントトリガーとしてサービスを起動、逆に、使い終わったらサービスを落とす、ということを、サービスを管理するOSの仕組みが行うことで、無駄なバックグラウンドタスクが動き続けることによる消費電力の増加や、他のメインタスクの足を引っ張ることによる処理時間の増加(要するに、人間が待ってる時間とか)をなくそうというもの。
従来だったらいつ挿されるか判らないUSBメモリのために、ひたすらサービスはハードウェアの状態を確認し続けていたわけで(たとえばiTuneのサービスとか)、こういうのをなくせる訳ですね。

タスクバーを利用したアプリケーション開発

Windows7で新しくなったタスクバーについて、その実装方法やガイドライン的な考え方の説明が行われました。

簡単に言うと、タスクバーのタスク表示が大きなアイコンになり、そこに出せる情報量や機能を増やすことで、タスクトレイの肥大化や、人間によるウィンドウの切り替えをなるべく減らそうと言う目的で行われた機能改善のようです。たとえば、タスクバーに表示されるアイコンに、アプリの処理過程を表示するプログレスバーが合わさって表示されるような機能などが説明されました。一見どうでもいいような機能ですが、たとえば大量のファイルをコピーしながら他のことを行う場合に、プログレスバーを表示しているダイアログが裏側になるようなことがありますよね。ああいう場合に、画面を切り替えなくても状態が判る、なんてのが目的のようです。

なんでも、WindowXPなどのエラー報告システムによるマイクロソフトの報告を分析した結果、ウィンドウの切り替えを行った際にエラーが発生する率が結構高いようで、安定した動作やプログラムミスによる事故の発生を抑えるには、ウィンドウを不必要に切り替える必要がないようにするのも1つの手であるというような話になったみたいです。

そもそも直すべきはそこじゃないだろう、という気もしますが、使い手の立場からすると楽になるのだからまぁいいでしょう。

ただ、タスクバーの機能や表現力が増えたと言っても、そこに適切な情報を表示するのは開発者なので、設計時点でのUIに関する検討事項はむしろ増えることになり、その辺りに興味のない開発チームにとっては「余計なことをしやがって」という感じかもしれません。