マイクロソフト、Mac版Microsoft OfficeのソースコードをWindows版のソースコードと一本化実現

2018年1月22日

20年以上の歴史ではじめて、Microsoft OfficeのWindows版のソースコードとMac版のソースコード、iOS版、Android版のソースコードが一本化されたと、マイクロソフトのプリンシパルソフトウェアエンジニアであるErik Schwiebert氏がツイートで報告しました。

すなわち1本のソースコードをビルドすることで、Mac版やWindows版など複数のプラットフォーム用のMicrosoft Officeが生成できるようになったということです。これにより、すべてのプラットフォームで同じように迅速な新機能の提供といったアップデートが実現していきます。

マイクロソフトは、Officeのような巨大なソフトウェアのソースコードを一本化する作業を、製品をリリースし続けながら行ってきました。それは相当に複雑な作業だったはずです。

いくつかの資料から、これまでの状況をまとめてみました。

マイクロソフトも一度は失敗した、ソースコードの一本化

もともとMicorosoft Office(以下Office)は、1983年にMS-DOS版のWordが登場したことがその端緒で、1985年にはMac版のWordが登場、そしてExcelもMac版としてはじめて登場しました。

この時点ではまだWordとExcelはそれぞれ別の製品であり、DOS版とMac版も別々のソースコードです。

そして1990年に、ExcelやWordなどをオフィススイートとしてまとめたMicrosoft Officeが登場します。このタイミングでマイクロソフトはWindows版とMac版のソースコードを一本化しようとしました。しかしそれは、残念ながらうまくいかなかったとのことです。

その後Mac版Officeは激動のときを迎えます。

2005年にはアップルがMacのプロセッサをインテル製へ変更すると発表。そしてOffice自身もOffice 2007でファイルフォーマットがXML対応の新しいものになり、ユーザーインターフェイスもリボンが採用された新しいものになりました。

これら大きな変更が重なったことで、Mac版のOfficeの開発はWindows版Office 2007よりも1年も多く時間がかかり、しかもWindows版のすべての機能が実装されたわけではありませんでした。

さらにこの頃にはiOSやAndroidといった新しいOSを搭載したモバイルデバイスの普及も始まっています。これら新しいデバイスにOfficeを対応させようとしたとき、それぞれまた大きな手間と時間をかけて開発するような愚を繰り返すわけにはいきません。

Officeのソースコードが一本化されてきた経緯

マイクロソフトは2008年からコードの一本化を目指して作業を開始。Windows版とMac版で分かれていたリポジトリを1つにしてそれぞれのソースコードの相互参照を容易にし、少しずつコードを共通化していきます。

マイクロソフトは2014年に開催されたC++のイベント「CppCon 2014」において、「How Microsoft Uses C++ to Deliver Office (and More) Across iOS, Android, Windows, and Mac, Part I」(マイクロソフトはC++を用いていかにOfficeをiOS、Android、Windows、Mac用に開発しているか)という講演を行い、このときすでにC++でソースコードの一本化をすすめていることを明らかにしていました。

そしてついに2018年、その一本化の作業が終わったことが報告されたわけです。

プラットフォーム間の違いを吸収するアーキテクチャ

異なるプラットフォームにまたがってOfficeのソースコードを一本化したとしても、当然ながらプラットフォーム固有部分を完全になくすことはできません。

マイクロソフトの説明によると、Officeは下記のようなアーキテクチャとなっており、一番下にプラットフォームごとに最適化されたレイヤが用意され、これがプラットフォーム間で共通のコードを実現する基盤となっています。

その上に「Shared Common Logic」と呼ばれる全プラットフォーム共通のコードがあり、その上に「Native UX Layer」としてプラットフォーム固有のUXを実現するコードとそのためのサービスがある、という形になっています。

Officeのソースコードを一本化するためのアーキテクチャ

こうした経緯や技術的な解説は、下記の2つの動画で詳しく解説されています。


参考記事

グーグルがGoogleドキュメント(Google Doc)で先行しているオンライン・オフィス市場でも、マイクロソフトは新たなスイート戦略で対抗しようとしています。

来月のOffice 365のアップデートによって、WordやPowerPointでLaTeXを用いた数式の入力が可能になることが、Microsoft Officeの開発エンジニアのブログに投稿された記事「LaTeX Math in Office」で明らかになりました。

マイクロソフトはワシントンDCで開催中のパートナー向けイベント「Microsoft Inspire 2017」で、「Microsoft 365」を発表しました。

あわせて読みたい

Office 業務アプリケーション Microsoft




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本