Contoso から Microsoft に思いを馳せる

先日 VSCode 拡張を作って Marketplace に公開したとき,Microsoft 公式のガイド読んでいた.

code.visualstudio.com

公開するためには Azure DevOps というサービスでアカウントを作って organization を作る必要があるらしいので,結局のところそっちのガイドを読むことになった.

文字が多すぎてすべて読める気がしないので,重要そうな部分だけガイドをななめ読みしていたらこのセクションにぶちあたった:

docs.microsoft.com

ここに CONTOSO という企業の例が図で出てくるのだけれど,久々にこの Microsoft ワード (ワープロソフトではない) をひさびさに見てなんだか嬉しい気分になった.

https://docs.microsoft.com/en-us/azure/devops/user-guide/media/contoso-organization-with-projects.png?view=azure-devops

CONTOSO

Contoso についてはこの Wikipedia のページが詳しい:

ja.wikipedia.org

有り体に言えば,Microsoft のリファレンスでよく例につかわれる架空の企業の名前ってだけなのだけれど,こんなに脈々と 2020 年の今も受け継がれてるのがすごくおもしろい.

自分が Contoso を目撃したのはいつだったか覚えてない.わりと昔だと思う.同様になにかのリファレンスを読んでいて触れた.それがずっと使われているところにシャレが利いているというか,良さがあるなと思った.

Microsoft

Microsoft の従業員でもないのに謎目線で Microsoft の面白いと思っている部分は,後方互換性を大事にしているところとか,歴史や資産を重要視しているところ.

といっても,それは The Old New Thing という本の受け売りなところが大きい:

https://www.amazon.co.jp/dp/0321440307

f:id:mangano-ito:20200415133802j:plain

著者は Microsoft の古参で,この本では「Windows のこれはなぜこうなっているのか」という理由が歴史的事情から解説されている.

f:id:mangano-ito:20200415133642j:plain
タスクバーがタスクトレイと呼ばれている理由

ペーパーバックだと超分厚くてちょっとした辞典くらいあるので,なかなかボリュームがあって面白い本.

Windows のソフトウェアへの互換性の情熱はすごいみたいな話は結構いろんなところで語られている:

xtech.nikkei.com

Excel

著名なのが Excel のエポックの事情である.

Excel には 1900 年システムと 1904 年システムがあって,紀元が異なる 2 つのシステムがある.この事情については公式の説明がある:

docs.microsoft.com

これと似たようなことが Joel on SoftwareMy First BillG Review でも触れられている:

www.joelonsoftware.com

(※ 前までは日本語訳のページがあったのだけれど,今調べても見つからなかった.書籍版に日本語訳があるようだった: https://www.amazon.co.jp/dp/4798118923/)

さて,この話のおもしろポイントをまとめると,Excel1900/02/2859, 1900/03/0161 として番号を振っていて,601900/02/29 のうるう年の日としている.ところが,実際は 1900 年はうるう年ではない.

これは当時主流のスプレッドシートLotus 1-2-3 がそういう仕様になっていてインポートできるようにしたため.そもそも Lotus 1-2-3 は当時のコンピュータの性能から計算を省略するために意図的にそうしたと推測されている.

一方 Visual Basic では 1899/12/31 がエポックになっていて,これに符号するように -1 日されている.

誤解を恐れずにいうと,Lotus 1-2-3 の仕様に ExcelVisual Basic が合わせようとしてた,という話だった.そして 1904 年システムは 1900 年を回避するためにエポックが 4 年ズレている.

これを現実を歪曲させた設計で負債と取るか,当時の要求に見事に答えた仕様と見るか.


あとは A1 参照形式R1C1 参照形式 の話もある:

www.relief.jp

これも Lotus 1-2-3Microsoft Multiplan の仕様の違いから選択可能になっているオプションで,似たような事情を抱えている.

伝統

Excel の例を伝統というかは置いておいて,伝統を踏襲しているデザインはおもしろい.ガワはモダンになっていってるけど,コアの部分とかでファンサービスを忘れていないようなものはいくつかある.

ドラクエは今でも魔法の SE はあの 8-bit な音だとか,ポケモンモンスターボールの落ちる SE は初代ゲームボーイ版の音だったりするみたいなのがある.

マリオでも,ヨッシーに乗ると BGM にパーカッションが足されるのが,ヨッシー初登場の「スーパーマリオワールド」から続いているとか,2D マリオではジャンプのときの SE がマリオワールドと同じパンフルートの音とかがある.

ゲームはこういう体験の例が多い気がしている.

こういう

おもしろ歴史のバックグラウンドがあるから納得できるけど,仮に新しくつくるものに何の経緯も理由もなく採用したら意味不明のものとして評価されるかもしれない.

ところで,

Google Spreadsheet はどうなってるのかといえば,

f:id:mangano-ito:20200415134146p:plain

気にされていないのだった.


我ながら Contoso でこれだけポエムが書けるのに驚いた.