build

Roslyn の恐怖 - Compiler as a service の全貌

この記事をクリップ!

//build/ カンファレンスで、個人的にもっともショッキングだったのが、Future directions for C# and Visual Basicというセッション。Anders HejisbergというTurbo Pascalの原作者であり、Delphiの開発指揮、C#/.NET Frameworkの設計を行った人。

DSC03585

セッションの前半は度々登場する非同期コードやCaller info attributesなどのC#新機能を紹介していましたが、本当にしゃべりたかったのは、その後のC#5.0の先を示す話題だったようです。

DSC03586DSC03587DSC03592DSC03594

以前から同氏が推進しているCompiler as a service (CaaS)プロジェクトであるRoslynがCTPを迎える模様。うたい文句と概要は知っていたものの、ツールとしてどのような機能を擁するのか、今回明らかになりました。

DSC03596DSC03597

従来は上記のように、コンパイラはブラックボックスでしたが、Roslynでは以下のように、レキシカルアナライザとか、ビルディングブロックとなる要素をAPI化して、見通しをよくしたものという考え方です。決してWeb上にSOAPやRESTで公開するようなものではなく、サービスを細かく分けてユーザが自由に組み合わせて利用できるという精神がSaaS的なのです。

image

以下のようにコンパイラパイプラインをそれぞれAPI化したものです。それらを用いることで、Visual Studio IDEのような、シンタックスハイライティング、リファクタリング支援、オブジェクトブラウザなどが実現されているわけですから、実際にはVisual Studioの一部の機能を抜き出したものともいえるかもしれません。

image

自分自身のリファクタリングロジックを考えたり、さまざまなツールを開発することができます。

10月中旬にCTPがリリースされる予定です。実際にRoslynを利用したデモ。以下のようにRoslyn.Scriptingというネームスペースが割り当てられています。

DSC03599DSC03600

以下のように ScriptEngineに文字列で記述したソースコードを引き渡すと、ただちにコンパイル、動的に実行ができます。

image

また、関数を定義することも可能。

image+

さらに、ダイナミックに宣言された関数をローカルのデリゲートへ代入して、その関数を実行、などという変態プログラミングもできます。動的コンパイルのセッションといわゆる通常の静的コードがシームレスにつながっているようです。

image

ここまで来て、なんとなくピンと来たのですが、新しいウィンドウとしてC# Interactiveモードというのが用意されています。いわゆるインタープリタといえますが、スクリプト言語と違い、静的タイプ言語の強みとして、C#のコードコンプリーションがフルに使えるという恩恵も受けられます。

image

csファイルエディタから、コードを選択しリターンキーを押すとその部分がインタラクティブウィンドウで即時実行ができます。

image

関数定義もこのように直ちに反映されます。

image

次にファイル名を列挙するコードを入れますが、ライブラリが無いとのことでエラーになります。そこでエディタではなじみのアイコンがインタラクティブモードでも現れます。すなわち、usingのオートインサートがインタプリタでも利用できるということです。

image

ここまで来るとなんでもありです。WPFのGUIもインタラクティブに構築可能です。

image

プログラム中から、ソースコードを操作することができ、以下のようにセマンティックモデルと呼ばれるツリー上の構文木に対して、Linq Queryを投げたり、実際に操作したりできます。

image

最後に極め付けは、C#/VB間のソースコード自動変換。単純にコピーアンドペーストするだけで自動的に変換されます。

imageimage

このコードよく見ると、ダイナミックにC#コードをコンパイルしているので、VBコンパイラ中でC#コンパイラが動いていることになります。

さらにこのコンバートプロセスをコードで制御することも非常に容易です、以下のようにConvertというメソッドを呼べばOKです。

image

このような機能がVisual Studioにもうすぐ統合されるとなるとワクワクしてしまいますね。

これによって、いくつかのスクリプト言語は役目を終えてしまうのではないかと、思えるほどのインパクトがあるかもしれません。

//build/ 2011 カンファレンス初日 〜 Keynote #1 その6

この記事をクリップ!

キーノートの最後はChris JonesVice PresidentによるWIndows Live関連の機能紹介。

DSC03260DSC03241

以下はメールアプリの例。Windows Liveアカウントに対応したHotmailやカレンダーなどが参照できる。

DSC03242DSC03244

以下はPeopleアプリ。Windows Phone 7のPeopleハブと同様のソーシャル亜久里げーしょん機能を持つ。左下はPhotosアプリで、これもWP7と同様に、Facebook上の写真なども統合して参照できる。

DSC03245DSC03246

またLiveアカウントに対応して、複数のPC間でHDD内のコンテンツを参照することができるという恐るべきデモ。これは写真のみならず、ファイルシステム全体を見渡すことができる。さらにWindows Phone 7とも同期をすることができる。

DSC03247DSC03249

Developer Previewアプリとしては17のアプリが17のチームにより開発された。これらは実は夏のMSの学生インターンシップによるもので彼らが最初のWindows 8デベロッパーだということで歓声を受けていた。

DSC03254DSC03256

RTMへの道筋はBeta -> RC -> RTM -> GA(general availability)といういつものパスを通るとのこと。同行者の情報ではこれから9か月でRTMという噂も聞きました。

DSC03258

//build/ 2011 カンファレンス初日 〜 Keynote #1 その5

この記事をクリップ!

続いてSinofsky自身によるプロフェッショナルプラットフォームのデモ。ログインパネルでWindows Undateの報告を見ることができる。これまでポップアップやワーニングが出まくっていたのとは対照的にシンプルな印象を与えます。

DSC03218DSC03219

どうもシノフスキーはこの新しいタスクマネージャがお気に入りのようで、よりスマートになった機能を紹介していた。アプリケーションのサスペンド状態の表示、この状態では全くCPUを消費しない。左下はCPU,MEMORY,DISKなどの占有率を一覧が可能になったビュー。右下はよりクールになったグラフ表示。

DSC03222DSC03223

左下はWindows Assesment Console。パフォーマンスのチェックや各種のテストを行ってマシンんを管理できる。

DSC03227DSC03228

リモートデスクトップは、リモートのPCにタッチパネルが無くても、手元のタブレットからアクセスできたり、キーボードをリモートで使えたりする。

DSC03229DSC03230

またこれまでマルチモニタ時は、タスクバーの片方(メインスクリーン側)にしかスタートメニューは出なかったが、WIn8からは各スクリーンにタブを表示するようにできる。

image

また以下のように片方をメトロスタイル、片方をデスクトップにしたりもできるので、開発マシンが2画面の場合は重宝しそうである。

image

//build/ 2011 カンファレンス初日 〜 Keynote #1 その4

この記事をクリップ!

続いて、ハードウェアプラットフォームについての紹介。Michael Angiulo副社長のデモ。

DSC03184DSC03185

さまざまなハードウェアをサポートすることを説明するが、最初にハイエンドのサーバマシンからタブレットまで同じスピードで起動するという点を確認。現行のWindows 7PCでもだいたい8秒で起動します。

DSC03186DSC03197

以下はQualcomのSnapdragon SoCによるシステムに、デバッグカードを刺したデモ。電力消費をグラフ化しているが、新しいConnected stanbyにより、間欠的なパワーONによるネットワーク状態の確認をしている様子と、パワーOFF後すぐに電力消費が0になる様を紹介していた。

DSC03191DSC03190

以下は他の3種類のSoCチップベースタブレットの紹介。左はNvidia Tegra3システム、右はTI OMAPシステム、奥がIntel Atomシステム。全く同じビルドのARM OSが起動している。

image

USB3.0のデモ、256TBのHDDを扱えることを述べた後、GTX580を3機備えたモンスターマシンの紹介。4.7TFLOPSをたたき出すという。2005年のスーパーコンピュータと同様の性能だそうです。下右はUnbeleivably ReakusticなDirectXレンダリングの例。Windows 8 MetroアプリはすべてこれらのGPUアクセラレーションの恩恵を受ける。

DSC03192DSC03195

タッチパネルは、周囲に1ドット幅の検出センサーを設けて、スワイプ操作を読み取ります。

DSC03196DSC03216

以下のようにさまざまなディスプレーサイズをサポートするが、これまでのようにサイズが任意ではなく限られた画面解像度を規定している。

DSC03199

センサーは3軸ジャイロ、加速度センサー、地磁気センサーをサポートし、これらはSensor FusionAPIとして一つにまとめられてアクセスできる。これを3行のコードでアクセスできる点を強調していた。またNFCもサポートし、タグの読み取りでもも行っていた。また右下のような非常に薄いWindows 7マシンで動作しているところを示す。

DSC03200DSC03208

次にSamsungのタブレットPCを紹介。いきなり分解して、実際の中身は装備された機能を紹介しながら、実際はバッテリーの方が大きいとのこと。

image

そしていよいよDeveloper PCの紹介。上記のST MicroセンサーフュージョンチップやGPS,SSD,EFI,フラッシュなどを備えている。

DSC03210

隣の倉庫に5000台用意しているぜ!と紹介すると会場から大歓声。

DSC03211DSC03212

開発者向けのDeveloper Preview PCを使うことで、Windows 8の新しいインターフェイスを試すことができるとともに、そのままこのマシンでVisual Studio を利用して開発ができる。

DSC03213

ハードウェア環境はこれまでの延長線上にあるものと考えてよさそうですが、特に電源周りで長時間稼働が望まれるARMシステムに合わせた改良が見られるようです。

//build/ 2011 カンファレンス初日 〜 Keynote #1 その3

この記事をクリップ!

WinRTの紹介のあと、実際のMetroアプリケーションの開発をデモしました。

DSC03159

Antoine Leblondが紹介します。よしよし俺が見せてやろうと、と手をすりながら現れたのが印象的でした。

DSC03160

Visual Studio 11によるSuper EasyなMetroアプリケーション開発の紹介。

DSC03161

当然ながらVisual StudioのプロジェクトとしてJavaScriptが加わっています。一番上に出ているのは単にアルファベット順ということです。C++のみDirectXプロジェクトが存在するほかはすべて同じテンプレートを持っています。

DSC03162

例では画像をタッチで編集するアプリPhotoDoodleを簡単に作成していました。コード量は80ライン程度。

DSC03165

これをMetroスタイルに化けさせるデモを行っています。以下のようにBlendをつかってHTML5/JavaScriptも編集できるので、あたかもBlendがWebページ編集ツールになったかのようです。

DSC03171

フォトピッカーを利用する場合は、このように完全にMetroスタイルのピッカーが現れ、ユーザがこの部分を開発する必要はありません。またこのピッカーはFacebookなどソーシャルサービスの画像なども接続することができます。これはすべてOS側が用意する機能になります。この辺はWindows Phone 7開発をしたことがある人ならおなじみの機能です。

image

以下のように構成して、Metroアプリ風のレイアウトにしたところで、投稿します。

image

以下のようにストアに登録するデモですが、これがUpload Packageというメニューで直接行えるようになります。

image

以下がストアの画面。残念ながらこれもPreview PCでは対応していません。

DSC03175

このアプリケーションを登録したところ。

DSC03177

このストアはMetroアプリのみでなく、たとえばQuickenのようなレガシースタイルのWindowsアプリケーションの配布も可能とのこと。ギャラリーのみとして、実際の販売はメーカーサイトでというような柔軟な対応も可能だそうです。

DSC03178

Windows8アプリ開発は、Windows Phone 7の様式、すなわちスマートフォン文化に大きく影響を受けた開発環境、アプリケーション販売の仕組みを取り入れるという説明が、わかりやすいと思います。

//build/ 2011 カンファレンス初日 〜 Keynote #1 その1

この記事をクリップ!

遅ればせながらレポートします。初日は、基調講演のみとなっており、全日同じ場所で行われました。

以下は朝焼けに浮かぶコンベンションセンターです。

DSC03098

センター前の通路もまだ人がいないです。

DSC03099

レジストレーション会場の//bマーク。当日にレジストレーションをする人も結構いましたが、ほとんどは前日に行っていた様子です。

DSC03102

初日はちょっと早く7時から食事がとれました。こちらは数千人が一度に座れそうなビュッフェスタイルのレストラン。込み合っていましたが、意外とスムーズに食べることができました。

DSC03100

食事はこのようにピックアップして持っていく形ですが、パンも10種類ほどあり、非常に美味しかったです。フルーツ、ヨーグルトなども完備でした。コーヒーはスターバックス。

DSC03101

アリーナへの入場待ちの列。みんな期待いっぱいで、1時間前からすでにこの状態。

DSC03103

アリーナ内へ入っていきます。全面にプロジェクターが映し出された、ライブ会場のようなセットが見えてきました!

DSC03104

結構早く並んだつもりなのに、このあたりになっちゃいました。日本人の行列魂を見せるべきだったかな?

DSC03105

500インチくらいありそうなサイズのプロジェクタースクリーンが3枚あります。2階席からでも十分読めるサイズです。

DSC03106

パノラマ。ちょっと失敗。

DSC03107

すでにWindows8マシンがゴロゴロしている。。。いろんなサイズのスクリーンに繁殖中。

DSC03109

ビデオが始まってスポンサーの紹介。

DSC03110

そして、シノフスキー キター

DSC03113

当然生で見るのは初めて。

こういう風に映し出されると、何かの宗教のようだ。ジョブズは見たこと無いけど、たぶんそういう印象なんだろうなぁ。

DSC03115

今回の言いたいことのすべてがここに凝縮されているスライド

  • Windows7で動くものはWindows8でも動く
  • Windowsを"reimagine"する。

互換性を担保するというコミットメントを最初に言った上で、どんでん返しをやるぞ、というのがいかにもMicrosoftらしい。事前情報で既存の開発環境を使っている人からの不安が噴出していたことに対する手当とみられる。

DSC03116

シノフスキーの後ろに見え隠れするアイコン類に目が行きました。どんなアプリなんだろう〜?このときはまだDeveloper Preview PCをもらっていませんでしたしExpoも開いていないので。

DSC03117

"Reimagining"はとにかく、UXからハード、クラウドまで及び、とにかく広範囲に影響があります。何しろAPIがごっそり入れ替わるので、そりゃ、マニュアルの読み返しの量は半端ないです。

ダイアモンドパールで覚えたポケモンが、ブラックホワイトで全く出てこないのと同じくらいですから、「APIいえるかな」曲を作って早く暗記したいところですね。

DSC03118

まあ、とにかく開発者会議とあって、メトロインターフェイスの流麗さとか、デザインセオリーとかはまず、おいて置いて、いきなりタスクマネージャで、Windows8のCPUワークロードがいかに低いかを、シノフスキーがデモするっていう、なんともプロフェッショナルな感じ。

テレビ移りとか、見栄えとか眼中に無いみたいで、とにかく、Windowsに求められているものを、確実にやっていくぞ、という意気込みが見えた。

DSC03120

Windows 7のプロセスやメモリ占有率をさらに改善したWindows 8は、それだけで、アップグレードの価値がある。下手するとXPより速い?

DSC03122

とにかく、これまでのWindowsから、何一つ劣化することなく、すべてが改善してくというコミットメントを行ったことで、これまでありがちな、”機能は上がったけど、遅くなるんじゃね?”という危惧をまず一掃できたようです。

Windowsに求められるのは日常の業務をスムーズに行えること、というのが、この公共OSのミッションであるということをしっかりアピールできているように思いました。

画面の派手さとか、楽しさとかは、よりコンシューマよりマーケティングで有効ですが、今回buildに集まってきた開発者のほとんどが業務アプリ向けの開発者であることを考えると、このシノフスキーのスピーチは非常に的を得たものだったと、思いました。

それでも、観客の反応はiPhoneの派手な機能を見た時のそれに近いものがありました(笑)

Windows 8 Developer Preview Deviceの初回起動

この記事をクリップ!

EFIでブートしますが、結構速いです。SAMSUNGロゴ。

DSC03379

しばらくして、Prepairingのプログレスリングが現れる。

DSC03381

最初にライセンス条項に同意して、先に進みます。

DSC03382

次はPersonalizeで、コンピュータ名を決めます。日本語入れたり、いじわるはしないように。

DSC03383

この時、生まれて初めて、Windows 8のソフトウェアキーボードにご対面しました。Windows Phone 7のそれと、そっくりなイメージです。

DSC03384

次はワイヤレスの確認で、hotspotを設定します。

DSC03385

次はSettingで、Express setupが選べたので、そちらにしました。

DSC03387

そして、Windows Liveのアカウント情報を入れます。

DSC03389-2

Log on時のIDを入れます。これは緊急時のためのようで、普段はWindows Liveを利用するようです。

DSC03390

ログインをすると、しばらく、ログイン中画面になり、以下のような状態が数秒続きます。

DSC03391-2

そして、起動すると、Metroデザインのスタート画面が姿を現します。だいたい1、2分くらいあれば完了する感じです。

DSC03395

次はハンズオンを少しやってみようと思います、

Windows 8 Developer Preview Deviceの外観

この記事をクリップ!

それでは、次に外観から。build windowsのラウンジからお送りします。基本的にはサムソンのWindows 7タブレットと同じです。

表面は当然ながら光沢仕上げ。さっき食べたピザなどで、さっそくベタベタ指紋がつきまくっています。内側カメラ、スタートボタンがついています。

DSC03371

会場が暗く、うまく映っていませんが、正面向いて左側のサイド。左からUSB*1、ヘッドホン/マイク、音量キー、マイクロHDMI、DC電源です。

DSC03372

正面に立てておいたとき下側のサイドです。クレードル用の端子が見えます。

DSC03374

右面。右から、電源スイッチ、ローテーションキー、SIMスロットです。

DSC03375

上面にはmicroSDスロットとマイクの穴があります。

DSC03376

最後に裏面。シルバー調で、ヘアライン模様がありますが、それほど高級感はないです。カメラがあります。

DSC03378

中々よいのですが、火を入れない限りは、すごく特別なマシンというイメージは受けませんでした。これから質感を上げてくることに期待します。

次はいよいよ、立ち上げです。

Windows 8 Developer Previewデバイス Unboxing

この記事をクリップ!

入手したものはその日のうちに動作確認は基本なので、さっそくUnboxing!

箱は、buildロゴが描かれた簡素なもの。リーク映像と同じで、箱2つを重ねて、横からかぶせるタイプの意匠カバーがついている。大きさは11インチより一回り大きい。

DSC03361

Developer prototype hardware to use as a test machine.

などと書かれており、ます。はい、テストとしてしか使いません。Windows 7にダウングレードしたりしません。

DSC03362

裏はなぜかヘアラインぽい意匠になっています。

DSC03363

中の箱は無地の簡素なもので、再度にintelのマークが確認できる程度。

DSC03364DSC03365

片方の箱を開けると、ジャーン、見まがうことなき、Windows 8タブレット参上。まだ製品ではないので、フィルム等は張られておらず、いきなりどぅい〜〜〜んです。

DSC03367

本体の下には取説が入ったDVDケース大のケースがあります。

DSC03368

その下はACケーブルとスタイラスが入っていました。もう一つの穴は空きでした。

DSC03369

次は、本体の写真を載せます。

build windows 前日にもらったもの

この記事をクリップ!

昨日のことですが、レジストレーション時には以下のものが配られました。

  • ネームプレート
  • パンフレット
  • ブレスレット

DSC03087-2

ネームプレートの中にはICチップが埋め込められており、今日のタブレット受け渡し時などでスキャンしていました。

パンフレットには、事前にネットに出ていたのと同じことしかかいておらず、この時点ではセッション内容はわからず。会場マップと、Wifitの接続方法とかが書いてありました。

ブレスレットは以下のようなもので、Partyの時に利用されるようです。おそらくICチップが入っています。

DSC03090

なんとなくさびしいグッズですが、タブレット配布の噂があったので、そこは気にせず。

build windowsで配布予定のWindows 8の写真がリーク?!

この記事をクリップ!
Leaked: Picture of Samsung Window 8 Tablet (Build) - WP7Connect

によると、以下のような箱入りのWindows 8タブレットの写真を誰かが投稿したようです。
写真から察するに、これは間違いなくbuild 来訪者に配られるもの(全員とは限らないが)と思われます。サイズは比べるものがないのでわかりませんが、おそらく10インチ前後じゃないかと思います。 実際に手に取るまでは何とも言えませんが、イベント用に配布用の端末であることは間違いなさそうです。

すでにBUILD登録者にWindows 8タブレットが配られる?

この記事をクリップ!
BUILD会場で今日レジストレーションをしてきましたが、その道すがら、1組のBUILD登録者と思しき方が、タブレット端末を手にして、記念撮影をされていました。撮影端末はiPad2とわかったのですが、撮影されている方の端末は後ろから見るとよくわからないので、回り込んでみると、そこには見まがうことなき、タイルインターフェイスが写っていました。 それはWindows 8?と聞くと、Yesと回答が返ってきたのですが、よく見ると、タイルが3行になっており、おそらくMosaicあたりを乗せたEeePadでは無かったのかな、と思っていました。 ですが、以下のように、実際に明日発表のはずの、Windows 8端末をゲットし、その標準Twitterクライアントであると噂される、Tweet@ramaを使ったTweetを行った人がいるようだ、という記事があります。

Some BUILD bloggers already using Windows 8 - WMPowerUser

MyMicrosoftLife reports that some bloggers at BUILD have already been given Windows 8 computers, with Paul Thurrott above for example tweeting using the Windows 8 Tweet@rama app.


先行して公開された人が、やっちゃった感じなのか、はたまたフェイクなのか、あまり詮索する余地がなさそうですが、少なくともWindows 8発表について、近づいているという実感をわかせる話題でした。
Follow us on
Windows Phone 比較 Pivot Viewer
comparingchart
おすすめ








記事検索
Application
primaryImage Download-JP-Med
Night Meets Light

screenshot_99 Download-JP-Med
Weekend Overdrive

primaryImage Download-JP-Med
家政婦のMTA
Profile
Google Sitemaps用XML自動生成ツール
Archives
アクセスアップ
相互リンクをしてページランクアップ!
検索エンジン登録
楽天
  • ライブドアブログ