2013年11月09日

Windows 8.1におけるGetVersionExの挙動の変化に関する話題が注目を集めているみたい

INASOFT「管理人のふたこと」で、Windows 8.1を導入したけどバージョンチェック(GetVersionEx)がうまくいかなくて…という記事を書いたのですが、最近ここへのアクセスが大幅に増加しています。

記事を書いた本人としては、話題が集まっているということ自体はうれしい限りではあるんですが、しかし、マイクロソフト社は、ソフトウェアからバージョンを読み取れなくして、どうするんだろう。

そりゃまあ、「Windowsのバージョンを上げたら、動かなくなったソフトがあった、どうしてくれる!?」って苦情がマイクロソフト社に殺到していて、聞かれる方としては困るだろうけど……。ただ、ソフトウェア開発者側だって、未来のWindowsのバージョンで動くかどうか分からないのだから、ブロックを掛けて(あるいは警告を出している)いるのであって、それをさらに妨害するかのような動きをWindows APIにされてしまうのは、非常に困ります。

すっきり!! デフラグも、いじくるつくーるもそうだけど、Windowsの作りに強く依存して作られているプログラムが、未来のバージョンのWindowsでも動くかなんて、わかりません。最悪、誤作動で環境を壊すことだって、ありえなくもない。

だから、警告表示をしているというのに、マイクロソフト社が勝手にGetVersionEx() APIの仕様を変えて、古いバージョンのOSにしか対応しないプログラムを強制的に動かせるようにしてしまうってのは、いかがなものだろう。結局損するのは、ユーザーでしかないのに。

たしかに、GetVersionEx() API含め、APIの仕様なんてものは、マイクロソフト社の一存で決められる物である。
また、GetVersionEx() APIについては昔から、非奨励っぽいことはマイクロソフト自身も言っていたような気もする。
だから、マイクロソフト社が「勝手にAPIを変えてしまった」ってことを批判するのは筋違いであることは分かっている。

ただ、ソフトウェアにとってAPIは公共空間みたいなもんで、そこをコロコロ変えられてしまうのは、ソフトウェア開発者からの信頼を損なうことになるだろう。

というかそこまでやるなら、マイクロソフトは、Windowsにおいて、過去のバージョンから未来のバージョンまで、アプリケーションソフトウェアに対する一貫した動作保証をすべきでしょう。

それはやらないんでしょうけど。
posted by ayacy at 15:10 | Comment(0) | TrackBack(0) | プログラミング
この記事へのコメント

この記事へのトラックバック