ユーザー視点ではWindows 7は間違いなくWindows Vistaのマイナーバージョンアップで、Windows 3.0から3.1の時のようなパフォーマンス改善とUIのブッシュアップが主になるが、開発者から見た場合の一番大きな変化はグラフィックに関するプログラミングモデルの変更だろう。
Windows 7では今までWindowsグラフィック/印刷の主体であったGDI/GDI+は下位互換性のために存在し(レガシーとはそう言うことだ)ネイティブなグラフィックAPIは新しくできるDirect2D / DirectWriteになる。しかし、これのプログラミングモデルはDirect 3Dの物で、GDI/GDI+のそれとは文化が違いすぎる。 一般的な業務アプリケーションやビジネスアプリケーションのパッケージソフトウェア開発者にとって、グラフィックのプログラミングはGDI/GDI+の範囲で収まるため、Direct 3Dプログラミングモデルは全く未知の領域で、技術的にも心理的にも(こちらの方が大きい)乗り越えなければならない壁が大きすぎる。
こうなってくると結局その壁を乗り越えてくるプログラマなり、ソフトウェア開発者は少ないので結局GDI/GDI+が使われ続けることになるのではないだろうか。
ただ、直接GDIを使う人間は実際には少ない。多くの開発者はMFC(*1)や.NETのWinFormを経由してGDI/GDI+を使用している。従って、Windows 7 / Direct2Dを成功に導くにはこれらのライブラリをDirect2D化することで、普及を図るような方策が必要になる。啓蒙や本を出すことは必要なんだけど、それだけじゃ誰も手を出さないよ。また、印刷でXPSは良いのだけど、これもDirect2D/Direct Writeで画面上に描画している内容をそのままXPSへ展開させる仕組みをちゃんと作っておかないと、これはこれでこれまた全くうまくいきそうにない。(*2)
なんか僕にはDirect2Dへの以降はそうだなぁMacOS Xの開発でいうとCarbonからCocoaへのスキームチェンジと同じぐらい困難なスキームチェンジのような気がするのです。(逆にCarbon作れと言っているわけです)
参考:
Windows 7 Developer Guide とグラフィックスの改良点 – NyaRuRuの日記
(*1)とは言ってもMFCの場合はGDIが見えているのだけど。
(*2)その前にXPSは良いが、プリンタドライバはどうするんだ?
コメント