外から見ると、Microsoftでは11月第3週に大きな騒動が起こったように見える。しかし混乱が静まれば、この1週間の騒動は、次の10年に向かってコンピューティングの提供方法を変えようとしている、今とはまったく違うMicrosoftを目指すための1歩に過ぎなかったと思えるようになるかも知れない。
これは、必ずしも驚くべきことではない。どんな企業にも変革が必要であり、Microsoftに起こっている変革は、ずっと以前から報道され続けてきたからだ。
Microsoftの変化は、キャッチフレーズ、ツールや技術の公開トライアルのほか、4、5年かけて行われてきた、分散アプリケーションの構築を単純化するウェブサービスエンドポイントやMVCフレームワークの推進、オープンソースの技術やライセンスの導入、そして最近では見た目も感触もまったく新しいWindowsや、PC事業への参画などにも現れている。
Steve Ballmer氏は、同社の将来について非常にオープンに語っており、Microsoftのことを「デバイスとサービスの企業」と呼んでいる。では、Microsoftは将来どうなるのだろうか。
開発の将来
まず最初に、同社の組織の重心が変わってきていることは明らかだ。そしてこれは、(今後もクライアントは重要であり続けるものの、)未来のWindowsの中核はデスクトップではないということを意味している。「Windows 8」のアーキテクチャと、その新しいプログラミングモデルについて掘り下げて見てみれば、Microsoftが開発の将来、そして同社の将来について、非常に大きな決断をしたことは明らかだ。
Microsoftは、自社のツールで自社のアプリケーションやサービスを作っている。将来に向けてのツールが揃いつつあることを考えると、Microsoftの将来について展望するには、これはよいスタート地点だ。
Windows 8で新しく導入されたAPI、Windows Runtime(WinRT)には、開発者からの批判もある。兄貴分に当たるWin32や.NETと比べると、呼び出すランタイムは同じなのにも関わらず、未成熟で機能が少ないという主張だ。しかし、それらのツールとWinRTの間には、重要な違いがある。Win32は、Visual Basicでの開発や、VBアプリケーションをメインフレームやミニコンに接続することが全盛だった時代に成長した人たちが慣れ親しんだ、クライアント・サーバ時代のAPIだということだ。
.NETの状況も似ているが、これは、プレゼンテーション、ビジネスロジック、データという異なる階層からなる、N階層アプリケーションアーキテクチャの世代のAPIだと言える。しかし、コンピューティングが進化すれば、APIも変わる必要がある。WinRTは、クラウド規模のサービスと協調して動作する、スマートクライアントの新たなコンピューティングパラダイムのために設計されている。
このアプローチは、WinRTが複雑なデスクトップアプリケーションのために作られたものではないということを意味している。Windows 8に、.NETやWin32のコードのためのデスクトップモードが残っているのはこのためだ。むしろWinRTは、クラウドサービスと、Azureやその他のウェブ規模のプラットフォーム(「Windows Server 2012」によるプライベートクラウドを含む)上で実行されているアプリケーションに対する、安全でサンドボックス化されたフロントエンドを提供するために設計されている。