2007-04-30

_ 「名前」の方が勿体ない

shiroさんとこより

無名関数に慣れた人間にとっては逆に「名前」の方が勿体ないという感覚があるからだ。

この気持ちはとても分かる気がします。 例えば、Cのような無名関数のない言語で、 ブロックにずかずか書きたくなるのは似たような感覚のように思います。 ものすごーく極端で人工的な例だと、

static void
print_int (int i)
{
  printf ("%d\n", i);
}

static void
range (int start, int end, void (*f) (int))
{
  int i;
  for (i = start; i < end; i++)
    f (i);
}

int
main (void)
{
  range (0, 10, print_int);
  return 0;
}

などと書きたい人は滅多にいなくって、

int
main (void)
{
  int i;
  for (i = 0; i < 10; i++)
    printf ("%d\n", i);
  return 0;
}

と書きたいわけです。 余計な関数は作りたくない。

実のところ、最近、 とりわけ イテレータについて書いた 頃から、現在のGRUB 2のやり方は気持ちよく感じなくなっていて、 なぜかと言うと、 GRUB 2はRubyを模倣して内部イテレータを多用する方法になっているのが、 いろいろ面倒だなあ、と。 名前空間を汚したくないし、 データの受渡しの問題もあったりするので、 nested functionを使いまくることになっているわけですが、 これが外部イテレータだったら、 関数名は不要で、 普通にfor文で回せば済むわけで。 もちろん、Rubyならブロックを渡せるから、 Rubyはそれでいいと思うんですが、 Cにはあんまり向いてないなあ、と。

非常に困るわけでもないので、当面変更する気はないのですけど、 何年後かにGRUB 3を作ることになったら、 その時は外部イテレータを使って書くだろうなあ、とか。

_ 「株式会社という病」を読む

私の田舎の友達も、都会のでっかい会社で働いている人と比べて、あーだこーだなどとは言わないし、 彼らは彼らなりに楽しんで暮らしているように思われるから、 何だか分かる気がしますね。 みんながみんな、すべからく社会的エリート(?)にならなきゃいけないと風に教育されていたら、随分辛い人生なんだろうなあとか、 田舎育ちで、そういった発想のない世界に生まれた私は思う。

それはともかく、社員が仲良くやっていけるような会社を維持しなきゃならないんだよなあ。 うちの会社は今はそうなっているけれど、 今後大きくなっていくと、そういう雰囲気は次第に失われる危険があるのだろうと思う。 そうならないよう、気を付けていないといけないよな。

本日のツッコミ(全2件) [ツッコミを入れる]
_ えとー (2007-05-01 22:33)

「社員が仲良くやっていけるような会社」って社員が馴れ合っている会社と紙一重なんですよねぇ。うまいほうに転がればいいんでしょうけど。

_ okuji (2007-05-02 05:38)

おっしゃる意味がうまく掴みとれないのですが、個人的には、会社にやってきて近くにいる人にも挨拶しないような、陰惨とした環境にだけはしたくないと思ってます。

[]