My First BillG Review - Joel on Software
Joel Spolskyは、さすがに名前は知っていたが、相当の文才があると、改めて認識した。これは非常に面白い読み物だ。実際、文章もすばらしい。
なお、この話を理解するためには、以下のリンクも参考にした方が良い。
Fabulous Adventures In Coding : Eric's Complete Guide To VT_DATE
Fabulous Adventures In Coding : Bug Psychology
VT_DATEが、いかにくそみそなフォーマットだったかを説明している。VT_DATEは、30 December 1899からの経過時間で表現される。なぜ30日なのか? 31日ではダメなのか。1900年の一月一日ではだめなのか? 30日である理由は、Lotus 1-2-3のバグに対処するためである。
さらに、フォーマットも、悲惨すぎる。型はdoubleなのだが、整数部分は、起点からの経過日数を示す。ところが、小数部分は、整数による表現から、一日を少数で表現しただけ、経過したということを表すのだ。これはつまり、負数であっても、小数部分によって、時間が前に動くのだ。悲惨すぎる。
きっかけは、old new thingから。
The Old New Thing : Why does the OLE variant date format use 30 December 1899 as its zero point?
追記:Joel Spolskyは、ブログ執筆を引退して、本業に専念するらしい。なんというタイムリーな。
This comment has been removed by a blog administrator.
ReplyDeleteすみません,上の私のコメントは削除していただけると助かります.アンカーで書き直します.
ReplyDelete件の記事は「はじめてのBillGレビューのこと」として翻訳され,『Joel on Software』にも収録されていますね.
ご参考までに.
この人がライターとして生きていけるのも、納得です。これだけの文才があるのだから。
ReplyDelete