【LL魂2007レポート:その1】

日本初のハッカー、和田先生が語る「ハッカー気質」

2007/08/07

wada01.jpg ハッカー気質について講演する東京大学名誉教授の和田英一氏

 「ハッカーというのは自分で“ハッカー”と名乗るのではなくて、いろいろやっているうちに人からそう呼ばれるもの」――。集まった500人を超えようかという聴衆に向かって、そう語り出したのは東京大学名誉教授の和田英一先生だ。日本の計算機科学分野のパイオニアで、最近ではハッピーハッキングキーボードの監修などで知られる和田先生こそ、“日本最初のハッカー”として知られる人物だ。和田先生の講演で幕を開けた軽量プログラミング言語イベント、「Lightweight Language Spirit」をレポートする。

週末が似合うLL言語

 8月4日土曜日、東京・一ツ橋のホールでRubyやPHP、Pythonに代表される軽量プログラミング言語(以下、LL言語)のファンが集う年に1度のイベント「Lightweight Language Spirit」(以下、通称のLL魂を使用)が開催された。同イベントは2003年に「LL Satuday」としてスタートして今年で5年目。2004年に「LL Weekend」、2005年に「LL Day and Night」、2006年に「LL Ring」と少しずつ名称が変わっているが、一貫しているのは、毎年週末に行われるということだ。

wada01b.jpg 約500人の聴衆が集まったイベント会場

 最近LL言語はビジネス方面での応用が注目され始めているので、「そろそろ平日開催にして会社の業務として参加できるようにしてほしい」という声も聞こえてきそうだが、LL魂は週末が似合うイベントだ。セミナーや講演が中心のIT系イベントとは異なり、情報の発信・共有ということよりも、「プログラミング言語について語ること」「自分が好きなプログラミング言語がいかに優れているかをデモやベンチマーク結果を交えて自慢して、みなで盛り上がる場」「ハックの成果を披露する」という種類の“お祭り”だ。昨年は「LL Ring」と題してボクシングリングを囲んで言語別対決をやったりと、遊び心いっぱいの集まりだ。会場を見渡してもジーンズ姿が主流で、参加者には若い開発者や学生が多かったようだ。

ハックは「個人の表現」

 「遊び心がある(playful)ことがハックの条件の1つです」。和田先生は、平均すると自分よりも3周りも4周りも年下ではないかという聴衆に向かって、終始楽しそうに語りかけた。和田先生は1931年生まれと高齢だが、ジーンズ姿で「次に読んでみたいソースコードはTeXで書かれたBASIC」と言って会場からリスペクトの混じった笑いを取るなど、ハッカーぶり健在といった様子だ。

 和田先生のマサチューセッツ工科大学時代の研究仲間に、こんな人がいたそうだ。その人は、エレベータに乗り込むなり操作盤のパネルを開いてパチパチとスイッチを切り替え、1階から9階まで必ずノンストップで上がってしまい、1日の作業を終えて帰宅する際には、必ず自分の端末からエレベータを自分のいる階に呼び寄せてしまう。すごいのか、ずるいだけなのか、よく分からない。ともあれ、聞いている方もニヤリと笑ってしまうようなエピソード。遊び心があるのがハックだという格好の例だろう。

wada02c.jpg 「hack」の意味について、辞書の語釈をひもといて説明する和田先生

 一般的な英語の辞典を引くと、「ハック」(hack)という動詞には、もともと「貸し馬」などの意味があったそうだが、もちろんコンピュータの世界でハックといえば、特別な意味がある。「新ハッカーズ辞典」(The New Hacker's Dictionary、Eric.S.Raymond著)によれば、1番目に「必要なことをやるための、素早く、しかし上手いやり方ではない仕事」という定義があり、2番目に「必要なことをやるだけなのに、信じられないほどいい仕事で、おそらく非常に時間のかかる仕事」という定義が挙げられているという。和田先生は「1番と2番は矛盾していて、何だか分かったような分からないような定義ですね」と笑う。

 ハックには斧で家具を作るという意味もあり、これが現在コンピュータの世界で使われているハッカーという言葉の語源に当たるのだという。そして、そのハックの成果というのは「個人の表現で、その人のキャラクターがにじみ出ているようなもの。チームではハックはできない」(和田先生)

和田先生が挙げる「非常なハック」とは

 自身は軽量プログラミング言語は使わないという和田先生は、「今日はハードウェアについてお話ししましょう。昔のハードウェアは、今のソフトウェアより分かりやすかった」と、ハックの事例をいくつか挙げた。

 1つは、最近ダ・ヴィンチ展で見たというレオナルド・ダ・ヴィンチが作った楕円コンパス。それは右の写真のように3本の支柱によって支えられた筒状の容れものに鉛筆を入れたシンプルな道具だ。鉛筆の長さは筒のアングルによって代わり、ぐるっと筒が回ると紙に楕円が描けるのだという。「数学の講義みたいになってきましたね」と笑いながら、和田先生は、その原理を説明した。

wada02.jpg レオナルド・ダ・ヴィンチが製作したという楕円コンパス
wada02b.jpg 楕円コンパスで楕円が描ける理由を説明する和田先生

 もう1つのハックは潮位予測器。潮の満ち引きによって、特定の港の水位が、日々どのように変化するかを予測するための機械式計算機だ。潮汐による水位の変化は、主に太陽と月の引力による。水位は、地球とこれらの天体との位置関係によって決まる。これは地球や月の自転・公転周期をパラメータとしたsin関数の合成によって求められる。これはつまり、特定の港で観察した水位の変化をフーリエ解析してパラメータを決定し、逆に求めたパラメータから、いくつかのsin波を合成して水位を求めるという話だ。緯度の異なる港ごとにパラメータは異なるため、それぞれの港に対して潮位予測表を作成しなければならない。

 これは、現代なら電子式コンピュータが瞬時に答えを返してくる話だが、和田先生によれば、初期の潮位予測器が登場したのは19世紀。まだ電子計算機が姿もなかった時代、水位を求めるには玉、円柱、円盤、滑車を使ったのだという。

 具体的な説明を聞いている途中で記者は理解不能で脱落したが(シャッターを押すのに忙しかったとしておく)、潮位予測器の原理は、およそこうだ。

 中央に1本の足がついた円盤の上に、球と円柱を接触させて置く。円柱は上下にだけ動く。この円盤を回転させることで摩擦のある球と円柱がある関係で動き、円柱の移動距離を測ることでsin値が求まる。潮位予測器は、この円盤形の積分器をいくつか用意し、滑車とひもを組み合わせることでフーリエ合成を行う。最終的には「ひもの長さ」というアナログな値として、水位の時間変化を求め、ロール紙状のものに記録したのだという。

 こうした潮位予測器は、日本でも気象庁が1930年から1960年まで使うなど、ごく最近まで使われていたといい、現在は上野の国立科学博物館に展示されている。同じ上野の博物館には9元連立方程式を解く機械も展示されているが、和田先生は、こうした機械は「非常なハックだ」と話す。一見ソフトウェアのプログラミングとは何の関係もなさそうだが、入手可能な道具を組み合わせてアルゴリズムを実現するという点では、むしろ、むき出しのアナログな機械式計算機のほうが、見て分かりやすいのかもしれない。

wada03.jpg 球、円柱、円盤を用いた積分器
ueno023.jpg 上記の積分器を複数個並べて作った潮位予測器(国立科学博物館所蔵)
wada05.jpg 潮位予測器の原理説明図
wada07.jpg 9元連立方程式を解くアナログ計算機(国立科学博物館所蔵)

 ところで、和田先生はダ・ヴィンチの楕円コンパスの図も潮位予測器の図もポストスクリプトで描いたという。「楕円コンパスの図はね、けっこう描くのが大変だった」というと、会場から「わざわざ難しいことを難しいやり方でやって喜ぶのがハッカーなのか」という、ちょっとトゲのある突っ込みが入った。すかさず和田先生は、「慣れでしょうね、私はファイルを開くと、まずパーセント、ビックリと入力しちゃうんですよ」と言い放ち、会場は拍手と笑いに包まれた。「%!」はポストスクリプトファイルの先頭2バイトだ。

 ポストスクリプトはソフトウェアが出力するDTPデータや画像向けのフォーマットだが、ちょうどHTMLのように中身はテキストファイルで、その気になれば手書きも可能だ。変数や演算を用いたプログラミング言語的な処理も可能なことから、世の中には“ポストスクリプトを手書きするハッカー”という人種が存在する。

 楕円コンパスぐらい、適当な画像作成ソフトを使えば済みそうな話だ。しかし、ハッカー辞典の2番目の定義はこうだった。「必要なことをやるだけなのに、信じられないほどいい仕事で、おそらく非常に時間のかかる仕事」。この定義を実演して見せた和田先生は、やはりハッカーだというほかない。

 LL魂イベントレポートその2では、各LL言語の最新アップデート情報をレポートする。

(@IT 西村賢)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)