極北データモデリング このページをアンテナに追加 RSSフィード

2007-05-08

[]嘘つくでねえ

これは嘘だろう。

どうしてプログラマに・・・プログラムが書けないのか?

http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の

代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合

には「FizzBuzz」とプリントすること。


ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに

紙に書き出せるはずだ。怖い事実を聞きたい? コンピュータサイエンス学科卒業

生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15

分もかかっているのを見たこともある。

ほんとはもうちょっと高度な課題を出したんだけど、読者に対して嫌味になっちゃうからお題のレベルを下げて書いたんでしょ。

でなかったら面接でいろいろプレッシャーかけて緊張させたんじゃないの。『おやおやifネストしちゃったよ。どう思うジェフ』『ヒッヒッヒッ。いただけませんなぁ』みたいな。

人間歳取ると「今の若い奴は馬鹿ばっかりだ」ていう話に簡単に食いつくようになるよね。若い時は信じなかったのに。

「今の小学生の3割は死んでも生き返ると思っている!」とか。すごい嘘くさいけど何か信じたくなるよね。ていうか気をつけます。

2007-03-02

[]技法の提唱者になる不幸


正美氏にいろいろ質問した時「僕はあんまりネット見ないんだけど、たまに見るとTMについて『...』なんてデタラメが書いてあったりしてね、ほんとうんざりするよ」なんて言われたんだけど、ヒヒヒそれ書いたの俺じゃねえかとか思って変な汗かいたりして。

技法の提唱者というのは、常に誤解と誤読と毎度繰返しの質問にさらされて、大変疲れるポジションだと思う。

身内ではとっくに議論が終わっていることについて「ここがおかしい」とか言ってくる人にいちいち返事したくないものな。

が、こっちも信者じゃないんだから、考えても分からなかったことは教えてくださいと言うしかない。「何だかわかんないけど信じてます」では尊師とその仲間たちになってしまう。


理解より誤解が多いのが普通

教わる側は全体像を知らずに断片的なルールを覚えていくから、統合する時に強烈な不協和を起こす。ここに誤解のタネがある。

例えばTMのルールに以下の2つがある。

  1. 実データにnullがあるのは絶対ダメ。
  2. サブセットに交わりがあるのは(=全部合わせて全体にならないのは)間違い。

ふーんなるほどと思って データベース設計論 T字形ER―関係モデルとオジブェクト指向の統合をめざして P-93を見ると、相違のサブセット(T字の右側=属性違いがあるサブセット)間に交わりが出ているのを、ルール2.に従って対照表で解消する絵が描いてある。

めんどくさいから転載しないけど、この絵のまま実装すると生成した対照表にnullになる属性が出てしまう。つまりルール1.に反している。

私は半分信者みたいなもんだから、これ見ても「俺はTMのルールに矛盾を発見した!」なんて全然思わなかった。こんなケースは実務ではごまんと出るのだから、絶対TMのルール内で捌いているはずだと思って聞いてみたら、案の定「取引先区分.取引先.対照表」をさらにnull回避のためのサブセットに分解するのだとのこと。

本が小さいから絵が収まりきらなかったのだろう。ただそれだけのことに1年以上ひっかかっていた。そんなものだ。


この業界で正しく伝わるのはせいぜい末端のTipsだけで、方法論なんて正しく伝わるわけがない。理解より誤解が多いのが常態。

正美氏の話を聞いていると、Coddが言ったことなんてこの業界に全く伝わってないみたいだもの*1

技法の提唱者になるということは(それで金儲けでもしない限り)ただ面倒なだけだ。それでも公開していただけるのなら、ありがたく頂戴しないともったいないと思う。

*1:この前人力検索で「Coddの論文の和訳が出版されてませんか?」と聞いてみたら、ない、ということが分かった。すごいびっくりした