Windows Vista は本当に買いなのか
1.はじめに
 2007/01末、期を熟して Windows Vista が発売されました。
 MSNのホームページなどに掲載されている記事などでは「絶賛」されていますが、Windows Vista は本当に「買い」なのでしょうか。

 話は飛びますが、日本人と言うのは本当にマスコミに踊らされやすい民族だと思います。 普段から納豆を愛食している筆者は、あるある捏造発覚に至ってやっと納豆がまた食べれるようになってホッとしている次第です。
 また、日本人はマスコミだけに限らず、メーカの宣伝文句にも弱く、大手メーカが「こうだ!」と言えば「そうか!」と返すのが日本人です。

 今、Windows Vista は「メーカの宣伝」や「マスコミ」によって色々語られていますが、昔からソフトウェア開発に携わってきた者の立場から、また8bit機の頃からPCを愛用してきた者の立場から、本当に Windows Vista は買いなのかを検証してみたいと思います。

2.マイクロソフトの姿勢と歴史
 マイクロソフトの顔と言える「ビルゲイツ」。筆者は彼のデビュー当時、彼を尊敬していました。
 正にアメリカンドリームを成し遂げたマニア少年だったからです。
 まず、マイコンレベルで対話的にプログラムが組める「BASIC」をマイコン上で実装したのが、若きプログラミングマニア「ビルゲイツ」だったのです。彼は、ライセンスをIBMに任せ、多額の報酬を得ました。そして、その報酬を元にマイクロソフトを設立し、マイクロソフトBASIC として独自のライセンス管理の元に、更に多額の利益を上げ、会社の規模を徐々に膨らませてPCの基本ソフト「MS-DOS」を開発しました。
 MS-DOSも当初は IBM から発注を受け、IBMライセンスとして発売されましたが、バージョンアップ版からは「マイクロソフト」と言う名前を前面に出し、独自ライセンスで販売し、その使いやすさから圧倒的なシェアを獲得し、マイクロソフトが基本ソフトのトップメーカになっていったのです。
 MS-DOSはUNIXと言う古いOSの簡易版とも言える性格の物であった事からも、ビルゲイツの中にはUNIXに対する憧れが有ったと伺う事が出来ます。そのUNIXは、その後X-Windowシステムと言うGUIベースのユーザインターフェースがビジネスシーンでは普及する様になって来ました。
 またマッキントッシュもGUIベースのOSを搭載したPCを発売し、プロの間では評価が高かまりました。
 当然ながら、ビルゲイツも考えたであろう・・・「マイクロソフトもGUIベースのOSを出さなければ・・・」と。
 当時、一方では IBM と手を組んで、MS-DOSを更に発展させ、UNIXのサブセット版程度のレベルまで引き上げようと言うプロジェクトも立ち上がりました。つまり、マイクロソフトとしては、新たな GUIベースのOSである「Windows 1.0」と、MS-DOS (注釈:DOSと言うのは OS の機能の内、ディスクに関する機能に特化した物を指します。つまり MS-DOS は 本来のOS では無くDISK操作専用OSだったのです) を 本当のOS のレベルに引き上げる「OS/2」の開発と2つのプロジェクトが同時進行する形になりました。
 しかし、マイクロソフトとしては、やはり「Windows」を本道にしたかったのです。なぜなら、OS/2 では UNIXのX-WindowやMAC に追いつけないからです。しかし、IBMへは義理が有ります。そこで、OS/2 がある程度完成した時点でマイクロソフトは「ここまでは協力したんだから、後はIBMさんで好きにやって下さい」と引渡し、Windows1本に絞って開発、バージョンアップを進め、やっと「Windows 3.1」まで漕ぎ着けた訳です。
 それまでの Windowsは、全く使い物にならない程お粗末なもので、「マイクロソフトはこんなものを今作ってるんだよ〜」って宣伝する程度の機能しか無かったのです。それが「Windows 3.1」になって、やっと「OS」らしい事が出来るようになりました。
 しかし、それでも本家のMACやUNIXに比べれば、てんで使いにくく、一部のマニアの間でしか使われませんでした。
 しかし、スタートから「時代の波に乗る」と言う点でツキが有る「ビルゲイツ」です。やはりここでも「波」に乗りました。
 それが「インターネット」です。インターネットも昔から有りましたが、やはり一部のマニアしか使わないネットワーク(そもそも軍事用ネットワークですし)でした。それを初心者でも簡単にGUIベースで使える様なソフトをバンドルして発売しました。「Windows 95」です。
 これは「衝撃的」なデビューでした。 今までPCを使った事が無い人、マイクロソフトなんて名前も知らない国民の殆どだった時代に、「マイクロソフト、ここにあり!」と知らしめたソフトウェアだったからです。
 しかし、「Windows 95」は、基本的に「Windows 3.1」の延長線上に有り、その「Windows 3.1」は「MS-DOS」の延長線上だったので、多くは語りませんが、ハリボテ的な仕組みを持たざるを得ない個所が多く、動作は重く、機能的にもホビー向けでしか使えない代物でした。
 そこで、ハリボテでは無い、本当の「Windows」を作ろう!とマイクロソフトは「Windows NT」と言う物を開発しましたが、「ハリボテじゃない=マイクロソフトが初めて挑戦する本物のOS」なので、なかなか安定し、しっかりした製品が出来上がりませんでした。
 が、「Windows NT 4.1」と言う完成形を迎え、ビジネスシーンでも実用されるレベルに育ちました。そして、Windows NT 4.1 をベースに、更にスマートにダイエットし、更に高機能にし、更に安定性を追及したのが「Windows 2000」です。
 その頃、ハリボテベースのWindows 95 もバージョンアップを重ね、「Windows 98」→「Windows Me」などの製品も出しましたが、ハリボテベースの物に更にハリボテな機能を追加していくものだから、益々重くなって行きます。しかも安定性は「Windows 95」の頃から一貫して悪く、評判は余り良くありませんでした。
 ビジネスユースを意識して完成した「Windows 2000」を抜きに考えると、この頃からですね、筆者がマイクロソフトを嫌いになり始めたのは・・・なぜなら、我々ユーザは、OSの原則である「安定性」と「軽動作」を求めているのに、なぜマイクロソフトは素人ウケする機能追加ばかりして、「安定性」や「軽動作」を悪くするのか!
 しかし、筆者は「Windows 2000」が有りましたので、そんなに腹も立たず、Windows 98時代から、既に XP より快適な環境でPCを触っていました。

 その様な状況の中、マイクロソフトも悩んだのでしょう。素人ウケする機能追加と、Windows 2000 の「安定性」「軽動作」を両立させないとユーザは離れていくのはちょっと考えれば分かる事。既に、「Windows 95」の登場により、「PCの全くの素人」だった人々を「PC初心者〜中級者」に育ててしまったマイクロソフトの自業自得です。もう、人々を「ホビー」だけで騙し続ける事は出来ない状況になったのです。
 そこで登場したのが「Windows XP」でした。これこそ、「Windows 2000」をベースに、Windows Me の機能を付加したものでした。
 が、当然、Windows 2000にホビー向けの余計な機能をゴチャゴチャ付けた訳ですから、Windows 2000よりは重くなります。
 しかも、筆者的には「小さな親切大きなお世話」と思える機能も沢山付加されてて、バックグランドで色々なプログラムが動いています。
 当然、何かアプリケーションを動かした際の反応速度は、Windows 2000に比べて「重く」なりますし、OS自体が肥大化してますから必要なスペック(メモリー量やCPU速度)も高くなります。
 この辺りから、本気でマイクロソフトに腹が立ってきました。 なぜなら、筆者としては Windows 2000さえ動いていれば、XPなんかいらない訳ですが、その Windows 2000 のサポートが悪くなってきて、XPをごり押しする姿勢が有るからです。
 ユーザは、ハードウェアの進歩により、快適な環境を享受したいのです。その為に、新しいハードウェアが出れば買い換えるのです。
 なのに、マイクロソフトのOSのバージョンアップがそれを台無しにします。
 たとえば、CPUを Pentium3の800MHz と言う古い物から、Pentium4 3.0GHz と言う新しくてとっても速いCPUに乗せ変え、メモリも増設したとしましょう。 同じ Windows 2000 であれば、「おおおお素晴らしい反応速度になった!! これは快適だ!」と思えるのです。
 しかし、Pentium4-3GHz + Windows XP にすると、 Pentium3-800Mhz + Windows 2000 の時と、大して変わらない速度になってしまいます。(と言うのは少々大げさですが・・・いずれにせよ、かなり損した気分にさせられるのは事実です)
 つまり、マイクロソフトが、OSをどんどん重くて大きいものにして行く姿勢を変えない限り、ハードウェアがどんなに進歩しても、いつまで経っても快適な環境は得られません。
 とは言っても、UNIXと言うマニアックな環境が苦手な筆者として、他に選択肢が無いのも事実で、だから一層腹が立ってきます。

 その様な状況の中で発売された「VISTA」です。 もうお分りの事と思いますが、マイクロソフトのそんな「駄目姿勢」の元で開発された「VISTA」です。以下に、VISTAがどんだけダメOSなのか、検証します。

3.Vistaの主な目玉機能を叩く

・見やすく大きなアイコン!
 全くいりません。 XPでも十分に大きなアイコンが表示出来ますし、目の悪い人は解像度を下げれば全く済む事です。 今以上大きなアイコンを表示させても可視性の低下、リソースの無駄遣い(メモリ・HDD)しか生み出さず、デメリットばかりです。

・より初心者に分かりやすいインターフェース!
 先にも述べたとおり、Windows95の時には必要な要素でした。しかし現代では、既にWindowsを知らない人の方が少なく、殆どの人はWindowsに慣れてきています。その様な状況で皆が望むのはやはり「安定性」と「使い勝手の向上」では無いでしょうか。そこへ「安定性追及」や「使い勝手向上」に掛けるコストを削って「初心者向けインターフェース」にコストを掛ける意味が全く分かりません。

・インターネットエクスプローラ7でセキュリティ向上!使い勝手も向上!
 こんなの嘘っぱちである可能性が過去の歴史から考えて非常に大きいです。過去、インターネットエクスプローラ(以下IE)がバージョンアップした直後から安定して動作する事は「皆無」でした。殆どの場合、サービスパック2が出る辺りで安定し、セキュリティホールも無くなるのではないでしょうか。また、タブウィンドウでブラウズ出来るから便利との事ですが、この新しい実装はまだかなりのバグを含んでいて、IE6のタブブラウザ無しに比べると頻繁に暴走します。
 一番の問題は、VISTAは買った時点で既にIE7が組み込まれていると言う事です。不安定なIE7をアンインストールしてIE6へ戻すのもVISTAでは簡単では有りません。
 そもそもセキュリティのしっかりした大手上場企業では、セキュリティ問題の多いIEの使用を禁止してFireFoxを使わせるケースも多々有るくらいです。
 また、タブブラウズやポップアップ抑制機能等はFireFoxに1日の長が有り、IEよりも断然安定しています。まぁ、FireFoxもダウンロード系やプロセス制御に弱い所が有ったりしますので筆者はIE6とFireFoxを用途によって使い分けています。

・マルチメディアに最適!
 これは完全な「嘘」です。プログラムの実行環境としてXPよりも悪くなっているVISTAです。
 OSが動くだけで多大なCPUパワーを使っているVISTAです。
 マルチメディア関連のアプリケーションは結局は自分で使いやすいものを後付で自分で探して環境を整える必要が有ります。中途半端なおまけマルチメディア用アプリが1個や2個ついているからと言って「VISTAはマルチメディアに最適!」等と言うのは全くの「詐欺」行為でしょう。
 また、VISTAで出来る事の殆どはXPでも出来ます。しかもVISTAよりも安定して軽く速く動かせるのです。

・エアロがカッコイイ!
 だからなんなのでしょう? こんなの面白楽しく使うのは最初だけです。 見飽きれば、ただの超重たいUIにうんざりして、お蔵入りにされる事請け合いの機能です。
 そんなくだらなく、グラフィックパワーを馬鹿みたいに浪費するUIにきっと膨大なコストを掛けてるVISTAです。肝心な所にコストを掛け、UNIXで簡単に出来る事や、UNIXより優れた機能を生み出すべきなのに、その辺が全くダメなVISTAです。

4.安定性の問題
 先にも述べた通り、安定性は Windows 2000 が一番です。XPではコアが2000と同じなので、安定性もかなり良いのですが余計なバックグランドが多かったり、また一部のドライバが2000とは違うので、2000より安定度の増した部分も若干有りますが、不安定になった部分の方が多いです。更にVistaの場合、コアやドライバが2000やXPとは全く別ものになり、余計なお世話なバックグランドが更に多くなるVistaですので著しく不安定になる可能性が非常に高いです。
 また、XPや2000で動いていたアプリケーションがVistaでは動かないケースは既に幾つか報告されています。

5.その他決定的な問題
 少々専門的な話になりますが、Windowsのプログラムを動かす仕組みとしてAPIと言うのが有ります。これはOSが用意している「プログラムを作る為の部品プログラム」みたいな物です。
 全てのアプリケーションは、最終的にこのAPIに辿り着きます。つまり、このAPIがどれだけ優れているか、どれだけ早く動くか、どれだけ安定して動くか・・がOSとして全体の安定度に繋がる訳です。
 MS-DOS時代は名前こそ違うものの、やはり同じ様なAPIが有りました。この時のAPIは最もコンパクトで且つ高速に動くものでした。
 しかし、Windowsになってからは、MS-DOSよりもとっても大きく、複雑で動作速度もやや遅くなりました。しかし、CPUパワーの進化がそれを補っていました。

 話は少々横道にそれますが、SUNが JAVA と言うプログラミング言語とプラットホームを開発し、その斬新さが世間を賑わせみるみる浸透して行きました。それらは「無料」で提供された事やOSを選ばずに動作する「マルチプラットホーム」で有る事も大きな要因でした。
 しかし、いつも一番でないと気に入らないマイクロソフトは、C#と言うJAVAに対抗する言語を生み出したのでした。しかし、いくら言語構造がJAVAに似ていても所詮はWindows依存な言語環境です。
 中々 JAVAに勝てないC#を強引に一番にする為に、マイクロソフトは様々な手段を取りました。(詳細は割愛しますが、かなり嫌らしく姑息な事をやっています。)
 そして、JAVAと同じく、他のOSでも動く環境を整える為の技術も開発しました。それが .NETフレームワーク と呼ばれる物です。
 遥か昔、BASICの頃、BASICはインタープリタと言って、プログラムを機械語と人間語(?)の中間言語に落としてメモリに保存し、実行時に1行ずつ機械語に翻訳する仕組みなので動作速度は遅いのです。時代の流れはより高速に動作する一括翻訳型の「コンパイラ」が主流になって来ました。
 この時代、p-Pascal等インタープリタとコンパイラの更に中間的な仕組みを持つ言語も有り、この時既にマルチプラットホームを意識した言語は存在していましたが、やはりその時代に求められたのは「速度性能」だったので、コンパイラが生き残って行った訳です。
 その様な中で、ある面時代に逆行したインタープリタである「JAVA」が人気を得たのは、壊滅してしまった「マルチプラットホームをカバーする中間コード形式」だったからです。
 つまり、選択肢の一つして「有り」だとユーザ(開発者)は思った訳です。
 なので、マイクロソフトはBASICを捨てて速度性能を追求した開発環境を提供して来たのだから、そのポリシーを貫くべき所を、JAVAと同じ土台であり、マイクロソフトとしては先祖返りでもある中間コード技術「.NETフレームワーク」に力を入れて行ったのでした。一重に「SUNに負けたくない」と言う一心でしょう。
 しかし、現実は「.NETフレームワーク」はマルチプラットホームを実現する環境に成り得ていません。せいぜい、Windows環境の閉じた中で、多様な言語から共通したAPIを使える程度で終わっています。
 その程度のメリットの為だけに、「中間言語」技術を使って実行速度を犠牲にするのは余りにデメリットが大きい為、開発側としては.NETフレームワークを使うシーンは余り多くは有りません。 特に、.NETフレームワークを使わないと何も出来ない C# も滅多に使わない言語です。
 その様な状況は、マイクロソフトにしてみたら面白く有りません。SUNに勝つ為に用意した技術(戦略)なのだから、開発者はもっと使えよ!と言いたい訳です。
 とうとうやりました。マイクロソフト!
 VISTAでは従来のAPIを捨てて、.NETフレームワークを基本としたAPIに乗せ変えました!
 つまり、高速で動かなければならないAPIで有るにも関わらず、遅いAPIにしてしまい、強引に開発者に使わせようと言う訳です。
 おそらく互換性の為に今までのAPIも使えるはずですが、きっとマイクロソフトは開発者に向けてこう言うでしょう。「古いAPIは互換性の為に残して有るだけで今後サポートされる保障は有りません。新しく開発するアプリケーションでは新しいAPIを使ってください」と。
 つまり、今まで作られたアプリケーションはVISTA上でもそこそこの速度 (とは言えXPよりも重くなるでしょうけど) で動いてくれるはずです。※1
 しかし、今後VISTA専用アプリとして作られたプログラムは、重たいAPIを使っているのでもっと重くなるのです。
 もはや我々は、CPUパワーやメモリインフレがもっと向上して救済してくれるのを待つしか有りません・・と言う状況になるのです。

 VISTAがどれだけ重たいのかの指針として、MSNで配布されているIE7の動作条件を挙げてみましょう。
 Windows XP SP2 の場合 - 233MHz以上のCPU
 Windows VISTA の場合 - 1GHz 以上のCPU
だそうです。
これは何を意味するかと言うと、XPの方がVISTAより4倍以上速く動作すると言う事ですね。逆に言えば、VISTAではXPより4倍遅くなると言う事です。
 更にどれだけ重くて大きい化け物なのかを示す指針として、VISTAを動かす最小構成とXPの最小構成を比べて見ましょう。
条件 XPの場合 VISTAの場合
必要なCPUの動作周波数 300MHz以上の32ビットCPU 1GHz以上の32又は64ビットCPU
必要なメモリ 128Mバイトのメモリ 1Gバイトのメモリ
必要なグラフィック性能 800 × 600以上のグラフィック表示性能 (つまりグラフィックボードはいらない)
WDDM ドライバ対応の DirectX 9 グラフィックのサポート、最低でも128 MB のグラフィック メモリ
ピクセル シェーダ 2.0、1 ピクセルあたり 32 ビットの色深度。
(つまり NVidia 7600クラス以上)
必要なディスク容量 2Gバイト 40Gバイト

 この最小構成と言うのは、本当にOSだけを起動するのに必要な構成で、実用上はかなり厳しい構成です。例えばXPの場合、CPUは1GHz程度無いとサクサク動きません。またメモリも512Mバイト程度は最低でも無いとサクサク動きません。
 ディスク容量にしても、ウィンドウズアップデートやスワップ領域の事だけを考えても20Gバイトは必要です。
 これをVISTAに当てはめてみると・・・CPUは最低でも 3GHz程度無いとサクサク動かず、メモリも4Gバイト無いとサクサク動かず、更にディスク容量も400G程度無いとすぐに一杯になってしまう計算になります。
 それだけのスペックのPCを用意して初めてXP並みの速度性能になるのです。

 いつかはきっとマイクロソフトの戦略に従わされた開発者達のアプリケーションが沢山流通し、もはやXPではにっちもさっちも行かなくなる日が来るでしょう。
 しかし、その頃にはきっと VISTAもサービスパック2ぐらいまで出ていて動作も安定し、また、その重たいOSを頑張って動かす程度にはCPU性能やメモリインフレも向上している事でしょう。 (今、30万円程度のスペックのPCならきっと10万円台で買える時代のはずです。) ※2
 それまでは、XPを使うのが「正解」だと筆者は信じて疑いません。

2007.03.16 Toshi

※1 - なぜ同じAPIなのに XP 上よりVISTAでの方が重くなるのかと言いますと、OSそのもののCPU占有率が違うと考えられるからです。当然、VISTAの方がバックグランドで色々大きなお世話的な処理が沢山動くでしょうから、その分重くなる訳です。また、そのバックグランドで動くOSの基本動作が、APIに.NETフレームワークを使っていた場合、劇的に重くなる事も考えられます。それはそれだけCPU占有率が跳ね上がることを意味するからです。

※2 - 現在メーカが売っているPCは、その殆どが「VISTAが快適に動く!」みたいな宣伝をしていますが、大嘘です。騙されてはいけません。特に初心者は大々的に宣伝されている「VISTA キャパブルPC」と言う訳の分からない言葉に騙されやすいと思います。
 キャパブルPCの意味は「かろうじてVISTAが立ち上がるよ」と言う意味なのです。
 また、VISTAにもグレードが色々有りまして、一番安い物だとXPに毛が生えた程度の物になりますが、キャパブルPCで動くとされているのは間違いなく、その一番低いグレードのVISTAだけです。
 一番宣伝されているVISTA(一番VISTAらしいVISTA)が動くPCは「VISTA プレミアムレディPC」とひっそりと紹介されており、大抵は30万円前後またはそれ以上に高額なPCだけなのです。
 そんなPCでも、「サクサク」とは動かないでしょう。

2007.04.20 追伸
参考:Windowsの歴史について詳しく書かれたページを見つけました。
http://journal.mycom.co.jp/special/2006/windows20years/menu.html
興味の有る方は参考になると思います。

2007.05.20 追伸
 そうそう、書き忘れていましたが私が最近マイクロソフトを嫌いになった理由はまだ有りました。
 MS-DOSの頃よりWindows95、Windows95の時より Windows2000、Windows2000の時よりWindowsXPと年々殿様商売度に拍車が掛かってきているのも嫌気が差す大きな要因です。
 不完全でバグバグなOSを販売しているにも関わらず、サポートは有償とは何事だ?!と怒りたくなります。その癖、認証などの技術にコストは掛けてせこいですし。
 筆者がWindows2000からXPへ乗り換えたのも、Windows2000でIEEE1394に障害が有ったせいです。その障害も、WEBで手間隙掛けて調べて初めて分かるレベルで、それ自体商売として問題だと思いますが、更に問題なのはWindows2000ではその障害を直すつもりが無いと言うとんでもないサポート体系なので、仕方なくXPに乗り換えました。
 しかし、XPに換装してもIEEE1394に関して別の障害が有って、結局まともに使えていないと言う現状が有ります。確か既知のバグだったと記憶していますが、再確認するのも非常に面倒です。なので、サポートに電話して障害なのか、何かしらのパッチを当てれば回避できるのかを確認しようとすると、「有償」なんですよ!信じられません。
 高い金を出してXP-Proを買った意味が全然有りません。
 OS位はタダ同然で配布して、アプリケーションで稼ぐとか、そんなスタンスならサポートが有償でも納得出来るかも知れませんが。
 ソフトウェアは無償になるべきで、技術者は保守で稼ぐ時代を目指すべきだと言う議論が有ったのはもう20年以上も昔で、だからこそUnix系のGNUプロジェクトやPDS、フリーソフトウェア等の文化が育って来た背景が有ります。
 そして、OSでは無くてサポートで稼ごうとする姿勢を持っているのが、Linux系の販売会社ですね。Linux自体は元々タダのOSで、サポートは一切有りません。そこに色々なアプリケーションをバンドルしたり、設定やインストールを支援するソリューションを用意したり、マニュアルや電話サポートなどに値段を付けたのがパッケージ販売される訳です。
 良い姿勢ですね。マイクロソフトも少しは見習いなさい。

 それはそうと、今までマイクロソフトは開発環境をとっても高価な値段を付けて販売していました。
 しかし最近、VisualStudio2005系の開発ツールに無料のグレードを作って配布しています。
これは一見、上記の様な正しい姿勢に見えますが、実はそうでは有りません。
 姑息な裏魂胆が有ります。
 それは、標準APIに .Netフレームワークしか使えないと言う制限を付けたグレードだけを無償配布しているのです。(厳密に言えば、過去のAPIは使えますが、一般的にこれまで使われてきたMFCと言うAPIが使えなくなった為、楽にプログラミングをする事を目指せば必然的に.Netフレームワークを使うしか無いと言う状況になるのです。)
 これで一気に.Netアプリを流通させるつもりらしいです。ええもう、今後はフリーウェアから製品アプリケーションまですさまじい速度で.Netアプリに切り替わって行く事でしょう。
 プログラマーにしてみれば、今まで高価だった開発環境が無料で入手出来る魅力は非常に高いのです。
 ですので、特にフリーウェアの作者などは大喜びで.NETアプリを大量生産して行くでしょう。
全く、一層嫌な世の中になりそうです。

この記事に関するご意見・ご感想はこちらまで! どしどしお寄せ下さい。
<TOPに戻る> <トピック一覧に戻る>