カスタム検索
表示順:
Relevance
Relevance
Date
ウェブ
 
 
 

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

2018年1月22日


20年以上の歴史上はじめて、Microsoft OfficeのWindows版のソースコードとMac版のソースコード、iOS版、Android版のソースコードが一本化されたと、マイクロソフトのプリンシパルソフトウェアエンジニアであるEric 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つの動画で詳しく解説されています。


follow us in feedly

カテゴリ 業務アプリケーション / Office
タグ  Microsoft , Office


前の記事
Kubernetesに初めて実装された「Container Storage Interface」は、Kubernetes、Mesos、Docker、Cloud Foundryが共同策定したコンテナ用ストレージAPI


カテゴリ



Blogger in Chief

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

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

人気記事ランキング

  1. マイクロソフト製のWindows/Linux/macOSクロスプラットフォーム対応シェル、オープンソースの「PowerShell Core 6.0」正式版が登場
  2. Googleの画像認識APIを基に、好きな画像を学習させて認識機能を簡単にカスタマイズできる「Cloud AutoML Vision」発表
  3. AWSもSpectreとMeltdownの対策完了を報告。対策後、Amazon EC2で性能の低下は見られないと
  4. AngularやReact、Vue.js対応の業務アプリ用UI「InputManJS」リリース。わずか600KBで昭和や平成、未発表の新元号対応。IME制御、ふりがな取得なども
  5. GoogleはSpectreとMeltdownの対策を昨年6月に開始し12月には完了していた。性能低下の報告はなし
  6. マイクロソフト製のWindows/Linux/macOSクロスプラットフォーム対応シェル、オープンソースの「PowerShell Core 6.0」正式版が登場
  7. サーバレスアーキテクチャのAWS Lambda、Go言語とC#の.NET Core 2.0サポートを開始
  8. Google、未経験者でも取得可能な「認定ITサポートプロフェッショナル」制度と学習プログラムの提供を開始。Googleなどへの就職で有利に
  9. 「AWS Auto Scaling」が機能強化、基本的な設定をするだけで自動的にポリシー生成、導入が簡単に
  10. Kubernetesに初めて実装された「Container Storage Interface」は、Kubernetes、Mesos、Docker、Cloud Foundryが共同策定したコンテナ用ストレージAPI


新着記事 10本


PR - Books


fig

fig

fig