Windows 7について考えてみた。

はじめに

Windows Vistaの評判があまりよろしくなくて、巷ではすでに次期WindowsであるWindows 7への期待と噂が流れています。アプリケーションやGUIの側面からWindows7の姿を予想する記事やよく見かけるので、ここではOSの機能であるAPIなどについての側面からアプローチしてみようと思います。と言っても、現OSのWindows Vistaについてその経緯を振り返りつつ、問題点をみつけていくことで、なんとなく見えてくるのでは?といった流れです。

Windows 7について考えてみた。 2008年08月06日

Windows Vistaは、Longhornと呼ばれていた当初は.NET Framework(Win FX)をネイティブで実行するOSとなって、従来のWin32APIを置き換える予定でした。ところが、実際のWindows Vistaは.NET Frameworkを最初から搭載してこそいますが、これは従来のWindowsに.NETFrameworkをインストールしたのと同じように最終的にはWin 32 APIを実行している構造になっています。

理由はMicrosoftのみが知るところでしょうが、いくつか考えられます。
1..NET Frameworkのような高度なAPIには当時のパソコンのスペックが非力だった。
2.サードパーティ製アプリケーションの.NET Frameworkへの移行が少なすぎた。

とはいえ、Windows Vistaが.NET Frameworkに注力したOSであることには違いがありませんし、いずれも時間とともに解決するのではないかとMicrosoftは考えていたようです。

ところが、現時点でも.NET Frameworkの普及は一部の企業向けアプリケーションを除いてほとんど進んでおらず、むしろ.NET Frameworkの影が薄くなってきているように思えるくらいです。

最大の理由は、Web 2.0時代への突入によるネットワークサービスとアプリの台頭で、すでに猫も杓子もWEBアプリな有様で、ローカルで実行するアプリケーションでの話題自体がめっきり少なくなってきたことだと思います。背景にはローカルアプリは古くからある大御所ソフトベンダーが幅を利かせていて、新規参入が難しいという背景もあるのかもしれません。

.NET Frameworkのメリットは、言語やプラットホームに依存しないことや、セキュリティなど様々なものがありますが、MicrosoftはWin32APIに比べて簡単にアプリケーションを開発できることを大々的にアピールしていました。

ところが、大御所ソフトベンダーはすでにWin32 APIで書かれた良質な資産をもっているので、大規模なソース書換えというデメリットに見合うメリットはないと言えるでしょう。メリットがあるのはゼロからプログラムを作る新規参入の場合ですが、上記の理由で新規参入自体が少ないので結果的に.NETFrameworkへの移行が進まないということになっているようです。

Windows Vistaは.NET Frameworkに注力した結果、使われてない機能(.NET FrameworkとWPF[Avalon]など)の開発に時間と手間をかけて、使われている機能(Win32APIとGDI)はほとんど変わらないOSとなってしまいました。

もともと、Windows は登場するたびに重くなって、なんだかんだと文句を言われることはいつものことです。ただ、それに見合うだけの『使える新機能』があるので、パソコンの高速化とともに徐々に受け入れられてきました。ところが、今回はその新機能の出番があまりにも少なく単に遅いだけということになってしまいました。これではVistaの評判が悪いのも納得がいきます。その一例がWindowsAeroでしょう。

Windows Vistaの評判でよく聞かれる『見た目ばかり派手で...』というフレーズ。実はWin32 APIでできて.NET Frameworkでできなかった機能のひとつがDirectX関連で、この派手なGUIを提供するWindows Aeroは、.NET FrameworkでDirect Xを利用できるようにしたときの派生品のひとつだったりします。.NETFrameworkでDirect Xを使うという当初の目的が利用されない以上、派生品であるWindows Aeroばかりが目を引き、派手になっただけという印象を与えてしまったというのが事の真相です。

話を戻して、これらの現状を整理すると、.NET FrameworkがWin32 APIにとってかわるための障壁は時間とともに解決するような問題ではないように思えます。となると、MicrosoftはWin32APIを今後も使い続けると腹を決めて、これの強化に努めるのではないかと考えられます。

ところで、最近ネットワークアプリ関連のホットな話題として、AdobeのAIRとMicrosoftのSilverlightが挙げられます。このSilverlightはウェブアプリのプラットホームで、.NET FrameworkとWPFのサブセットと説明されています。ただ、上記の考察を踏まえると、ローカルアプリ用に開発したこの2つの技術を、今流行りのウェブアプリ向けに方向転換していくという流れの現れではないかと考えられます。

これらを総合してWindows 7と.NET Frameworkの今後を考えると、
・.NET Framework 4.0はない、もしくは新機能の追加よりかは既存の機能の成熟がメインとなる。
・Windows 7では.NET Framework 4.0は搭載されない、もしくはされてもアピールさない。
・代わりにSilverlightの最新版Silverlight 3.0(2.5?)をネイティブでサポート。
・Win32 APIの強化、(特にVistaで.NET Frameworkでの新機能として搭載された機能をWin32 APIでもサポート)

他にも、Internet ExplorerやWindows Media Playerなどの新版の搭載や、エクスプローラの操作性の変更(すこしXPに近づくのでは)、64bitの強化などが考えられますが、これはプログラミングとはちょっと違う話なのでまた別の機会に。