「数字列の先頭がゼロの時は八進数」で嬉しい人っているの?

%TIME%の先頭が、時刻が10時以前の時空白になるのは不便だと思っていたけど、そうなっている理由についさっき思い当たった。

%TIME:~0,2% を取り出して、それだけを使って計算したり大小比較するときに先頭ゼロでない方が単純だ。今まで、YYYYmmddHHMMSS のように日付と連結して使うことが多かったので気づかなかったのだ。


しかし、そもそも「数字列の先頭がゼロの時は八進数」という解釈さえなければこんな考慮をする必要もない。このルールって、誰が嬉しいの??

Cの仕様がPDPを引きずっているのはしょうがないとして、PDPともUnixとも関係ないCMD.EXEまでこんな仕様を引きずる必要もない。Microsoft Basicでは、&H &O &B の前置でそれぞれ16進数、8進数、2進数を表していた。CMD.EXEでも8進数表記がどうしても必要なら、0x で16進数なところから、0o で8進数で十分だったのではないか。そもそもCMD.EXEで意図的に8進数リテラルを書いたことのある人の割合は?パーセントじゃなくてppmじゃないの?


JavaRubyなんかも引きずってんだよね〜 「不要」と言い切れないひとも、これで困った人の方が助かった人より圧倒的に多いことには同意するでしょう。