Loading…
Transcript

"A Personal Computer for Children of All Ages" Alan Kay 1972

パーソナルコンピュータの歴史は、タブレットの構想とともに始まりました。

UIデザインの方針です。

Macintosh

Windows

Excel

Lotus1-2-3

Microsoftは追いかける競合製品がある時、しっかり研究して成果を出して来ることが多いです。

Internet

Explorer

Netscape

Navigator

?

今回も研究し、切り札を用意してきました。

http://www.flickr.com/photos/69628725@N00/4310564864/

iPad

XBox

PlayStation

SkyDrive.com

SkyDriveのWebアプリ版

WebページをModern UIにする

オープンソースのCSS

Zune

Modern UIのもととなった

Microsoft製デスクトップアプリ

パーソナルコンピューターというものを提案した最初の論文です。

ビル・ゲイツも

スティーブ・ジョブズも

間違いなく熟読していると思います。

GitHub for Windows

2010年

Windows Phone 7

オープンソースで有名なGitHubの公式クライアントツール

Windows

Phone 7

すでに

タブレットPCの歴史

Modern UI

(Metro)採用

Windows CEベース

1991年

2010年

Windows for

Pen Computing

AndroidをModern UIにする

iPad

GitHub for Windows

ビル・ゲイツ悲願のタブレットPCは、Appleが販売するまで普及しませんでした。

http://www.flickr.com/photos/69628725@N00/4310564864/

2002年

Windows XP Tablet PC Edition

あくまでUIデザインの方針なので、MicrosoftのWindows8という枠にとどまらず、デスクトップやWeb、Androidまで、様々な環境で、またオープンソースなどでも利用されています。

Silverlightを採用し、先進的な開発環境

Modarn UI

まあそうかもしれませんが、Microsoftもまだあきらめるには早い。

これからのタブレット時代は、

Microsoftの時代は終わり、Appleの時代になるのでしょうか?

タブレットPC

Windows Phone

もともとは

MetroスタイルUIと言われていました。

Apple

タブレットのみならず、デスクトップPC+マウスでもちゃんと使いやすいです。

これまでのパソコンと同じUIですますなんて我慢できない。

これまでのパソコンと同じプログラム、同じ操作性。

失敗

大成功

Windows Phone 8

Windows8ベース

Windows Phone 7のアプリはすべて使えます。

新しいアプリはWindows8用の開発環境で

Windows8

昔から重い処理を行うとUIが固まるのは普通でしたが、よく固まるアプリケーションは、あまり使いやすいものではありません。

WinRTは全く新しく再設計されましたが、元の.NETの発展形もちゃんと作られています。

非同期の重要性

ModernUIでは

とはいえ今まで難しかったから非同期は避けられてきたわけで、絶対やれとただ言われても困りますよね。

WinRT

50ms以上画面を固めるのは禁止です。

ARM対応のWindows8です。

iOS

Android

Windows APIは動きません。

非同期

Mac OS X

使いやすい

UI

Windows8で、OSのAPIは一新されました。

高い

生産性

.NET Framework2.0

.NET Framework1.1

EAP

.NET Framework4.0

APM

Task

新しい構文では非同期処理を普通の同期処理と同じようにかけるため、普通にプログラムを書くことができ、バグも少なくできます。

大きな粒度

.NETの歴史

WinRT

WindowsAPI

.NET Framework4.5

async/await

WinRTでは、非同期をわかりやすく書くために、構文の追加まで行われています。

.NET Framework 4.5

現代的なAPI

です。

WindowsRT

新APIはWindows8に間に合いました。

そのほかにも全体的に粒度の高い使いやすいAPIになっており、そのためModern UIなど高機能な機能も実装が実現可能となっています。

現在のところはWinRTより機能が多く、機能追加もちゃんとされているため、デスクトップアプリ用にはまだつかわれ続けるでしょう。

WinRT

WinRTアプリは、Windows Storeでしか配布できません。ですから、WinRTアプリは必ず、審査を通っているということです。ユーザーとしては安心できることでしょう。

Windows Store

Windows APIも基本的には消えたわけではないので、デスクトップアプリなら選択肢に含まれます。

古いWinAPIも使えますが、同一アプリケーション内では片方しか使えません。

動的な画面の書き換え

Ajax

入力チェック

HTML

JavaScript

Microsoftのアプリ販売サイトです。

Webページ

非同期通信

動くページ

Web技術

今の時代、Web技術者はクライアントアプリの製作技術は身に着けてしまっています。

凝った動的画面

高度なレイアウト

ファイルAPI

jQuery

HTML5

アニメーション

Windows API

ローカルストレージ

マルチプロセス

Visual Studio

また、ここで公開しているアプリはすべて審査後のものであるため、安心です。

JavaScript

Microsoftは開発者を含むエコシステムを重視しており、サードパーティーを含めて効率的にアプリケーション開発ができる仕組みを整えています。

HTML5+JavaScriptは、Windowsのネイティブ言語の一つです。

WinRTの時代には、Web技術者は慣れた技術を使ってWindowsネイティブアプリを作れます。

開発エコシステム

ここで公開したアプリは、Microsoftに料金の30%を取られますが、その代わり販売サイトとか小売店は必要ありません。

現在

誕生

1985年

技術者の大幅増加が見込めます。

2012年

Windows1.0

これまでの歴史

APIの保守はいよいよ限界で、背水の陣です。

WinRTでは、3種類の言語がネイティブに使えます。

Team Foundation Server

Expression Blend

もうすぐ30歳。保守はもう無理、という状態だそうです。

Appleと比較して、審査の結果は丁寧に教えてくれるということです。

Longhorn発表時にWindowsAPIを置き換える.NETベースの新APIとして発表されました。

2003年

WinRTは改良したCOMであり、仮想関数程度のオーバーヘッドC++から利用することができます。

COM

完全に中間言語ベースのAPIは時期尚早だったのか、徐々に発言がトーンダウンしAPI置き換えの話はなかったことになりました。

WinRTのクラス構成は。NETを基にしており、ほぼSilverlightとおなじです。

.NETのような中間言語を利用するわけではないので、C++からもパフォーマンスを心配することなく呼び出すことができます。

WinFX

Silverlight開発者に朗報です。あなたはすでに、Windows8開発者です。

そして、WinRTのクラスは、.NETからは.NETクラスと同じように呼び出せます。

その残りが、.NET Framework 3.0です。WPFやWCFが含まれます。残ったものだけでも結構なものですが、置き換えには失敗しました。

C++

.NET

C++を拡張した、C++/CXという言語を利用すると、WinRTオブジェクトが簡単に扱えます。

Microsoft独自拡張を使いたくないなら、テンプレートライブラリを使うこともできます。

C++/CX

.NETと同じ設計のクラスを、.NET.NETと同じように呼び出せるのですから、それはもう.NETのクラスと同じです。

それだけ同じならノウハウもほぼ同じなので、これまで通りに開発ができます。