memo/20090729
created 2009-07-29 modified 2010-02-11
VisualStudio2008、イケてます。
Windows Presentation Foundation の仕組みを使うと、
C#で
・ボタンやらスライドバーやらを含む画面をパパッと作り
・3Dのモデルとしてキューブを定義し
・スライドバーで回転
なんていうアプリ製作が、いわゆるVBのノリで(GUIのデザイナで画面をつくることができて、ドットキーを押すと補完が働いて、F5押せばすぐ試せて)できました。
こりゃ、2~3年でビジネスアプリも3D化の波に飲まれるよ。昔は「情報可視化」の勉強って、ゲーム屋さんか研究者しかやってなかったけど、業務アプリ屋にも必要になりますぜ、絶対。
必要になるっていうか、こんだけ敷居が下がったらそういうアプリがあふれるよ。
DirectXの開発陣には先見の明があったと思う。その前にも「共通化」とかの考え方はあったと思うけど、要はセンスやタイミングやビジネス設計が悪くて生き残れなかったのでしょう。それを生き残ってこういう形で昇華させたDirectXは、格好いい。
クライアントUI分野はマイクロソフトのひとり勝ちになるだろうなぁ。
これと比較すると、やっぱりJavaはイケてなかったと思う。
7/30 追記:
Javaは、OSのAPIに共通化レイヤを設けようとした。
DirectXは、DOS/V PCの拡張カード(ハード)のAPIに共通化レイヤを設けようとした。
Javaは、さまざまなOSが共通でできるライン(最大公約数=個々のOSができることより低い)を決めた。
DirectXは、さまざまなハードベンダに求めるライン(最小公倍数=個々のカードができることより高い)を決め、ハードでできなければソフトが肩代わりする(でもそれだと遅くて魅力ないよ)、とやった。
Javaが乗るOSのベンダは、Java仕様を満たそうと競争はしなかった(CやC++が速く動くようにすることが、Java対応にもなる。JVMはそれまでのノイマン型コンピュータの域を出ない)。
DirectX対応のハードベンダは、DirectXの仕様(新機能)を満たそうと激しく競争した。結果、淘汰も起こったが、劇的にコストあたりのパフォーマンスがあがった。
私の切り口を一言で言うと「ムーアの法則、それに頼るやつはアホ、それを先導できるひとは賢い」かな。
追記2
3Dモデルの指定についてまず頂点を並べてから、その頂点を使って面を並べるわけですが、デフォルトでは反時計回りの側がオモテになるようで、それで統一しておけばウラ・オモテ指定は不要です。
わかりやすいです。イケてます。
マイクロソフト社って昔はこんなにイケてなかったのに、すごいなぁ。
ただ、面定義は4角形はダメで3角形のみ。まぁこれはこれで良し。
どっちかというと、「4角形もOKです」的な、原理原則に従わず猥雑な仕様だったほうが昔のMSっぽかった気がして、逆の意味での驚きがあります。