メルマガを出してなかったらまぐまぐから怒られました
・・・ので、メルマガを停止にされない為に書いた内容をblogにも転載してみます
 
--------------------------------------------
今回のメルマガに内容はありません
--------------------------------------------

まぐまぐ発行のメールマガジンの場合、
半年とかあまりに長期間発行が無い場合メルマガを停止しますという
警告が来る事がありまして、今回その警告が来てしまいましたので
特に内容は無いのですがメルマガを流させて頂きます

(※)最近はフリーソフトのリリースとかしてませんでしたが、
「じゃあもうリリースしないのか?」って言うと、色々と技術トピックやネタは仕込み中であり
タイミングと時間が取れる状況になったら大量リリースする事も
あり得るので、その時の為に情報配信用のメルマガは
存続させときたいという状況だったりします

--------------------------------------------
XP→Vista移行期のパソコンソフトの開発状況について
--------------------------------------------

・・・で、本気で内容が何も無いとあまりにも酷いかなとも思いましたので
XP→Vista移行期のパソコンソフト開発状況について書いてみたいと思います

雑誌とかホームページ、blogなどで色々書かれているとは思いますので
今更な話ではあるのですが、XP→Vistaへのバージョンアップというのは
「開発者にとってもユーザーにとっても非常にめんどくさい話」となっており
私とかですと(Vista Ultimateは買ってあるものの、まともにインストールもしてない状況で)
どうしたもんかと迷ってる状況だったりします
(今現在で言うと、今更感もありますがCore2Duoで新PC作ってそこにVista入れて
メインマシンにするかVista/XPのデュアルブートにするか?とか迷ってたり、
新PC/旧PC問わずVirtual PCとかにVistaインストールする程度で済ませようかとか
色々考えているのですが、どれを選択しても不満が残りそうで先に進めない状況が続いてたりします
何が問題かって言って、開発環境がVistaで動かないケースすら少なからずあるので
Vistaのみをメイン環境にはできないんですよね・・・)

(個人的な印象ではありますが)今回の2000/XP→Vistaへの移行というのは
(ある意味大騒ぎになった)95/98/Me→XPへの移行の際の比なんてもんじゃなく
10年以上前のWindows3.1→95への移行(16ビットWindows→32ビットWindowsへの抜本的移行)
に匹敵するインパクトがあるんじゃないかと思えて仕方ありません
(一見、XPからの正常進化版みたいにも見えるVistaで、必ずしもそれで間違ってない要素もあるのですが
一方で「全く別物」と言える様な大きな変更も実際にあり、正直どうしたらいいのかわけわかんない状況と言えます。
一言で言えるのは「新しい機能やインターフェース加えるのは構わないけど、過去の互換性はちゃんと
維持して欲しかった」か、逆に「いっそ全然別物になったと言って欲しかった」のどちらかになります。
中途半端に互換性が高い部分と全然互換性が無い部分が混在している為、繰り返しますが
ユーザーとしての立場だけでなく、開発者の立場としても「どうしたらいいもんだか訳わかんない」というのが
正直な所です
(そうはいいつつも「どうすべきか」を決められつつあるので、こうやって文章として書ける状況になってる訳ではありますが)

(1)互換性が無いケースがかなりある(Vista OSとXP OSの違い)
Vistaを使ってるユーザーから聞こえてきてる話だとは思いますが、
XP時代に使えていたソフトやハードが(けっこうな率で)使えなくなっています
全滅とかそんなレベルではなくてむしろ10本ソフト使ってるなら7本くらいはそのまま
動く位の率なのかもしれませんが、動かなくなった10本中2〜3本のソフトを
「じゃあ、仕方ないか」と諦められるかどうか?という話だと思います
ぶっちゃけて言うと、諦められない率がかなり高いケースが多い為Vistaに移行しないといけないんだけど
移行できないっていう私みたいな人が少なからずいる状況なんじゃないかと思います

細かい話をするとキリがなかったり技術寄りな話になってしまいますので端折りますが
抜本的な部分で変更された部分がかなりあり、互換性が一見高いようでいて
実は使えなくなるソフトが多かったり使えなくなる機能がでてきたりなはずです
(それは98/Me→XPへの移行より大変な話なんじゃないかと思えるのと、開発者側から見ると
実は更に深刻な原因だったりして、例えばTVチューナー/キャプチャー製品を作ってるメーカーの
カノープスさんがVista対応をかなりの数で放棄したニュースとかからも分かるかと思います。
「オーバーレイという概念が無くなった」という致命的な変更は分かりやすい例ですが、
実際そんな次元ではなくてVistaの画面表示周りは
(互換性がある様に見えて)全く別の物に変わっています。
従ってGDI−APIというこれまでの画面表示プログラムで作ってあるソフトでもGDI互換機能で
動いてはいますが、互換性や速度面でのパフォーマンスなどがどうなるかは開発側から見ると
考える前から嫌になる話です)

「互換性が無いならXPを使い続ければいいんじゃないか?」という話もあるかもしれませんが、
実際にはマイクロソフトがいつかはサポートを打ち切りますので(2014年とか)
いつかは移行しなくてはいけない話です
また「DirectX10はVistaでしか動かない」とか「Vistaでなければ動かないソフト」も
今後比較的短期に出てくる可能性も高いので、短期的に大問題になるケースもあります
本来Vistaの互換性がもっと高ければ何にも問題がなかった話なのですが、こういう状況の為に

・XPを使い続ける
いつかは変えないといけない時が来る/Vista専用のソフトが使えない

・Vistaに変える
XPで使っていたソフトやハードのいくつかが使えなくなる(思っているより深刻な可能性大)

・XP/Vistaをデュアルブートで使う
妥協案としてこれかもなのですが、デュアルブートにしても一歩間違うと
環境を壊しかねない危険性があったりと、この方法にも問題点は多いです。
何より一般の人には敷居が高いはずです

(2)互換性が無いケースがものすごく深刻(32ビットVistaと64ビットVista)
私が秋葉原でVistaを買ったのはVista発売の1週目か2週目くらいだと思ったのですが
その前後に確認した範囲では雑誌などの情報や、販売店での売り方を見る限り
これまでの「WindowsXPは基本的に32ビットOSであり、64ビットXPもあるが例外的な扱い」
という状況から一変して
「Vistaは32ビット版と64ビット版があり、どっちも同じ扱いです」的な売られ方をしていました
もちろんちょっとPCに詳しい人や、そういう人からアドバイスを受けるなどで
32ビット版Vistaの売れてる数の方が多いらしいのですが、開発側からすると
「基本的に対応OSは32ビットだけを押さえておけば良い」という状況から
「32ビットも64ビットもどちらでも動かなければいけない」という話になったのは
かなり深刻な話です
(どの位深刻かと言うと、XPとWin98/Meのどっちでも同じ様に動くソフト作ってくださいというのと
同じ位深刻です。内容にもよりますが、そういうケースも少なからずあるという話です)

私みたいなアプリケーション開発者には関係ない話ですが、デバイスドライバ開発者や
ユーザーからすると「64ビットVistaでは、これまでのデバイスドライバ(32ビット版)が動かない」ので
64ビット版ドライバでなければ動かないのに、なかなか64ビット版ドライバは出なかったりする
(開発側からすると、本来基本的には不要だった64ビット版ドライバを作らなくなってしまったのは
色々と大変なはず)
(※)ユーザー視点で考えても、XP用に周辺機器を色々使っていた人ほど、
64ビットVistaにするとデバイスドライバが出なくて動かなくて困るケースが多いはずです

アプリケーション側には問題ないかというと、
「実はアプリケーションだって、(本来は)64ビットOSでは32ビットアプリは動かない」です
XP/Vistaの場合は、64ビットOSで32ビットアプリが動く様な機能(WOW64など)がありますので
「一見、64ビットOSでも32ビットアプリも同じ様に普通に動いている様に見えている」訳ですが、
それは一般ユーザーが普通に使ってて感じる話であって、実際にはここで互換性がなくて動かなくなったり
一部動かないソフトなどもでてくる訳です
(少なくとも開発者というか作ってる側は確認しなければいけない・・・ってだけでもかなり負担です)

ではVistaもXP同様に「32ビット版を買って使っていればいいのか?」というと、しばらくの間は「その通りです」
となるのですが、中長期的にはそれもそうでなくなります

真っ先に困るのが、32ビット版のVistaやXPでは「メモリを3Gまでしか認識しない」ので
「4G以上のメモリを使いたければ64ビット版Vista」となるのですが、この問題が解決しないと
1〜2年もしないうちに問題は表面化して大きな問題になっていくかもしれません
(VistaやXPのサービスパックとかで32ビットOSの上限メモリが大きくなるとかであれば多少ましかもですが
逆に原理的に難しい話なのであまり期待できませんし、一方でVista以降ではOS自体が今まで以上に
メモリをバカ食いするので、重いソフト使う人とかゲームやってる人とかで
2Gや4Gじゃ少ないなんて要望は1〜2年後どころかすぐに表面化しても
おかしくない状況です)

(3).NET Frameworkを使ったソフト
実は32ビットOSと64ビットOSの両方で「全く同じ様に動く解決策」はマイクロソフトによって数年以上前からとられています
それは「.NET Frameworkを使って開発したソフト」です

これは一言で言うと「VisualBasicで作ったソフトやJavaで作ったソフト」と同様に
「ランタイム(やバーチャルマシン)の上で動く共通プログラム」というアプローチであり、
「どのOSでも同じ様に動くメリット」がある一方で「ランタイムをインストールしないといけないデメリット」や
「同じソフトならネイティブ開発のソフトよりVBやJavaや.NET Frameworkを使ったソフトの方が圧倒的に遅いデメリット」があり
実は開発環境的には7〜8年前以上の「VisualC++6.0」以降の「VisualStudio2002/2003/2005」などの
実に3バージョンにも渡って、期間的にも5年以上にも渡って.NET Framework開発環境を標準にという方向性が
マイクロソフトからは示され続けてきたのですが、(私含めて)かなりの開発者は「VisualC++6.0」でC/C++開発するとか
開発環境はVisualC++2002/2003/2005にするもののやはり開発言語はC/C++を使うケースがかなり
多かったはずなのですが、今回の「Vistaでは32ビット/64ビットが同列」という状況から
(もっと言うと)おそらくVistaの次のWindowsでは64ビット版しか出ない可能性が高いらしいという状況を含めると
.NET Frameworkを使った開発(言語はC#とかVB.NET)に本気で切り替えざるを得ないという話になってきています

(※)でも、例えば開発ソフトで「Visual Studio 2003」(C/C++製)というソフトと「Visual Studio 2005」(.NET Framework製)という
「見た目上はほとんど全く一緒のソフト」があるのですが、(昔VBのソフトが遅いと思った事のある人なら分かるかと思いますが)
「もう目に見えて遅い」という純然たるデメリットがあるので、開発側は「どうしても使いたくない」っていう傾向が強かったと思うのですが
Vista時代でそんな事言ってられなくなりました
(Vista新機能の殆どが事実上.NET Framework経由でないと開発効率悪すぎて作ってられないという事情もありますが)

・・・で、.NET FrameworkもJavaほどじゃないですが安全性の為に「できない事」があり、そこを突破するには
結局従来通りのC/C++で作った部品を組み合わせるという手法を取らざるを得ないはずなのですが、
ここでも32ビット版/64ビット版の違いや互換性に悩まされるケースがありそうです

「動作速度が遅い」上に「ランタイムをインストールしないと動かない」なんていう「昔のVB」とか「WindowsアプリとしてのJavaアプリケーション」
時代みたいな話が標準になっちゃいましたって話で、実はとっくの昔からそうなっていたのを開発側がユーザー視点で
「これは受け入れられないだろう」って無理してフォローしてきたのがフォローしきれなくなりましたって話だったりもします