プログラマー3X歳定年説の崩壊

Windows8発売日が今月26日らしいが、その日は私の40歳の誕生日である。


私が二十歳ぐらいのころ「プログラマー3X歳定年説」というのがあって、「ああ、30には引退なんだな」とか思っていたが、30になっても私のプログラミング能力は衰えるところを知らず、「35にはついていけなくなって引退なんだな」とか軽い気持ちで思っていたが35になったころにはすでにC++からC#に移行し、プログラミングはむしろぬるま湯同然の環境となっていた。


そのころは「40になるころには巨大なミドルウェアが出てきてそれを使って開発するからプログラマーは不要になるんだな」ぐらいに思っていたが、Unityのようなミドルウェアは出てきたがそれで開発を行なうのは比較的大手の会社だけで、結局は私はHTML5 + JavaScriptで開発が中心だった。JavaScriptC#よりさらに仕様がシンプルで、jQuery.NET Frameworkよりはるかに規模が小さく、覚えることも少なく、以前にも増して容易な仕事ばかりとなった。


おいおい。いつになったら私は老害と呼ばれ、プログラマーを引退させてくれる時代になるんだ。いい加減にしろ!

enchant.js ――― パソコン少年の見た夢

景気には波があると言われている。約10年周期のジュグラーの波、約20年周期のクズネッツの波、約50年周期のコンドラチェフの波。


パソコンの言語ブームには25年周期というのがあるのではないかと私は思う。パソコン少年も25年ぐらい経つと会社経営者になってたりして、自分が子供のころに体験した体験を若い世代に追体験させようとする。


例えば、enchant.jsというムーブメント。私自身はenchant.js自体には何の魅力も感じないけど(この程度のものは私は自分で実装できる)、しかし、目指そうとしているものはなんとなくわかる。


たぶん清水さん(shi3z)が、子供のころにされていたBASICがその根底にあるのではないかと思う。
特に前田ブロックはファミコンファミリーベーシックを強く想起させる。


私はファミリーベーシックは友達の家で一度触ったっきりだが、1行、2行書くだけでマリオが表示されたのには当時、深い感動を覚えた。ファミリーベーシックではスプライト(キャラクター)も最初から定義済みで、ぴゅう太(トミー工業。現タカラトミー)やMAX MACHINE(コモドール社)、M5(ソード社)のように自分でキャラクターを作る必要すらない。


実を言えば私もいまだに当時のBASICが忘れられず、当時のBAISCのように粒度の大きな命令を持った、特定用途に特化したスクリプト言語をいままでに幾度となく実装してきている。(つい最近もC#でまた実装してしまった) それは私が子供のころに考えた「ぼくのかんがえたさいきょうのスクリプトげんご」そのものだ。私は30年以上の時を経て、実装のために必要な環境と実行環境が整い、自分が昔に思い描いたコンセプトの正当性が示せたというわけだ。


たぶんenchant.jsに魅せられた少年少女たちは20数年後、自分の経営する会社でまた同じコンセプトの開発環境をそのときの最先端の技術を用いて作るだろう。そうして歴史は繰り返すのである。

変な夢を見た

変な夢を見た。藁人形に五寸釘を打つ夢だ。しかし釘がない。仕方がないので3次元CADで釘を作って業者さんに発注しようと思った。しかし五寸とやらがわからない。五寸とは一体何ミリなのか。


寸って尺(しゃく)の1/10だよなぁ。1尺っていくらだ。アルプス一万尺って言うよな。この「アルプス」って「日本アルプス」のことだよな。日本アルプスって標高いくらだ?富士山よりは高くないにせよ、それに比肩するよな。3000メートルぐらいか。3000メートル = 一万尺として、つまり1尺は30cm程度か。1寸は3cmで5寸は15cmだな。


CADに全長として150mmと入力してそれを軸回転させて五寸釘っぽい造形を作る。
テーパー(先細りしていくこと)も付けないと刺さりにくいよな。どれくらいの角度のテーパーが必要なんだろう。


「よし、知り合いの鋲螺(びょうら)屋さんに聞いてみよう!」


と思って電話しようと自分の手のひらを見たらそこに五寸釘が刺さってやんの。
「こりゃちょうどいいや」と思ってその五寸釘引っこ抜こうと思ったが、全然抜けないんでやんの。


「ああ、俺はキリストだったんだな」とかよくわからない感じで納得したところで目が覚めた。


なにこの夢…。

釣り銭

あるお店にて「釣り銭が不足しております。ご協力ください。」という張り紙がしてあったので、1,087円の支払いに対して1,142円を出したところ


店員「この42円要らないです」


私「(釣り銭不足の原因はお前だろ!)」


1,087円の支払いに対して1,142円を出すのって、そんなにわかりにくいだろうか?


ゼンリンの地図の疑問点についてゼンリンの人に聞いてみた



私「このゼンリンで制作されている住宅地図なのですが、家の名前がカタカナのところと漢字のところとありますね。これは何故ですか?」


ゼンリン「これは調査員が実際に歩いて調査しております。カタカナのところは表札がたまたまアルファベット(ローマ字)表記だったのでしょう。」


私「ということは、不動産登記等は調べておられないわけですね。仮に嘘の表札を出しておけばそれが数年後の住宅地図に掲載されることになりますか?」


ゼンリン「なりますね。」


私「この地図で矩形の畑の角地が民家になっているわけですけども、どう見てもこの人がこの広大な畑の地主ですよね。それにこのアパートなんかはここが家主であることはこの地図から明らかですよね。それにこちらのアパートもこの同じ家主であることはわかりますよね。こういう情報が容易に入手できると泥棒に狙われたりすると思うのですが」


(大変興味深い話が聞けたのだが、ここに掲載するとマズそうなので省略)


私「表札に出ているのが会社の名前ですと、それはゼンリンの全国地図のほうにも転記されるのですか?」


ゼンリン「そうなりますね。会社さんの情報に関しては個人情報という扱いではないので」


私「その場合、法人登記との突き合わせはされていないのですか?」


ゼンリン「原則、していないです。」


私「そうしますと、株式会社おちんぽみるくとか表札を出しておきますと(以下略)」


(略)


私「個人情報保護の観点から、住宅地図に表札の名前を掲載して欲しくないのですが、そういうことは可能なのでしょうか?」


ゼンリン「弊社では表札は外部に公開してある情報であるという扱いをしていますが、住人様のご要望により掲載しないこともあります。」


私「えっ。掲載しないように出来るんですか?じゃあ私の家を地図に載せないことは可能ですか?」


以下、その理由を適当に回答し、次の住宅地図からは掲載しないということにしてもらえた。

レジの釣り銭問題

今日のレジの釣り銭の話でコメント欄が盛り上がっているので、なるべく現実的な条件のもとでレジに要する時間を最短化する小銭の出し方はどうなるのかというのを考えてみたい。


レジには1円,5円,10円など小銭が分類されて収納されているので、客のほうが財布から取り出すより短い時間で出すことが出来る。レジ係はレジのプロなので硬貨を数える時間・受け取った硬貨を分類してレジに収納する時間は限りなくゼロに近いと考えられる。


一方、客のほうは、たとえば財布のなかに1円玉が10枚ぐらいあればそのうちの5枚を取り出すのは容易なはずだが、3枚しかないときに3枚取り出すのは比較的困難で、時間がかかるはずである。


レジのほうは客がお金を出すまで次の工程に進めないとすれば、客は細かいお金を出さないのがレジに要するの時間は最短であろう。


しかしそれでは客のほうの財布がいずれパンクしてしまう。そこで客は財布から取り出す時間が十分短くなる、同一の硬貨がある程度以上溜まったときにのみその硬貨を出していいものとする。


同一硬貨が10枚に達したときに10枚出すような出し方をすると、まずその硬貨が本当に10枚あるのか確認する時間が必要なので効率が悪い。そこで同一硬貨が十分多いときに5,6枚出すのが合理的である。


ということは5円・50円・500円玉は普通は財布に1枚(多くとも2枚)になるようにしてしまうだろうけど、この条件下ではそういう出し方は最適とは言えず、5円・50円・500円玉もある程度ストックして、5,6枚まとめて出したほうがいいという結論になる。(財布が小銭で膨れ上がるのが嫌だけど…)