Microsoft(日本マイクロソフト)というと、どんなイメージを思い浮かべますか。WindowsやInternet Explorer、Word、Excelなど、OS/アプリケーション分野で大きな存在感を持ち、最近ではWindows Azureのようなクラウドコンピューティングでも注目を浴びています。プログラマの方は、統合開発環境のVisual Studioを真っ先に思い付くかもしれません。

 このようにIT業界で大きな存在のMicrosoftにも、昔から苦手な分野があります。そう、オープンソースソフトウエア(OSS)です。特にWeb開発の分野では、OSSは積極的に導入され、ごく当たり前のものとなりつつあります。

 OSSを用いた開発では、なにもすべての機能を一から作る必要はありません。世の中には便利で、そして高機能なアプリが無償で公開されていますから、これを利用しない手はありません。カスタマイズ性も優れていますので、ベースはお仕着せのOSSアプリでも、スタイル(テンプレート)や設定を差し替えれば、十分に独自色のあるWebサイトを立ち上げられます。

図1●LAMPの構成要素
図1●LAMPの構成要素
[画像のクリックで拡大表示]

 しかし、この分野でMicrosoftの名前を見かけることはあまりありませんでした。OSSアプリを導入するに当たって、従来よく利用されてきたのがLAMP(ランプ)と呼ばれるソフトウエアの組み合わせ(ソフトウエアスタック)です。LAMPは、Webアプリを実行するためによく利用されるソフトウエア構成を示した造語です(図1)。

 具体的には、OSであるLinux、WebサーバーソフトであるApache HTTP Server、データベース管理ソフトであるMySQL、そして、アプリケーションの実行環境であるPerlやPHP(PHP: Hypertext Preprocessor)、Pythonの頭文字を順につなげたものです。すべてがOSSの組み合わせですので、実行環境全体を無償で準備できます。このほかのOSSアプリもLAMPでの動作を前提に開発されていることが多く、「OSSアプリといえばLAMP環境」と考えている人も少なくないでしょう。

WindowsはOSSが苦手なのか?

 もっとも、OSSアプリがWindowsで利用できないかといえば、そのようなことはありません。多くのOSSアプリは、以前からWindowsでも動作しました。しかし、実際に利用されることはあまりありませんでした。なぜでしょうか。

 アプリケーションの開発や管理を行う上で、作業環境としてWindowsマシンを利用することは多いはずです。であれば、アプリケーションもできればWindows上で使いたいと思いませんか。そもそもWindowsサーバーが既に手元で動作しているので、これをそのまま利用したいというケースも少なくないでしょう。

 しかし、これまであまり利用されてこなかったのはズバリ、導入が大変であったからです。そもそも「動かすことができる」と「手軽に動かせる」との間には天地の差があります。おそらくWindows+OSSに取り組もうとした人の多くは、まず情報の少なさに辟易するはずです。ついで、ソフトウエアの組み合わせに悩むことになるでしょう。

 例えば、ブログアプリとして有名なWordPressを動かすためには、実行エンジンとしてのPHPやデータベースサーバーとしてのMySQLなどをインストールする必要があります。しかも、ただインストールすればよいというわけではありません。バージョンの組み合わせによっては正しく動作しないこともありますので、前提となる環境をあらかじめ確認しておく必要があります。

 通常、Windowsアプリをインストールする場合は、インストーラを起動し、ウィザードに沿って必要な設定を入力するだけです。そうした手軽な手順に慣れた人にとって、ソフトウエアの組み合わせに応じてバージョンをしっかり意識する必要のある複数のOSSアプリの導入は高いハードルとなります。

 こうしたことから、WindowsとOSSは相性が悪い、そもそもWindowsではOSSは利用できない、というような固定概念だけが広まっていったのではないでしょうか。