マイクロソフトは、C++でいかにしてMicrosoft Officeのクラスプラットフォームを実現したのか
マイクロソフトらしいトピックかなと。
アルテアというPCにBASICを移植したとき、PDP-11上にアルテアのエミュレータを作ってその上で開発した。で、このアルテアのエミュレータ部分をどのHWにも中立な層に置き換える。この中立的な層以下でハードウェアの違いを吸収する。たいていこの層はI/Oに関するものが大半となる。それでこの部分をBIOS(Basic Input Output System)と呼ぶようになる。このBIOSをベースにBASICを作る。BIOSさえ各機種版を用意すればBASICは共通のものが使用できる。
このBIOSという部分はフロッピーディスクが発達したころから拡張しCUIを備えDISK Operating System(DOS)と呼ぶようになった。このDOSが提供するAPI(ソフトウェア割り込みであったが)を使用すればどのハードウェアでも動くソフトウェアが開発できた。
さらにグラフィックが発達してくるとGUIを標準化するためのAPIを備えたOperating System(OS)が登場した。このOSはGUIを構築するためのAPIを備え、このAPIに従ってUIを構築すればどのアプリでも同じLook&Feelとなり、ユーザは統一した操作方法でアプリケーションを利用できるようになった。
マイクロソフトは根っからの水平展開指向の会社だ。これは今に始まったことではなく会社のDNAとして刻み込まれているものであり、さまざまな製品に見られる特徴なのである。もともとマイクロソフトにとってクロスプラットフォームなどはごく当たり前のことで、そのことに関して惜しみない労力を費やす会社なのだ。