青木日記

<前の日 | この月 | 次の日>

2002-09-03

■ 寝て起きたら

うわあっ、妙にたくさんツッコミが入ってるっ。

■ 郷に逝っては郷に従え、みたいな

あ、いや、ぼくのほうも半ばギャクですし。 ちなみにぼくはわりと Lisp 好きです。 どうせなら「俺は括弧書きたいんだ! viva 括弧!」 とか 「諸君、我々はもっとたくさんのλを必要としている」 とか言ってくれたら文句ゼロで賛同するんですけどねえ。

しかしです。end をくっつけるのが皮肉だとしても、 あんまり整合性がある皮肉ではないですよ。 だって元の文章だと「ポーランド記法とか括弧は重要ではない、 作られる構造の数が重要なのだ」と言ってるわけじゃないですか。 つまり記法の短さじゃなくて文法構造の短さが問題のはず。 それなのにパーサで落とされる end に八つ当たりするのは変です。 もちろん書いたのはそれぞれ別の人ってのはありますが、 整合性がないことに違いはない。

■ プログラムを読む苦労の総和

まじめに考えると、Σでもまずいでしょうねえ。 単発の文をいくらたくさん並べて書いてたところで総和は難しくないですから。 if がやたらとたくさん必要でネストが深くなるとか、 妙なふうに再帰してるとか、 作られるデータ構造が全部ダイナミックでめちゃくちゃ細かいとか、 そういうことになると難しくなるわけです。

つまりあれですよ、トポロジーってあるじゃないですか (よく知らないですけど)。 ああいう感じの、構造を制御する数学を使って解くべきなんじゃないですかね。 最適化のフロー解析みたいなことをして構造を最小まで絞りこんだあと、 制御の線が多いかどうか、線がどのくらい交差するか、ということをしないといけない。

それも、言語の隠してる部分まで考えて計算するべきですね。 違う言語を使ったらプログラムが短くなったと言うなら、 逆に言えばそのプログラム言語はある部分を隠しているとも言えます。 その隠した部分が想像しやすいものであれば、プログラマは動きを想像しやすくなります。 想像しにくいものであれば、想像しにくくなります。つまり難しくなります。

■ accumulator

えー、本当はこんなこと書いてる余裕はティッシュペーパーの厚さほども ないわけですが、思いついてしまったので思いつくままにいろいろ言ってみました。 で、もう一個。

なぜぼくがこんなに反発しまくるのだろうかと考えてみたところ、 例の accumulator が例として適切でないのが一番の問題ではないかと 思うのですね。たとえば

class Accumulator
  def initialize
    @n = 0
  end
  def add( n )
    @n += n
  end
end

と書いたところで、言語のやってることまで考えたら構造的には 大差ないんじゃないでしょうか。でもこちらのほうが (foo なんて無意味な名前はないし) 明らかに意図が明確です。

言語で短くするってことは言語が隠してしまうってことであって、 その部分は自分が想像しなければならなくなる。それがどのくらい 想像しやすいかが、わかりやすさを決めるんじゃないでしょうか。 そして lambda スコープってのはそんなに想像しやすいものでは ないと思います。だからあの accumulator は納得できない。

それに簡潔にするにしたって、普通の処理と同じように、ボトルネックが あるはずです。つまり一番多用する処理から簡潔にすべきです。たとえば それはオブジェクトかもしれない。すると同じメソッドセットを持った オブジェクトがたくさん見付かるので、クラスを作るべきだろう、となる。 今度はクラスも似たようなのがあるんで継承しようってことになる。 単一継承だとまだ共有できないところがある。それでは多重継承とか mix-in を使おうということになる。でもまだ足りない、それじゃあ 今度はデザインパターンで……

■ RC2002

詳しくは言えないんですが、実はその他に個人的な事情がありまして、 今年はどうしても金がいるんです。それは RubyConference よりも 遥かに重要なことなので、RC を切りました。来年また開かれるなら 行こうと思ってます。

■ (補足) 抽象

いや、もちろん常に全部考える必要はないと思いますよ。 でも、それが「中身を考えなくてすむほど簡単/想像しやすい」 ならば考えなくていいっていうことだと思うんです。 んで、lambda 抽象ってそんな想像しやすいもんかな? と。

■ 売れる?

ん? 「売れる」ってなんでしょ。 RHG のことならそんなにたくさん売れる予定はないっすよ (マテ)。 ちなみに、消費者金融で借りすぎて借金取りに追われている…… というわけでもないです (^^;;;

あ、もしかして就職するってことかなあ。それもないです。 まだまだ Ruby 界一の暇人でありつづけるでしょう。

……嬉しくないよ、ぜんぜん嬉しくないよ……

■ マジギレ

ブチキレた。 23 年生きてきてこれほど本気でキレたことはないね。 これほど本気で息の根止めてやると思ったことはないね。

今日、食事とってないんですよ。昨日は一食しか食ってないんですよ。 どれだけ夕飯を待ってたかわかります? しかも今日トンカツですよ。 それが金のないおれにとってどれだけ重大な事実かわかります? 人間、食いもんのためならやすやすと人も殺すんですよ。

それが! それが! 食いやがったんだよ! あいつが! 台所に出る奴だよ! 黒くて光る奴だよ! おれがこの世で一番嫌いで名前を呼ぶのも汚らわしい奴だよ!

殺してやる。殺してやる。殺してやる。殺してやる。殺してやる。 あー、この「混ぜるな危険」の洗剤で薬殺してやろうじゃねえか。 こんなもん、うっかり飲めば人間だって死ぬんだぜ? きさまごときが何秒生きてられると思ってんだぁ?! あああああ、コソコソ逃げまわってんじゃねえよ死にくされこの虫ケラがぁぁぁぁっっ!! (文字通り)

つーわけで手段を選ばず瞬殺しました。 でも恨みをはらしてもトンカツはもう返ってこないのです。 残ったのは奴をブチ殺すために荒れてしまった台所だけです。

……あぁ、今日の夕飯どうしたらいいんだろう。

■ ああ。

いまごろ米が炊けた。遅いよ……。

■ !

うわああああああああああああああ!

もう一匹いたあああああああああああああああああああああああああああ

でかい。二倍はある。でかすぎる。ゆびがふるえてシフトおせない。

■ 完全勝利

く、くるしいたたかいだったが薬殺ののち掃除器への封印に成功。 我が軍はここに完全勝利を収めたのであった、まる。

■ アレ

本気で恐かった。ショック死するかと思った。なんか後ろで カリカリ……カリカリ……って音がするから、なにかと思ってふと見たら、 いたんだよそこにぃぃ! 本棚にへばりついてんのが! 誇張でなく 5cm はありました。しかも一発目の洗剤あてたら飛ぶし。

もう嫌だ。 もう東京は熱帯みたいだから嫌だ、だからあんなのがでるんだ、 北海道はあんなものいないっていうから将来はぜったい北海道に行く、 それも最近は札幌には出るっていうからもっと奥地の寒いところに行く、 北海道在住のお嫁さん募集。

そういえばファミマでも奴にはよく会いました。なぜかファミマで合うと わりと大丈夫なんですね。あまりに数が多すぎて麻痺するのか、 武器が多いからか、あるいは靴をはいてるからかもしれない。 家の中だと踏んだから嫌だから近付けない。でもファミマでは 底の厚い靴をはいてるのでうっかり踏んでも大丈夫です。

というか一度踏みました。レジから呼ばれたからなにかなーと思って 行ってみたらレジに入るところで、「グシャッ」と、実に嫌な感蝕が 伝わってきたんですよ。んで、レジが呼んだのはそれを退治してほしかった からだという……。

ああ。だめだ。寒けがする。恐くて集中できない。 どうしたらいいんだ。 どうしたらいいんだー!

■ RHG

やばいよ……。 なんで LaTeX にしたらいきなり 550 ページになってんだよ! やばい。これは本当にやばい。下手すると出版できなくなる。 どうしよう。今日は本当に最悪だ。

本日のツッコミ(全6件)
■ kjana (2002-09-03 17:47)

隠している詳細っていうのは見る必要ないんじゃ?
適当な抽象を用意してくれているならそこは抽象の
まま受け止めておくべきで.

そのへん展開していくんだっていうと,チューリン
グマシンとかラムダ計算とかまで落ちませんか?

■ うおっ (2002-09-03 18:04)

まさかあおきさんまで売れちゃうの?(一人レベル低いツッコミのなひ

■ たむら (2002-09-04 07:20)

量が多いのは望むところなんですが>RHG。出版的にヤバイんでしたっけ ?
# 私も!!ゴ!!キライ

■ あおき (2002-09-04 07:34)

ページ数が多すぎると値段が上がるっていうのが一番の問題ですね。
ついでにこないだの打ち合わせで「450ページもいりませんよーはははは」
って言ったばかりだというのもそれはそれでかなりヤヴァいですね。

■ なかだ (2002-09-04 12:03)

一度、飲み屋で叩きつぶしたことがあります。拳で。

折角ですが、その座は譲れませんな(謎)。

■ (う) (2002-09-04 12:14)

どんなに分厚くてどんなに高くても買うです。いや、限度はありますが、常識の範囲なら...


<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|