マイクロソフト、Mac版Microsoft OfficeのソースコードをWindows版のソースコードと一本化実現
20年以上の歴史ではじめて、Microsoft OfficeのWindows版のソースコードとMac版のソースコード、iOS版、Android版のソースコードが一本化されたと、マイクロソフトのプリンシパルソフトウェアエンジニアであるErik Schwiebert氏がツイートで報告しました。
Mac Office 2016 version 16 is now live! For the first time in over 20 years, Office is again built out of one codebase for all platforms (Windows, Mac, iOS, Android)!https://t.co/6gNdKTOEHl
— Erik Schwiebert (@Schwieb) 2018年1月18日
すなわち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を対応させようとしたとき、それぞれまた大きな手間と時間をかけて開発するような愚を繰り返すわけにはいきません。
マイクロソフトは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を実現するコードとそのためのサービスがある、という形になっています。
こうした経緯や技術的な解説は、下記の2つの動画で詳しく解説されています。
参考記事
グーグルがGoogleドキュメント(Google Doc)で先行しているオンライン・オフィス市場でも、マイクロソフトは新たなスイート戦略で対抗しようとしています。
来月のOffice 365のアップデートによって、WordやPowerPointでLaTeXを用いた数式の入力が可能になることが、Microsoft Officeの開発エンジニアのブログに投稿された記事「LaTeX Math in Office」で明らかになりました。
マイクロソフトはワシントンDCで開催中のパートナー向けイベント「Microsoft Inspire 2017」で、「Microsoft 365」を発表しました。
あわせて読みたい
これから開発されるFirefoxの新規機能は、HTTPSにしか対応しない。新規のCSSプロパティなども対象
≪前の記事
Kubernetesに初めて実装された「Container Storage Interface」は、Kubernetes、Mesos、Docker、Cloud Foundryが共同策定したコンテナ用ストレージAPI