感想をざっくりと30分位で記録しておきます。以前だときちっとレポートを書いたのだけど、年齢には勝てず…ってことにしておく。
Microsoft Windows Developer Days (WDD) ホーム
http://www.microsoft.com/ja-jp/events/wdd/default.aspx
「Developer」ってことなので、Wndows 8 の metro アプリケーション、Visual Studio 11 での開発ってのが中心になります。私としては、既に acer w500 に windows 8 cosumer preview を入れ、visual studio 11 beta で試して、って具合でもあり、あとは半年後のための情報収集ってことで、
- Visual C++ 関係
- Azure 関係
- ASP.NET MVC 関係
ってところを中心に聴講してきました。
で、結論から先に書くと。
- xaml/c++ が意外と有望かも。Direct3D 関係を直接扱ってゲーム関係で metro でいけます。
- metro アプリケーションと従来型のデスクトップアプリケーションは、共存可能、つーか、使い分けないと駄目。
- metro アプリは基本ワンタスクで動く(バックグラインドに入ればサスペンド)。なので、意外と大雑把な作りをしても ok かも。
- Azure を含むクラウド関係は、10年越しで計画を立てて徐々に移行という感じ。
- ASP.NET MVC は、Web API を実装したら、WCF とかいらんかも。
な様相を呈しております。
ワタクシ的には、Windows 95 か XP が出た頃のインパクトがあるかなぁと思っていて、完全に metro に移行するのか、それとも windows 7 に留まるのか、という感じがするのですが、どうなんでしょうねぇ。Windows 8 の使い勝手としては、metro スタイルとデスクトップスタイルは共存が可能/使い分けが可能なので、ゲームやブラウジングなんかは metro でやって、お仕事ツール(開発関係)はデスクトップスタイルという感じになると思うのです。実際、Visual Studio 自体は metro スタイルにならないし(そういう言及もありました)。
しかし、クライアント関係では「見栄え」のところで 、メトロスタイルが出てくるかもしれません。ただし、Silverlight がああいう感じになってしまったのを考えると、「見栄え」だけでは難しいところもあります。予算的にITにどれだけ投資できるか?というもありますからね。しかし、タブレットPC/スレートPC、スマートフォンでは、従来型のデスクトップアプリでは非常に扱いにくいのは確かです。かつての Windows CE や Windows Mobile を完全に廃して、「メトロスタイル」というものを打ち出して来たのは、英断だとは思います…が、本当ならば WPF や Siverlight を打ち出した時にデザインだけでも打ち出しておけば良かったのでは?と思ってしまいます。
まあ、Apple の特許に引っ掛かった(引っ掛かるかもしれない危険を回避した)とも言えますが。
そういう意味で、メトロスタイルというデザインは、Android のユーザーインターフェースが iPhone に酷似するようには、似ていません。なので、別路線を打ち出したということで、ひとまず「特許/意匠」関係で訴えられるリスクを回避しているのでしょう。少なくとも私はそう考えています。
なので、iPhone ほどスマートフォンを考え抜いてはいないものの、新しい「頂き」を構築したのが、今回の Windows 8 のメトロスタイルです。いまのところ「第一」とは言えないものの、「最低」ではありません。ほどよく中間的なデザインだと思います。Apple/iPhone が「ブランド路線」だとすると、Google/Android は「廉価版」路線になっています。5万円ほどの iPad に対して、2,3万円で Android タブレットが買えますからね。となると、Windows 8 のメトロスタイルはどうなるかというと、という問題があるのですが、実はブランドでも廉価でもない路線になるのではと思っています。
ここ2日間ほど、win8 on acer を使ってみて分かったのは、普段使っている Windows アプリを acer にインストールして持って行けるところです。従来の outlook や power point のインターフェースは、タッチパネルで操作するには非常に困難なのですが、動かない訳ではありません。これは、iPad や Android の場合は、別途アプリケーションをインストールしないといけないのに対して、「従来のアプリが使える」という大きなメリットが windows 8 にはあります。使いにくいけれども、使えないことはない、という無理矢理な路線は、そう、ms-dos や windwos 3.1 の頃の感覚に似ています。横目で、unix の堅牢さや mac の素晴らしいインターフェース(けれども非常に高価な)を横目に、なにやらプラモデル感覚でプログラミングをしていた頃を思い出させてくれます。
メトロスタイルという一見「デザイン的に優れた」と銘打ってはいるものの、裏の意味は…と勘繰ってしまったりしますね。
で、話を元に戻すと、Visual C++ のインテリセンスが復活したこと、XAML を VC++ から使えるようになったこと、WinRT という形で windows api を組み替えつつあること、(おそらく)DirectX 2D が復活すること、という事実から、microsoft は再び c++ 開発者を取り込みにかかっているように見えます。現在、様々なアプリケーションのサンプルは「C#」で提供されることが多いのですが(日本の場合は、歴史的にVBも含まれています)、これからは直接XAMLを扱えるようになることから無理矢理C#を使わなくてよい、ということになりそうです。
この無理矢理のところ、一例を出しておくと、
- DirectX 関係は、元々 C言語インターフェース、COM インターフェースが多い。スピードを要求されるところで、C# を使うのは気が引ける。
- OpenCV のような画像解析は、C/C++ インターフェースとなっている。
- Fortran との接続も C/C++ のほうが楽。
- おそらく、Python, Ruby, Java との相互運用も C# よりも C++ のほうが楽ではないか(想像だけど)。
ということがあります。C# の場合、.NET Framework の中に納まってしまうので、相互運用をしようとするとどうしてもランタイムなところが邪魔してしまうのですね。これは、C++/CLI ではなくて、C言語そのものからC#を呼び出すとその複雑さがよくわかります。そうなると、ネイティブなメモリのマッピングだけを考えると、C/C++ が有利なのですよ。まぁ、それ以外のところ(それ以外のところが非常に多いのですがw)は、C#やVBで書くわけですが。
ちなみに、Objective-C で iPhone アプリを書くと、結構べたべたなコードが出てきます。いわゆるプログラム言語のデザインパターンはC#やJavaのほうが豊富なのです。ですが、iPhone アプリ(iOSアプリ)のクラス群は結構厳格なポリシーに沿って書かれているんですよね。そのあたりがうまく出来ていて、
- iPhone の場合は、なんにも考えなくても「そこそこのデザインの画面ができる」
- Windows の場合は、なんにも考えないと「そこそこのデザインの画面しかできない」
という感じがしています。そうですね、このあたりは今週末の.NETラボの勉強会で話そうかな…とネタを考えてみたり。まだプレゼン資料ができていないので、考えるのは自由ですから。
ピンバック: .NET Clips
Windows Developer Days へのご参加ありがとうございました。またブログ記事にしていただき感謝でございます。
メトロスタイルに対する多くのご意見・ご感想・ご期待をいただきありがとうございます。しっかりと今後に役立つよう努めてまいります、今後も開発者の皆様のお力が必要でございます。ぜひ引き続きご期待いただき応援をしていただけるよう、よろしくお願いいたします。
Jacobsバッグ的 [ハミルトン] http://www.advanceshopbulljp.biz/