ガジェット通信 GetNews

見たことのないものを見に行こう

体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]
ガジェ通制作ライブ
→ガジェ通制作生放送一覧

サマータイムは簡単、という記事があまりにあれな件(novtanの日常)

サマータイムは簡単、という記事があまりにあれな件

今回はnovtanさんのブログ『novtanの日常』からご寄稿いただきました。

サマータイムは簡単、という記事があまりにあれな件(novtanの日常)

いくらなんでもこれはひどい、という記事があり、はてブでも総スカンを食らっていますが、ちょっと解説。

「サマータイム導入はコンピュータシステム的に難あり」は本当か*1

*1:「サマータイム導入はコンピュータシステム的に難あり」は本当か」2018年08月10日『BLOGOS』
http://blogos.com/article/317015/?p=2

コンピュータ(システムやプログラム)には「時間経過」の概念がありません。命令を受けた瞬間からの経過時間は、秒単位でカウントアップしていくだけで、つまり「その瞬間」しかコンピュータは認識していません。

のっけから何を言いたいのかわかりませんが、「時間経過」の概念はプログラムには当然仕様として必要であればあります。例えば、ジョブ(ここでは、時間になったら起動して、一連の処理を行って終了するプログラム、と考えてください)の遅延時間監視をしていて、起動後30分経ったらハングアップしている可能性があるのでアラートをあげる、というシステムがあったとして、12:00にスタートしたジョブが10分後に時刻が1時間先に進んで13:10になったらまだ10分しか経ってないのにアラートが上がりますね。なので何も考えないと日本中のシステムがアラートだらけになりますね。

もう少し、かみ砕くと、「いま何時? 3時か、あと2時間仕事しなければ」という発想はなく、命令された時間だけ作業を繰り返しているということです。

これもかみ砕いているわけじゃなくて適当なことを言っているだけですが、そもそもシステムが「発想」することはありませんが、今何時?3時か、後2時間は要求を受け付けなくては、という判断はしますよ。つまり、ATMが15時になったら振込を翌日扱いにしますよ、という仕様は「いま何時?」をメインの基準にしているわけです。「命令された時間だけ作業を繰り返している」?なんの話?

これをプログラミングにより擬似的に、時間経過の概念があるように見せかけているのが、エアコンなどの「タイマー機能」です。

これも大嘘で、エアコンのタイマー機能は「システムが持っている所定の時刻になったら所定の動作をすることを設定する」わけなので時間経過の概念がそもそも不要ですね。これまで述べてきた例とは全く違う機能です。補足すると、エアコンのタイマーのようにエアコンに閉じたシステムにおいて、サマータイムの影響なんて当たり前ですがありませんよ。例が悪い。しかもインターネット家電的な意味で例えばスマホのアプリから予約をするとかになってスマホがサマータイム、エアコンはサマータイム非対応だと時間ずれますね。

反対に「時間の経過」を確認するプログラミングをすると、秒単位でカウントアップしていく内部時間とは別の、外部時間(時計)を用意しておかなければならず、さらに両者を絶えず確認しなければならないので、二度手間三度手間になってしまいます。

何を言っているのかさっぱりわかりませんが、複雑なシステムじゃなくても、ストップウォッチのことを考えれば時計と時間を測る機能はカウントが別なのは当たり前ですよね。手間の問題じゃなく、実現したい要件の問題です。

だから、どこかの瞬間、サマータイムにより2時間ないし、何時間と時間がずれても、そのまま処理するだけで影響は軽微です。目覚まし時計の時間がずれたら直すように「サマータイム」となったとき、コンピュータの時計を合わせ直せば良いだけのことです。

はいでました、「時間をずらせば良い」。これ言っている人は基本的にシステムのことをわかってない人です。わかりやすい。この人今までタイマーの話ししかしていないし、時計のことをコンピューターシステムのすべてと思っているんでしょうか。そもそもここまでで出てきた二度手間三度手間の話がないと仮定すると、ストップウォッチで時間測っていたらさっきまで1時間経過だったのが1秒後に3時間経過に変わってた、みたいになるってのこの人理解してるの?

ええと、電車一つとっても終電後3時に車庫に入ったのが次に始発向けに4時に出ていくはずが、2時間ずれて2時に出ていかなきゃならない、となったら破綻してますよね。システムの運用でさっき触れたジョブみたいなのも話は一緒なので時計ずらせばOKってのはシステムをパソコンレベルの用途しか考えてないんですよね。

ホストコンピュータなどと接続していて、連続した情報をやりとりしているシステムなら、バチっと電源を落として、その後の立ち上げで日時の変更をすればよいだけのこと。

ええと、そのホストコンピュータはどうすればいいんですかね。そもそもバチッと電源を落とす機会なんて今どき月イチあれば良い方ですよ。で、日時変更したら予定している作業スキップしちゃったりしたらどうするんですかね。簡単に言い過ぎ。

コンピュータに詳しくない人は、人間の意識する「時間」、便宜上「自然時間」と呼ぶとすれば、これを基準にコンピュータのことを考えます。
サマータイムとなり自然時間の定義が変われば、コンピュータも同時に変えなければと「思いこみ」ますが、コンピュータが処理に用いているのは、埋め込まれたクォーツが刻む「内部時間」だけです。

違いまーす。コンピューターが用いているのは、「データ」と「システム時刻」です。データには時刻の関連項目がありますね。みなさんに一番身近なのはファイルの更新時刻とかですね。ブログの更新時間なんてのもデータで持ってますよね。表示されるでしょ。まさかこれをずっと「内部時間で刻んている」わけないよね。X時間前、という更新時刻は当然XX:XX時というデータと今の時刻の比較をしているので、システム時間をバーンと変えたらX時間前との相対関係が変わって表示変わっちゃいますよね。

というのは、サマータイムなどのことを考慮していないシステムが直面する事態で、日本固有のシステムはたいてい直面する事態ですね。

日時の処理は、内部時間を変換して行っているに過ぎず、自然時間の概念をコンピュータは必要としません。

この文章は正しいですね。だからなんだって言うのだ?コンピューターが必要なのはデータとシステムの整合性ってだけ。今までの話はそこを一切無視していますよこの人。

1 2 3次のページ
寄稿の記事一覧をみる

記者:

ガジェット通信はデジタルガジェット情報・ライフスタイル提案等を提供するウェブ媒体です。シリアスさを排除し、ジョークを交えながら肩の力を抜いて楽しんでいただけるやわらかニュースサイトを目指しています。 こちらのアカウントから記事の寄稿依頼をさせていただいております。

TwitterID: getnews_kiko

  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。
スマホゲーム タラコたたき