09:08コンピュータシステムのサマータイム対応を巡る二つの楽観論1/2Tweetいきなり来年から日本でサマータイムを導入するという話が出てきて、私には到底実現できない話としか思えなかったが、自民党の少なくとも一部の方々は本気で考えているようだ。そもそも、私にはメリットがどこにあるのかわからないがそれは置いておいて、コンピュータシステム側の対応が非常に困難であるということを、なるべく一般の方にわかるように説明してみたいと思う。5chとツィッターを眺めて見ると、同業者の人は私と同じ意見が多数であるように見えるが、一部楽観的に見ている方もいるのに驚いた。何事にもいろいろな見方があるので、賛否両論の意見があって議論していけばいいことではあるが、その楽観論を見ていると、全く違う立場の二種類の楽観論がある。何がなんでも自分の立場が正しいと主張する気はないが、この二種類の楽観論が絶対両立しないことは確かで、ここだけはハッキリしておかなければならないと強く言いたい。最悪のケースは、エンジニアの意見を聞いた所、楽観論Aの人が30%、楽観論Bの人が30%、悲観論の人が40%となった場合だ。AB足して60%だからと言って強行すると、楽観論Aの考えていた方法では、楽観論Bが成立せず、楽観論Bの人の方法だと楽観論Aの人が悲鳴を上げて、結局、どちらの楽観論も実現不可能で悲観論が正しかったということになる。最終的な結論はエンジニア同士の議論になるなるのかもしれないが、回りの人も、その議論の構図はきちんと理解しておく必要があると思う。最初のタイプの楽観論は「サマータイムを実施している国はいくらでもあって、そういう国では普通にコンピュータを使っているではないか!」というものだ。この手の機能は、インターナショナライザイション(国際化)と言って、画面上の英語のテキストが、日本人が見た時には日本語になるのと同じグループの共通化機能とされている。今では、OSでもプログラミング言語でも、ほとんどが国際化の機能を標準で持っており、その中には、サマータイムを含むタイムゾーン(時差)の処理がある。日本でのサマータイム導入も、対応するのはOSだけで、ユーザもアプリケーションも何も変更なしで、そのまま対応できるケースもある。スマートフォン用のアプリなどは、逆に、OSや開発ツールが提供している国際化の枠組みからはずれる方が難しいので、何もしなくてもそのままでサマータイムに対応できるものも多いかもしれない。注意すべき点は、この国際化とは、コンピュータ内部では、UTCで時刻の情報を持っていることを前提としていることだ。データを保存したりやりとりしたりする時には、UTCで行う。国ごとのローカルタイムに変換するのは、画面に表示する直前で、それ以外では、時刻が全部UTCになっているということが暗黙の前提となっている。5ちゃんねるにコメントを投稿したとする。UTC」という時刻をつけて保存する。UTCとは時差の基準になる時刻のことで、日本の時間より9時間前になっている。JST」という投稿時刻を表示する。BST」という投稿時刻が見えるはずだ。イギリスは現在サマータイム期間中で、その時の日本との時差は8時間になる。多くの国で使われるプログラムはほとんどそうなっているし、アメリカは国内に複数のタイムゾーンがあるので、アメリカ人専用のプログラムでもそうなっている。ところが、日本人だけが使うプログラムはほとんどそうなっていない。5ちゃんねるもそうだろうと思ったら、案の定そうだった。投稿したら、そのまま「10:00」という情報を保存する。専用ブラウザに対して、「10:00」という情報を送信して、専用ブラウザは、それに何の変更もしないで、「10:00」と表示する。投稿された情報を「10:00」で保存するのと、10から9を引いて「1:00」で保存して、表示する時に9を足して、「10:00」で表示するという二度手間をかけるのと、どちらが自然だと思いますか?この「9を引いて」とか「9を足して」という処理が、サマータイム期間中は「11を引いて」と「11を足して」になる。いう所は、国際化の機能を使うと自動的にやってくれるのだが、日本人しか使わないものは、そもそも足したり引いたりする処理を入れる必要がなくて、自然に10:00で保存して自然に10:00で表示する。それは、国際的に見て標準的とは言えないし、今後はそれではダメだろうと私も思うが、日本人が日本国内でプログラムを作ると、5chのようなやり方になるのが自然だ。それに、仕事で作るプログラムでは、エンジニアが必要と思っていても客が必要と思わなければ、そういう機能を入れることは許されない。システム時刻変更を前提とした楽観論そして、5ちゃんねるのようにローカルタイムで処理することを当然と思っている人の中にも楽観的に見る人がいる。いう人は「システム時刻を変更してしまえばよい」と言うのだ。いう人も年に二回ある切り替えの日には、いろいろややこしい問題があることは認識しているようだが、そういう時は数時間コンピュータを止めてシステム時刻を変更して起動すればよい、と考えている。