ハッカー養成塾: 深追い、佳境、バッドノウハウ

最終更新日: 2006-01-31

オープンソースマガジン2006年3月号に向けて書いた記事の元の原稿 です。


ハッカーウォッチャー

前回の武藤健志さんからバトンを受け取った高林です。ハッカー養 成塾の講師という大変な役目を軽々しく引き受けてしまいましたが、 筆者などは、むしろ出来の悪い塾生といったところが本当です。

しかし、どういうわけか、これぞハッカーという人たちと知り合う 機会には恵まれてきました。本稿では、彼らを観察して得られた知 見を元に、ハッカーの人物像について考察してみたいと思います。

ハッカーの人物像

ハッカーといってもいろいろな種類がいますが、筆者の周りのハッ カーに共通に見られる傾向に、以下の3つがあります。

上記の 3点について、これから掘り下げていきたいと思います。

深追い

「深追い」は筆者と友人の間で頻繁に使われるキーワードです。こ の言葉をいつから使い始めたか記憶が定かではありませんが、確か 2003 年頃に、えとこういちろう氏*1の口癖から感染したのが始まりだったと思い ます。

深追いとは、文字通り、何かについて深く追求することです。筆者 の周りのハッカーは、技術的に何か気になる点があると、納得がい くまでとことん深追いします。普通は知らなくていいようなことで も、彼らは詳細まで理解しないと気がすまないようです。知識に対 するこような好奇心と執念深さはハッカーを特徴づける気質のひと つではないかと思います。

一方、同じ気質によって、プログラミングとは関係ないどうでもい い時事ネタに対しても深追いしてしまうことも多々あるようです。 ネット上で起きている不毛な論争や一過性の祭りを追いかけること は非生産的な深追いの一例です。そのような深追いをしている人を 見かけたら「またしょうもない深追いをしてるすか」とやんわりと 指摘してあげるといいでしょう。

なお、深追いの愛好家のことを「深追イスト」と呼びます。これは 自身が稀代の深追イストである、えと氏が提唱した言葉です。

佳境

「佳境」もまた、筆者が友人との間でよく使うキーワードです。小 説や映画の展開がおもしろくなってくると「いよいよ話が佳境に入っ てきました」などと言いますが、プログラミングにも同様に佳境が 存在します。筆者らは主に、手ごわいハックに取り組んでいる状態 のことを佳境と呼んでいます。

佳境の場面は様々ですが、シグナルやマルチスレッドに関するデバッ グなどはその一例です。佳境に入っているハッカーは、問題に集中 して、それが解決するまで食い付いて離れません。ハッカーは問題 解決に対しも執念深さを発揮します。

筆者の周りのハッカーには、この佳境の状態を楽しみたいがために、 わざわざ手ごわい問題を見つけてきては、自発的に取り組む傾向が 見られます。ハッカーの技術的なスキルがどんどん向上していく理 由の一つに、このような気質が関係しているのではないかと思いま す。

バッドノウハウ

「バッドノウハウ」は筆者が提唱した言葉です。筆者の「バッドノ ウハウと奥が深い症候群」というページ *2では、 次のようにバッドノウハウを紹介しています。

計算機を使っていると、何でこんなことを覚えないといけないのだ
ろうか、とストレスを感じつつも、それを覚えないとソフトウェア
を使いこなすことができないためにしぶしぶ覚えなければならない、
といった類いのノウハウは多い。そうした雑多なノウハウのことを、
本来は知りたくもないノウハウという意味で、私はバッドノウハウ
と呼んでいる。

同ページではバッドノウハウを「奥が深い」とありがたがる傾向の 危険性についても述べていますが、プログラミングをする上ではバッ ドノウハウの知識は不可欠です。たとえば、C 言語の演算子で & の 優先順位が == より低いことは、バッドノウハウの一種ですが、知 らないといつかはまること請け合いです *3。また、Web アプリの開発ではブラウザ 間の互換性のなさが昔からバッドノウハウの温床となっています。

そのようなわけで、日々、深追いと佳境に励んでいるハッカー諸氏 のバッドノウハウの蓄積量は相当なものです。そして、彼らは IRC*4 やメッセンジャーなど のリアルタイムのコミュニケーションツールを使って、ギブ・アン ド・テイク式に仲間内で情報交換を行っています。どうやらハッカー の生産性はこのようなネットワークに支えられている部分もあるよ うです。

ところで、以前に 2ch の「(´Д`) 情熱が枯れてしまった人のスレ」 というスレッドに以下のような書き込みを見つけて、うまいことを 言うものだと感心しました。

238 :login:Penguin :04/06/16 10:50 ID:HyJ1Qc2Y
  .twmrc, .fvwmrc, .Xresources, .Xmodmap, .bashrc, .canna, .vimrc, .emacs, .muttrc, ...
  ドットファイル弄りに何ヶ月も明け暮れていたあの頃…。
  ウィンドウマネージャの見た目の1ドットや僅かな色の違いにもこだわったあの頃…。
  自分用にカスタマイズできなくてストレスの末仕事を辞めたあの頃…。

このようなドットファイル *5 もまたバッドノウハウの温床ですが、私の知る多 くのハッカーは、その設定に熱中した経験のある人ばかりです。こ のようなことに熱中できるという性格は、もしかしたら、ハッカー の素質のひとつといえるかもしれません。

まとめ

深追い、佳境、バッドノウハウという3つのキーワードから次のよう なハッカー像が浮かび上がってきました。

ハッカーの特徴には他にもいろいろあると思いますが、上にまとま めた点は、筆者がこの数年間で、周りのハッカーを観察しながら気 づいた共通項です。筆者も、深追いと佳境、そしてバッドノウハウ の探究にもっと励んでいきたいと考えています。

次回は

次回の講師は、KDE や uim などの方面で活躍している若きハッカー、 太田一樹さんにバトンを渡したいと思います。

おまけ

筆者は日々蓄積するバッドノウハウを自分用のメモ*6 に記録しています。メ モの中ではバッドノウハウを省略して BK と記述しています。たと えば次のような感じです。

 
* Unix: flex 2.5.4 だと flex -o foo.c のように -o の後ろにスペース
を開けると駄目。2.5.31 だと OK。BKすぎ。

* Unix: wget のバグではまった。wget 1.8.2 だと
  % wget -q -O- http://namazu.org/ >> a
  % wget -q -O- http://namazu.org/ >> a
のように連続して >> しても連結されない
- 1.9 では解決していることが判明
- -O- のときに stdout に対して ftruncate してたのがバグの原因。BK...

Satoru Takabayashi

*1http://eto.com の人。 qwikWeb の開発者。
*2<http://namazu.org/~satoru/misc/bad-knowhow.html>
*3a と b の論理積をとっ て0 と比較する場合 if (a & b == 0) ではなくif ((a & b) == 0) と書く必要があります。
*4-Internet Relay Chat のこと。詳しくは <http://irc.kyoto-u.ac.jp/> を参照。
*5ファイル名が . から始まる設定ファ イルのこと。
*6メモは ChangeLog という形式でつけています。詳しくは「横着プログラミ ング 第1回: Unixのメモ技術」を参照してください。 <http://namazu.org/~satoru/unimag/1/>