著作一覧 |
最終日。
パディンパダンパドン、みんなふーまなーいで。
という歌を歌う小人が主人公のNHKの(たぶん海外の)人形劇があったことを思い出したが、それとは関係なく
「IPA未踏ソフトウェア創造事業2006年度下期千葉PM採択プロジェクト最終成果報告会」というのがあるそうなので、ふるって参加するとおもしろいかも。
なんか、怒ってるわけ。
仕事はできるし、ちゃんとプログラムも書けるやつが怒っているわけだ。使えねーとかくずとか言いながら。
そこで、いかがしたでござるか? とか言いながら見に行くと、何を呪っているかといえば、java.util.HashMapだ。
なぜ怒る?
だって、このくそったれのIteratorはくそなんですよ。
いや、そりゃ、ハッシュだから……っていうか、ちゃんとドキュメントを読めばLinkedHashMapってのがあるぜ。
で、気づくと、世界(地図は世界の射影か、それとも世界が地図の射影か、まっぷまっぷ)はすべてリンクされているのであった。
という、4〜5年前にJavaでシステム作ってる時のエピソードを思い出す盛り上がりっぷりだった。
人はよく知らないものについて、仮定をもって臨む。あたりまえだ。
で、その仮定は、どうもシーケンシャルなようだ。だから、つっこんだ順に列挙されることが当然と感じる。
さらに10年以上(だと思う)前に、最適化によって実行オーダーが変わることをアセンブリリスト眺めて怒ってた人のことも思い出したり。順序が変わるって、驚天動地な、それまでの天動説が地動説になるような衝撃なのかも。
たしかに、時間はまっすぐに進み、行動は行ったきりで、幸運の女神の髪は後ろにたなびく(と思うと前髪なので誰も掴めない)。
もし、それが感覚ってやつなら、つまり最初にやったことが最初にあり、次にやったことが次にある、と想像することが本能的なものなら、理屈じゃないことになる。
っていうか、順序だけど。最初にハッシュの説明があり、次にハッシュを利用したコンテナの説明がくれば、そういうもんだとわかるだろうし、わかっている連中は、そうやってわかっているに違いない。
でも、最初に、render :text, :foo => bar, :baz => dar というのを見たり、obj = { :a => 1, :b => 2 }という、そういうコンテナ(ハッシュと呼ぶらしい。ハッシュってなんだろう? ハッシュポテトはおいしいな、まあ、いいや。食べればうまいんだから)だというところから入ってしまうと、上で書いた仮定、つまり自然な動作、つまり時間順、やった順、手続き通り、と感じるのは自然だろうな。理屈じゃないんだから、証明する必要すらない。
まあ、キーを与えてのルックアップはハッシュ、列挙は時間(挿入)順ってのは良い落とし所かも。
かくして、人はその実装については知らずにすむのであった。
で、何を類推したかっていうと、ああ、関数型言語ってはやんないだろうなぁ、だって(そのでんでいけば)不自然だもんな遅延評価とか。とか思ったのだった。それでもなおきらめを踏破するのならマスターと呼ぶ声がする。
ジェズイットを見習え |
TechEdのSeasar.NETセッションの際に、お声をかけて頂いたのに、まともな挨拶ができずにすいません。<br>セッションを終えて放心状態でした・・
セッション、お疲れ様でした。それにしても盛況で、正直なところびっくりしました。
ありがとうございます。自分もビックリしました。5人くらいしかいなかったらどうしようかと心配していたのが嘘のようでした。