以前の「記者の眼」の記事でも触れていたように,Windowsの互換性維持に関する努力は相当のものだ。Windows Vistaでも当然そのはずである。

 Windows Vistaは,いろいろとしがらみを抱えたWin32 APIを捨て,新しいアーキテクチャに移行する絶好のチャンスだった。実際,読者もご存知のように,Windows Vistaの“ネイティブ”APIは.NET互換の「WinFX」になる予定だった。だがそれは撤回され,現在では,Windows VistaのネイティブAPIはWin32で,WinFXはその上に“被さる”ライブラリという位置づけになってしまった。

 この判断は,Windowsが商品であることを考えると仕方がないのかもしれない。もしも「OSをWindows Vistaにアップデートすると,現在使っているアプリケーションは動かない」あるいは「Windows Vistaのフル機能を利用するには,アプリケーションも買い換えなければならない」としたら,「OSのアップデートを見送る」あるいは「別のOSに移行する」という選択肢を選ぶユーザーが増えるかもしれない。

 私自身,Windows Vistaが上記のようなOSだったとしたときに「どうするか?」と聞かれたら,「それでもWindows Vistaにアップデートする」とは即答できないだろう。それに対して,今実際に予定されているような既存のアプリケーションとの互換性を維持したWindows Vistaであれば,新機能や強化機能の利点があるので,恐らくアップデートするに違いない。

 ただ,Visual Basic 6.0のWindows Vista対応に関するマイクロソフトの対応を見ると,互換性に関しては内部でもいろいろと議論があるのだろうと想像できる。

 例えばマイクロソフトの開発者向けWebサイト「Visual Basic Developer Center」では,「Visual Basic チームは,Visual Basic 6.0アプリケーションがWindows Vistaでも“そのまま”動作する互換性を提供することを表明します」としている。

 これに対して,マイクロソフト デベロッパー&プラットフォーム統括本部の大西 彰氏は自身のブログで,「必ずしも,『既存のVB6アプリケーションが変更なしに動作することを保証するものではない』,と認識いただくのがよろしいかと思います」としている。

 一見,相反している情報のように思えるが,前者は「Windows VistaでVisual Basic 6.0の開発環境とランタイムが動作する」ことを意味し,後者は「Visual Basic 6.0で開発したアプリケーションが,そのまま何もしないでWindows Vistaで動くとは考えない方がよい」こと,つまり「Windows Vista上でアプリケーションの動作検証をすべき」ということを意味している。

 これは,OSの互換性を考慮した場合,「Visual Basic 6.0アプリケーションが動かない」とは言えない半面,アプリケーションの互換性を考慮した場合に「他人が作ったアプリケーションの動作保証まではできない」という現実の間で,対応が揺らいでいるように思える。私個人は,Visual Basic 6.0で開発したアプリケーションを,わざわざWindows Vistaまで引きずってくる必要はないと思うのだが。