Rubyist Hotlinks 【第 4 回】 ただただしさん

はじめに

著名な Rubyist にインタビューを行う企画「Rubyist Hotlinks」。 前回のかずひこさんからのご紹介で、今回は、ただただしさんにインタビューさせて頂きました。

なお、今回のインタビューは、RHG 読書会の場をお借りして行われました。

ただただしさんのプロフィール

tada-1.jpg東京生まれの神奈川育ち。 大学では物理学を専攻し、その傍らで商業誌で SF 小説を発表したりも。 結局、プログラミングで身を立てることになって現在に至る。

家族は奥さんと二人暮し。猫がいたりいなかったり。

座右の銘
「継続は力なり」
尊敬する人
今西錦司氏
たださんのサイト
ただのサイト

インタビュー

聞き手
ささだ
語り手
たださん
野次馬
mput、RHG 読書会参加者など
日にち
2004 年 11 月 7 日
場 所
株式会社タイムインターメディア 本社

人物像

好きな言葉

ささだ
好きな言葉とか座右の銘はありますか。
ただ
「継続は力なり」というのが座右の銘です。
ささだ
なんかすごい真っ当ですね、って別に真っ当じゃないのを期待したわけではないんですが。
ただ
真っ当ですよ(笑) なんか変な期待しないで(笑) もう充分実戦経験を積んだので、あんまり変なことは言いません。
ささだ
継続は大切ですね。tDiary*1 なども、そんな感じでしょうか。
ただ
途中で細くなることはあっても続けていればまあいつかなんかあるだろうというのはありますけど。でも Lisp 系の言語の継続*2はさっぱり(笑)
ささだ
こういう理由でこれを座右の銘にした、という話はありますか?
ただ
仕事のこともそうだし、趣味のこともだけど、Ruby 関係の他にもこま犬*3とか、スーパーカブ*4ML*5 も 90 年代前半から運用してたりとかして、それでずっとやって来た結果としていろんな人脈ができていて。そういうのがずーっと続いてるというのを見ると、途中でやめないでいたおかげで、いろんな固い繋がりができてるなあと思うことがある。どんな行動でも始めたらできるだけ続けてやめずにいると、大抵は、いつかいいことがあるなあ、と。

尊敬する人

ささだ
尊敬する人は?
ただ
今西錦司*6先生が尊敬する人でございます。
ささだ
どういう方でしょうか。
ただ
今西進化論*7という独特の進化論を唱えた……一部ではトンデモといわれている学説ですが(苦笑)
ささだ
では生物学者さんですか?
ただ
生物学者ですね、1902 年生まれだからもう亡くなってますけど。
ささだ
たださんって生物学方面の人だったんですか?
ただ
いや、全然関係ないです。独特の視点を持った人で、形に囚われない発想をする、代表的人物として。
ささだ
今西さんをご存知になったのはどういうきっかけで?
ただ
大学の頃、進化論の本を読みあさっていたら、今西さんの学説に出会って、ダーウィニズム*8よりもなにかしっくり来る学説だなあと思って。それでいろいろ著作を読んでいったら、なかなか面白い発想をする人だなと。
ささだ
プログラミング系で尊敬する人はいますか?
ただ
あんまりいないんだよね。っていうか、情報系の勉強ってほとんどしたことがないので、あんまり尊敬する人とかってないんですよ。
ささだ
じゃあ最初は情報系じゃなかったんですか?
ただ
はい。もう最初から終わりまで物理学でございます。

生い立ち

ささだ
では、生い立ちとか聞いてもいいですかね。
ただ
はいはい。
ささだ
松江で聞いた時は皆様*9ぺらぺら生年月日から出生地まで喋ってくれたのですが(笑) そこまでは言っていただく必要はないのですが、どうでしょうか。
ただ
ネット上で年齢は公開してないんで、うん。まあ、6 月 27 日生まれ。世代的には、まつもとさんとほとんど同じだと思います。東京生まれの神奈川育ち。
ささだ
じゃずっと関東で。小中高のころから物理屋さん?
tada-2.jpg
ただ
小学校の頃から理科準備室のヌシだったので、もう完全に科学屋さん。科学志向で、将来は絶対科学者になると決めて、物理学科に入りました。いちおう大学院までは進んだんですけど、テンソル*10に嫌われたので、それきり(笑)
ささだ
なるほど。じゃあテンソルは苦手と。
ただ
ていうか、もうその前の波動関数*11からダメだったかなー。算数苦手だっていうのがそのあたりにようやくその頃気付いたというか、気付くのが遅いよっていうか。
ささだ
で、大学の後は今の会社に?
ただ
うん、大学の 4 年の頃にコンピュータを。
ささだ
え、4 年生で出会いですか?
ただ
その前にポケットコンピュータみたいのはあるけど、本当にちゃんと普通のコンピュータは大学 4 年からです。遅咲きでございます。
ささだ
その頃って FORTRAN とか?
ただ
あー、でね、FORTRAN の授業はまだパンチカード*12の時代だったので(笑) 「死んでもやりたくない」と思って取りませんでした。
mput
世代バレるよ(笑)
ささだ
じゃあ大学 4 年生の頃は?
ただ
98*13 の、あの頃一番速かったの……なんだろうなぁ。「E」*14とか。
ささだ
わかりません(苦笑)
ただ
まだ V シリーズ*15が出てなかった頃かな。多分出てたかもしれないけど、うちの研究室ではまだ無印 98 とかがゴロゴロしてた。
ささだ
PC-98 で物理の実験とかを行ってたとか?
ただ
いや、全然関係ない話。一太郎*16で小説を書いてました(笑)
ささだ
小説家になろうとしていらっしゃった?
ただ
うん、小説家を目指していたんだけどね。SF 作家を目指していて、SF マガジン*17に作品を売ったこともあります。
ささだ
おー。載ったんですね。
ただ
載った。一回だけ。
ささだ
じゃあついでなんですけど「VZ 倶楽部というのを聞け」と、かずひこさんからご伝言預かってるんですが(笑)
ただ
(笑) あったねぇ。
ささだ
なんで小説家にはならなかったんでしょうか?
ただ
やっぱねえ、あんまり才能ないな、と自分で思って見切りをつけたのと、後は、もうその頃にはプログラミングと小説書きの比重が、どっちかというとプログラミングのほうが面白いなと思ってたので。このまま物理学でも大成できそうにないし、小説家にもなれそうにないんで、じゃコンピュータ関係に進むかと。
ささだ
なるほど。ではちょっと戻って、プログラミングを始めた時、言語は最初は何をやったんですか?
ただ
最初は Turbo Pascal*18 でした。
ささだ
Pascal 自体はすぐに習得できましたか?
ただ
先輩に教わったので、教える人がうまかったのかもしれないけど、そんなに苦労した記憶はないですね。ていうか、最初で躓かなかったのがのめり込んだ理由だろうなあと思うので。
ささだ
就職先を決めたのとプログラミングを始めたのは同じくらい?
ただ
いやいや、大学院で 2 年過ごしたんで。
mput
ちなみに大学院ではどういう研究をされてたんですか?
ただ
超伝導です。超伝導って言ってもはやりの高温超伝導じゃなくて、極低温で起こる不思議な現象を追いかけるほうの超伝導。

主なソフトウェア作品

ささだ
たださんの代表作って tDiary でしょうか。「tDiaryのたださん」っていう感じですけど
ただ
まあそれでいいでしょう。
ささだ
tDiary の前に発表されたものとしては RuBBS*19 がありますが、他に Ruby で発表したものは?
ただ
Ruby で発表したのは RuBBS とあとは Mobiler っていう携帯向けのメール転送ツールを出してる。ほとんどユーザーいないと思うけど。RuBBS は多分最初に Ruby で発表したものだよね。多分 Ruby で最初の掲示板ソフトだったと思う。あの頃のコードはまだ Ruby っぽくない感じではある。
ささだ
じゃあ個人的には他にも使われてたりとかするんですかね。公開されてないような。
ただ
いやもうその頃はねぇ、なんかある程度ものになったものは基本的に公開する方針で作ってましたね。
ささだ
では、tDiary もすぐ公開された?
ただ
そうそう。
ささだ
あと、著作は……じゃあ SF?
ただ
いや、いちおうあれでしょ。256 本*20が一冊あるんで。あれが唯一の代表作。他には単行本が出てないんで。

tDiary について

ささだ
tDiary 作ろうと思ったきっかけとかは。
ただ
それまでも日記書いてたんだけど、全部手書きの HTML でゴリゴリ書いてたので、まあそろそろめんどくさくなって来たなあと。
ささだ
手書きって FTP でアップロードするような感じで?
ただ
そうそう。手書きにしてた頃は、日本に日記システム*21があることすら知らなかったんだけど、なんかあるかなーと思って調べたらなんかけっこうある。けっこうあるんだけど Ruby のは、nDiary*22 が登場するかしないかくらい。なので、じゃあ自分で書くかいなと。あ、知らなかったわけじゃないか、人の日記を見て気付いてはいたんだけど、日記システムについて深く考えたことがなかったんで、これを機にちょっと面白いやつが作れたらなあと思って自分で作ったと。当時は、人の作ったものを持ってくるんじゃなくて、とりあえず自分で作ってみたいという気持ちと時間の余裕がまだあったんで。
ささだ
それでこれだけ広まったと。これが tDiary が広まったきっかけだ、という風に分析されている点はありますか?
ただ
従来の日本の Web 日記文化って、かなりまどろっこしくて、結局リンクを貼った相手が Web のログを分析して、リファラ見て、それで自分が言及されていることを知って、また自分の日記にそのことを書いて言及してリンク貼って……という、「ネット使ってるくせになんでこんなまどろっこしいことをしとるんじゃあんたらは」という感じだったんです、自分が見ている感じでは。だから、もうちょっとダイレクトにやろうぜ、と思ってつけたのが、「ツッコミ」と「本日のリンク元」。当初は、「本日のリファラ」と書いてあったんだけどね。その二つで、もっとダイレクトにコミュニケーションベースの日記システムにしないと、ちょっと俺はやっていけんなと思ったので。そういうコミュニケーション機能を全部ビルトインしてしまうことで、すごく日記コミュニケーションが楽しくなるだろうと思って作ったのがきっかけなので、それが一つ。要は、端から見てても楽しそうに見えるはずなんで、それがまあ広まった理由だろうなあとは思うんだけど。まあ、でも、どうなんだろう。どうですか(笑)
ささだ
どうなんですか、使ってる方々?
mput-1.jpg
mput
使ってるほうとしては、別に広まったから使ったというわけでは……個人的には RD*23 で書けるというのが魅力だったので。
ただ
RD が使えると知って使い始めた人はかなり後期の人ですね。
mput
そうですねぇ。
ただ
まあ、かなり戦略的にいろいろ考えてはいるんですよ。まず Web ブラウザ上だけで完結しなければいけない。従来の Web 日記システムはほとんどがローカルで書いたものを HTML に変換してアップロードするという手間をかけていたんだけど、まずブラウザ上で書けなきゃいけない。そういうの実はあんまりなかったし、少なくとも公開されているフリーソフトウェアとしてはなかった。サービスとしてはあったかもしれないけど、ブラウザだけで全部できますっていうシステムはあまりなかったのが一つ。それから、さっき言ったコミュニケーション機能を前面に出したことが一つ。あとは、どうせ普及させるなら一気に普及させないと。つまり、使ってるユーザーがじわじわと増えていっても実はあまり目に止まらなくて、ワッと増えないと目に止まらない。一気に「あ、いつの間にかこんなにたくさん使ってる人がいる」っていう状態になるのがいちばんいいはず。普及期にはユーザーが一気に増えて、ユーザーの中から開発者が出てくるはずだから、ユーザーをワッと増やすと、開発者もワッと増えるわけ。というところを考えて、tDiary.Net を開設して無料レンタルを始めた。
mput
そんなの考えていたのか。素晴らしい。
ただ
だからかなり戦略的にはやっていたんですよ。
ささだ
作り始めてどれくらいで戦略的な方針をたてていったんですか?
ただ
いやまず見た目楽しくなきゃいけないって思ったからコミュニケーション機能入れたし、あとは CSS を入れ替えてね。テーマという形で分離したのはちょっと後なんだけども、CSS を書くだけでちゃんと見栄えがパッと変えられると。見た目の面白さとかできるように。ようはエンターテイメント性はちゃんと前面に打ち出そうというのは考えてたし。あとは、導入の手間がかかる、というか、導入の手間がかかる以前にそもそもレンタルサーバに Ruby が入ってなかったりするわけだから、Ruby が入ってない人たちが使い始めなきゃ意味がないと思ったんで、レンタルサービスを自ら始めたと。そうやって露出が増えることで使いたいと思う人が増えて、そうすると各地のレンタルサーバに Ruby が入るであろうという目論見くらいは最初からありました。
ささだ
今はずいぶんいろんなサーバが Ruby 入れてますよね。やっぱり tDiary の成功が、っていうのはあると思いますし。
ただ
あるかもしれない……。
ささだ
っていうか「RubyってtDiary動かすための言語でしょ」っていう(笑) Rubyと言ったら tDiary というのはあると思うので。やっぱりそれだけ戦略的にして来たのがすごいなぁ。そもそも Ruby 言語自体もあんまりプロモーションには力を入れてない言語だとは思うので……たださんみたいな人がもっといれば(笑)
ただ
Ruby は自分にとって一番、手にしっくり来る道具だから、どこにでもあってほしいわけですよ。だから自分の PC にはデフォルトで入っていてほしいし、Linux インストールしたら全てのディストリビューションにデフォルトで Ruby が入っていてほしい。今、Perl はほとんど入ってるのに、Ruby がデフォルトで入るっていうのはあんまりないけど、本当はそういう風になってほしいし、レンタルサーバ借りたら当然そこに Ruby がなきゃいけないし。そういう未来を実現するために魅力的なフリーソフトウェアを作る。自分が使いやすい環境のためなんですよ、最終的には。
ささだ
なるほど、そこまで考えて tDiary を。
ただ
tDiary に限らずね、Ruby を使ったプロダクトは基本的に、CGI に関してはレンタルサーバに Ruby を入れさせようという裏の目論見が常に。RuBBS のころからあります。
mput
僕が tDiary を弄っていて思うのは、なんで XHTML になってないのかとか、なんで UTF-8 にすれば楽になると思うのに UTF-8 使わないのかとかそういう話を。
ただ
まず XHTML になってないのは……。
mput
多分歴史的経緯だとは思うのですが。
ただ
いや、そうでもない。記述形式が一番最初*24は素の HTML を書かせる、要はタグまで全部ユーザーに打たせるというのが前提だったんで。そこで XML をもとめるのはどうかと一つひとつあって。厳密さがあまりに高すぎるんで、普通の人が普通に使うのに、正しい XHTML を書けないでしょうと。だから記述形式を自分でタグ打つようにした時点で XHTML や HTML の strict のような厳密なものは基本的には避けると。だから tDiary 最初に出した時は strict でもなかったし。
mput
今は strict ですよね。
ただ
今は strict にした。それはどちらかというとテーマとの整合性に絡むんだけど。基本的には HTML 使える人なら tDiary 使えますよという形にしたかったので。RuBBS は XHTML ですよ。あれは投稿する人はタグを書かないで、すべてシステムがタグを挿入するので、厳密な XHTML を出せるからそうしてる。tDiary は書く人がタグを書く前提なので、HTML にしてある。
ただ
であと UTF-8 にしてないのは、開発にうちで使っている主要 Web ブラウザである w3m*25 が当時は UTF-8 に対応してなかったからです(笑) 最近やっと組み込まれたんで……。
ささだ
最近でも w3m なんですか?
ただ
うん、少なくとも日記書くのは全て w3m。
mput
日記サイトとかで w3m で見たらすごく本文までが遠くて許せないやつとか、ありますか?
ただ
あー、日記っていうか、ブログ系は大抵そうだね。tDiary はサイドバーはかならずフッターに入れましょうという方針が打ち出されているので、必ず本文が最初に出てきます。だからね、アクセシビリティはかなり高いはずなんですよね。どんなブラウザで見ても読みたいところが最初に来るはずだし、携帯からもアクセスできるし。XHTML 使ってないとか UTF じゃないとかそういう部分においては、一見現代的でないようには見えるんだけど、実は HTML のストリクトレベルとかではすごく得点が高いはずだし、HTML-lint とかかけると。で、アクセシビリティも高いし、携帯にも対応してるしという意味では、多分まだ他のツールの追従を許してない部分があると思いますよ。
mput
あと最近の話だと MoonWolf さんがたくさんパッチを送って来てくれてて、xml-rpc にも対応するようになったのですが、この辺はどうですか? xml-rpc 好きとか、嫌いとか。
ただ
あんま好き嫌いはないけど、あったらいいだろうなあとは思っていたので、やってくれるんだったら好都合かなぁという感じかな。ただちょっと認証の問題があるので……。
mput
そう、tDiary 自体には認証の機能はないんだよね*26
ささだ
まだ、問題というか、tDiary 自体に対する課題っていうのはいろいろあるんですか?
ただ
課題つうか、Blog ツールにすり寄るための課題があるだけで、基本的に日記ツールとしてはもう。ていうか 1.0 の時にはもう基本的な構想は作り終わってるんで。
mput
じゃあ tDiary の将来は? 今後どういう方向に向かっていくのかとか。
ただ
あんまり考えてない(笑) UTF-8 化はしたいなと思ってますが。
mput
それ以外の部分はもう完成されていると?
ただ
うん、もう 1.2 を出した頃には基本的に当初やりたかったことは済んでいて。あとはもう拡張性を保たせてやればいいだろうと思ってます。だからもうそろそろ新しいことをやりたいんだけど。でもネタもないし時間もない。

Ruby について

好きなメソッド、嫌いなメソッド

tada-3.jpg
ささだ
好きなメソッドとか嫌いなメソッドは?
ただ
あーそれが悩んだんだ。博愛主義者なのであんまりねぇ、「これが好き」っていうのは特になくて、みんなだいたい好きです。あんまりこだわりを持って使ってる部分ってそんなになくて、与えられたものに満足して使うタイプなんで、好きなメソッドはあんまりこれというのはないですね。ただ、嫌いなメソッドは String#scan です。
ささだ
その心は?
ただ
なんか難しくていまだに使い方がよく分からないから(笑) 一つのメソッドとしてはできることが多すぎるんじゃねえかという気がするんだよね。いつも irb 上で「こう使うんだっけ、ああ使うんだっけ」ってためしてからでないと書けない、いまだに。あれをみんなすらすら使ってるのはすごいなと思います。
mput
scan メソッドは、正規表現の意味が他のところと違う。括弧にマッチした時の挙動が普通と微妙に違うのね。
ただ
そうそう。で、結果が二次元で出てくるのね。あれがどうにもね。二次元になるとダメなんだな俺(笑)*27

Rubyist になったきっかけ

ささだ
Rubyist になったきっかけは?
ただ
Ruby を知ったのは、多分 JavaHouse-Brewers の ML でちょっと話題になっていたので。
ささだ
95〜96 年とかそのへん?
ただ
かなぁ。Ruby がまだ 1.0 じゃなかったような記憶があるんで。ちょっと時期はよく分かんないんですけど。オブジェクト指向っていいなと思いはじめて、C++ を触って、そのあと Java が出て来て。で、「Java はいいんだけどやっぱコンパイルが遅くてタルいよなぁ」と思ってたところにコンパイルいりませんよっていうオブジェクト指向の言語ありますって言われて、これはちょっとやってみるかいなと思って取りかかったのが Ruby。
ささだ
まだ海とも山とも分からないような状態?
ただ
そうそう。
ささだ
よく手を出しましたね。
ただ
ねえ(笑) まあそのときにはずいぶん仕事にも余裕があって、いろいろ勉強しようと思っていた時期だったということもあって。いろいろ手広くやろうかなとは思ってました。……まあでもあんま手広くはやってないねぇ。Java から Ruby に来てそれっきりだから。

Ruby とわたし

ささだ
では、お仕事では Java で趣味では Ruby でっていう感じなんですか?
ただ
いや、Java も仕事ではほとんど使う機会はなかった。ていうかもうそのときには既にあんまりプログラミングさせてもらえない地位にされてしまっていたので。あんまり仕事でプログラミングをする機会がなかったんですよ。あとはまあもう趣味と言うか、調査と言うか。
ささだ
C++ とかも仕事ではなくて自分で勉強のために?
ただ
そうです。だからもう大学も専門じゃないし、会社入ってからもあんまりプログラミングは実はしていないから、基本的には全部独学です、プログラミングは。
ささだ
じゃあ、現在は Ruby は趣味で使われてるメインの言語っていう感じですか?
ただ
うん、あーでも、いま会社のネットワーク管理チームの親分もさせられてるんですけど、そこでは強制的にスクリプト言語は Ruby を。
ささだ
会社のっていうことは、やはりそれなりの規模のものを?
ただ
数百人レベルで事業所が二つくらいあるネットワークで、ネットワーク監視とか、あとは従業員からの申請用の CGI とかがみんな Ruby で動いてます。

Ruby の好きなところ、嫌いなところ

ささだ
たださんにとって Ruby の好きなところ・嫌いなところは?
ただ
難しい。さっきも言ったように、博愛主義者ですからね。基本的に言語は道具として見ているので、手に馴染んでればいいやという話で。Ruby はそういう意味で言うとすごく手に馴染んでいるから、それについて自分で分析したことはないんだけど。やっぱり開発のターンアラウンドが短くて済むのが一番いいところで、あとはピュアなオブジェクト指向言語ってところが自分には一番マッチしてるなと。
ささだ
Ruby でこれが嫌だなぁとかいうのは? さっきの scan ですか?
ただ
んー、まあでも scan は使わないで済むなら済むから別に。嫌いな所は基本的にはないですよ。基本的には与えられたもので満足してしまう人なので、あんまり不満を持って改造しようとか思わない。だから Ruby のソースコードも実はほとんど読んだことがないし。
ささだ
いや、読んでる人はほとんどいないと思う(笑)
mput
読んでる人の八割方は今日ここに来ると思う*28(笑) ここに来ない Ruby のソースコード読んでる人は、なかださんとかまつもとさんとか。
ささだ
東京にいない人ですかね。

Ruby を使った事例

ささだ
これは Ruby を使ってよかった、とかそういう経験とかは? まあネットワーク関連って言うお話もさっきありましたけど。
ただ
ちょうど Ruby を触り始めるのに前後して Web が急速に普及している時期だったというのがあって。それまでは、趣味で作るにしても、ほとんどは Windows 向けのアプリケーションだったんだけど、グラフィカルな UI を持ててプラットフォームに依存しない開発環境として Web アプリケーションっていうのが面白いなと。だから最初は C とか C++ で CGI を書いていたんですよ。で Java が出て来たものの、当時はまだ Java でサーバアプリケーションっていう時代じゃなくてアプレット用言語だったので、Java で CGI って基本的に書けなくって。じゃあ CGI をもっと気楽に書ける言語があったらなーと思った所で Ruby に出会ったんです。もうだからそれ以来 CGI は Ruby でばかり書いてる。
ささだ
その頃だと CGI といえば Perl というイメージがあったと思うのですが。
ただ
Perl はもう、目が腐りそうなんで絶対読みたくないと思ってたんで。Java をやっていた頃から他の言語を探していて、Perl も選択肢の一つだったんだけど、「こんなコードは絶対俺は書けねぇ」と思って。
ささだ
その点で Ruby はよかったと。
ただ
うん。だからもう出会った時から CGI のために使ってますよ。Ruby は。
ささだ
じゃあ CGI 以外に Ruby のプログラムを書いたっていうのはあるんですか?
ただ
まあ基本的には、テキスト処理でシェルでできないものはたいてい Ruby で書きます。

Ruby のキラーアプリ、よく使うライブラリ

ささだ
自分にとってこれは便利なアプリケーションやライブラリだなというのははありますか?
ただ
CGI 目的で Ruby を使っていたという点でエポックメーキングだったのは、ERb*29 とか eruby*30 とかのテンプレートエンジンが自分にとっては大きいかなと思いますね。その前はかなり泥臭い CGI の書き方をしていたのが、テンプレートを分離することを真面目にやり始めたのは eruby や ERb が使えるようになってからなので。
ささだ
今でもテンプレートは eRuby でされてるんですか?
ただ
そうですよ。他の憶えている暇がないので(笑)
ささだ
まあ何も考えなくても使えますもんね eRuby だったら。
ただ
やっぱね、標準添付になったっていうのは大きいねぇ。
ささだ
有名なものだと amrita*31 のほうがテンプレートとして奇麗だといわれますけど、こっちは憶えてる暇がない?
ただ
そう(笑) やってみたいんですが。
ささだ
手軽に試せるといいんですけどねぇ。

Ruby の習得

ささだ
Java から入ったという話でしたけど、Ruby の習得という点ではどうでしたか? 難しかった?
ただ
いやもう全然躓いた記憶とかなくて。非常にすんなり。でも俺が使ってる Ruby の機能範囲ってかなり狭い部分で、まだ見たこともない部分がたくさんあるのは確かなんだよね。だから逆に言うと、そういう狭い範囲で使っていても十分実用的なものが書けて、あんまり最初にたくさんものを憶えなくても使い始めることができるところが大きかったんじゃないかなぁと思います。
ささだ
じゃあ特に習得にこの辺が引っかかっちゃったとかいうところはない、と。
ただ
まあオブジェクト指向自体はその前に一応それなりのことは知っていたから、あとは置き換えて勉強するだけだったんで。だから最初はかなり Java っぽいコードを書いていたような気が(笑) 静的言語っぽい使い方というか。動的な使い方を憶えたのはほんのここ数年のことじゃないかなぁ。
ささだ
Java っぽいっていうと CamelCase*32 かなと思っちゃうんですけど。
ただ
いや、Java を非 CamelCase で書いていたような記憶がある(笑)

タブの話

ささだ
ところで、インデント 3 でハードタブを使っていらっしゃいますが、あれはなんででしょう?
ただ
あれは二つの問題があって直交してるんだよね。タブを使うことと、インデントサイズが 3 であることは別々だろうとなかださんにつっこまれたんですが。インデントサイズが 3 なのは、あれは Ruby 用に自分で。でも最初言い出したのは前田さんのはずです、確か。今裏切ってるけど。あの人は 2 タブになってしまいました(笑) ようはあれは end が奇麗に並ぶのでいいですよと。ていうかね、あれ何のときに書いたっけ、256 本? 違うな、LL Magazine のコラムに書いたんだっけ? みんな 2 タブか 4 タブでしょ。なんでみんな間を取らないの? という(笑) 2 か 4 で実はみんな悩んでいるに違いないと思ってるんだけど、実は真ん中の 3 というのが解決策だったんじゃないのと。Ruby は特に end があるだけに 3 タブが合うはず。で、ハードタブを使ってるのは、そうはいっても俺はやっぱ 2 タブじゃなきゃとか 4 タブじゃなきゃとか言う人はいるはずで、ソフトタブだと自分の好みを押し付けることになるので嫌だなぁと。みんなハードタブ使ってくれりゃあ俺は全てのコードを 3 タブで読めるのになぁと常々思ってるんですけども。
ささだ
インデントサイズを 4 とかに合わせてる人のソースを別に合わせちゃうとけっこう崩れませんか?
ただ
ハードタブにしてないからでしょう。
ささだ
いやハードタブにしててもなんか。
ただ
それは多分だから折り返しをするからなんだね。一行を折り返してそれをタブでそろえようとするからいけないので、折り返さなきゃいいんです。
ささだ
一行で書けと。
ただ
そう。どうせみんな横幅いっぱいにやったら何百桁って見れる大きな画面使ってるんだからもっとけちけちしないで改行するなと。
ささだ
一行 300 キャラクタとか?
ただ
tDiary のソースもあんまり折り返してません。横幅を 120 くらいにすると収まるという。

プログラミング全般

Ruby 以外の利用言語

tada-4.jpg
ささだ
Ruby 以外のプログラミング言語はあまり使わないんでしょうか。
ただ
今はね。
ささだ
他に好きだった言語とかはありますか?
ただ
いやっ、あのー、いまだに Java は嫌いじゃないですよ。
mput
嫌いじゃないんだ。
ただ
うん。嫌いじゃない。けっこう好き。
ただ
基本的にはまっとうなオブジェクト指向言語ならみんな好きなのかも。だから C++ は嫌い(笑) あとは Lisp 系言語は多分このまま身に付かないままだろうという気がしている(笑)
mput
それはでも嫌いっていうのとはちょっと違う気が……。
ただ
うん、肌に合わないっていう感じ。

印象に残るソースコード

ささだ
今まで読んだ中で最も美しいソースはどれでしょう?
ただ
それは、一生懸命考えたんだけど特にないです。
ささだ
「これを読んだ」というソースコードとかあります?
ただ
あんまり これを通して読んだとか、そういうことはしてない。もちろん問題があれば追いかけてみたりはする。だから問題のある箇所に素早くたどり着けるコードがよいコードだと思います(笑)

現在、興味を持っているテーマ

ささだ
今、興味を持っていてて、これからやってみたい、というテーマはなにかありますかね?
ただ
あんまりまだ具体的なことはないんですけど、昔から基本的には UI に興味があるねえ。それで GUI のソフトから入って CGI の Web アプリケーションっていう流れで今来ているので、そっちのほう。あるいは場合によってはリッチクライアントのほうに。よりよい UI を求めるというのは以前からの基本姿勢なので、そういうところにこだわったソフトウェアを作りたいなーとは思ってます。

日常生活など

生活スタイル

ささだ
普段の生活のスタイルは
ただ
6 時に起きて 7 時に家を出て 23 時頃まで働いて……帰ったら風呂に入って寝る。以下繰り返し。
ささだ
シンプルで分かりやすい(笑)
ただ
通勤電車で Web の巡回をする、みたいな。最近やっと週末休めるようになった。

仕事とプライベートの両立

ささだ
あ、繰り返しっていうのは毎日だったんですね。じゃあ仕事とプライベートの両立は……仕事仕事でプライベートが全くない?
ただ
プライベートは寝てる時間と通勤電車の中くらいしか今のところはないですね……。
ささだ
これがいつくらいまで続いちゃうんですか?
ただ
いちおう年内には終わると思うんだけどなぁ。でもその後また別の仕事が盛り上がるはずなので。
ささだ
tDiary 使ってる人はみんなそこが気になってると思うので。
ただ
まあ、あの、細く長くですから。何事も。
ささだ
暇がある時でいいんですが(笑)、普段家で何してるっていうのは?
ただ
今やんなきゃいけないのは、うちのサーバの DNS を復旧させること(笑) やりたいんですけどできないという。
ささだ
暇な時は何をしていますか? 読書なんですかやっぱり?
ただ
読書もするしプログラミングもするしバイクも乗るし。

コンピュータ以外の趣味 : SF

ささだ
読書はやはり SF でしょうかね。SF に興味を持ったのはどのへんからですか?
ただ
小学校の前半じゃないかなぁ……。「ただくんはもっと外に出てあそびましょう」と通信簿に書かれるくらいには理科準備室と図書室の往復をしていた。
ささだ
クラスに何人かはいますよね、そういう人。
ただ
だから、学校の図書室にあるジュブナイル系の SF はほぼ読み尽くしたくらいには、その頃から読み込んでる。
ささだ
それがあって今のたださんがあると。
mput
じゃあ SF でなんか印象に残った「この話は面白いからお前ら読め」みたいなのは?
ただ
それはまた難しい質問だよなぁ。その歳その歳で読むべきみたいなのがあるじゃないですか。
mput
ありますねぇ。
ただ
最初に読んだ SF は、ハイラインの『宇宙の孤児』です。
ささだ
……小学校で?
ただ
うん、そうそう。ジュブナイル版があったんだよ図書館に、確か。で、それを読んで「おー」と思って。あと、おばあちゃんに買ってもらった、畑正憲の『海から来たチフス』*33というどマイナーな SF があって、あれも面白かった。そのどちらかが最初に読んだ SF だったね。
ささだ
SF についてはあとでこれを読めというリストがあれば。頂ければ載せますので(笑) いくら長くてもいいので。あ、自分の作品でもかまいません(笑)
ただ
いやもうあれはさ、封印した過去のつもりだったのにさ、こないだなんかある人がその載った SF マガジンを持って来て「サインしてください」って(笑) あれは恥ずかしいね。掘り起こすのはやめてくださいっちゅうくらい恥ずかしい。

コンピュータ以外の趣味 : スーパーカブ

ささだ
バイクはさっきもスーパーカブの話がありましたけど、好きなんですか?
ただ
カブはもう 17 年乗り継いでますね。
ささだ
平成の前から。
ただ
そうそう。
ささだ
何台買い替えて?
ただ
いや、一台でずーっと整備して乗ってます。
ささだ
カブの魅力は?
ただ
うちのカブは林道仕様に改造されているので、あれで林道に入って日本中の林道を走り回るというのが趣味なんですよ。最近ぜんぜん行けてないんだけど。
ささだ
じゃあ山の中でばったりカブ乗ってる人にあったらたださんかもしれない。
ただ
そうそう。だから 2000 年初頭くらいから日本最古のスーパーカブのホームページをやっていて、今は supercub.net というサイトを運営しております。

コンピュータ以外の趣味 : こま犬

ささだ
じゃあ、こま犬とかもそんな感じで好きなんですか?
ただ
どんな感じやねん(笑)
ささだ
いやなんか林道とかのイメージで、こま犬とか。
mput
林道にこま犬はいないと思うわけですが(笑)
ただ
こま犬はかみさんが神社好きで。旅行をすると神社巡りをするのでついていくのだけど、俺は別に神社には興味ねえやと思っていたんだけど、こま犬には実はずいぶん多様性があるということに気がついて、それで写真を撮り始めたら、もう何百とそろってしまって。こま犬のサイトも世界最古のこま犬サイトです(笑)
ささだ
細く長く?
ただ
そうそう。継続しております。
ささだ
こま犬は多様性がいいんですか? 他にも狐とかあると思うのですが。
ただ
狐はあんま多様じゃないんだけどね。こま犬はなんかどうも作る人が勝手な解釈をしていろんなバリエーションを生み出す傾向があるみたいで。けっこういろいろ分類とかあるにはあるんだけど、分類に当てはまらない変なやつが面白いですね。
ささだ
なんかどこのやつが面白かったとかあります?
ただ
そういわれても、これというのが 10 とか 20 とかあるからなぁ。
ささだ
じゃあ、こま犬は、たださんのサイトを見ろ、と。

コンピュータ以外の趣味 : パラボラアンテナ

tada-6.jpg
ささだ
それともう一個、たださんといえばアンテナという感じだと思うのですが……。
ただ
いやっ、パラボラアンテナ*34。ただのアンテナじゃない!
mput
八木アンテナ*35はダメなんですか?
ただ
八木アンテナはダメです。あとはオフセット*36もダメですね。基本的にはカセグレン式*37じゃないとダメです。
ささだ
アンテナのどのへんがいいんでしょうか? ああすいませんパラボラアンテナの。
ただ
基本的に大きな建造物が好きなんですけど、ただ大きいだけではやっぱり面白くなくて、ちょっとこう不安定さを持っているところ。パラボラアンテナって頭がどーんと大きい割には首が細いので、ああいうでっかいものをああいう不安定な構造で支えているっていうのが。いとをかし。
ささだ
世界中行ってる……わけではないのか。
ただ
国内はあちこち行ってるけど。まだ海外パラボラは未体験です。
ささだ
大きな建物だと他にもタワーとかいろいろあると思うのですがそういうのよりもアンテナ、ああパラボラアンテナ?
ただ
吊り橋も好きなんだけど、吊り橋よりもパラボラですね。で、あれはねぇ、実物を見ないとねぇ、良さが伝わんないですよ。ここだって、目の前の防衛庁の建物の上に 5m クラスのが今日 2 個あるの確認したんだけど(笑) あれはちょっと小さすぎる。最低でも 20m 超えるの見ていただかないと。
ささだ
この辺で見れるところっていうのはありますか?
ただ
この辺で見れるところは 10m クラスのが……でもあんまり交通の便が良くないんでねぇ。ここ行きなさいって言っても無理(笑)
mput
基本的に空気がきれいなところに作りたがるとか?
ただ
いや、天文台はそうなんだけど、通信用は別に必ずしもそうじゃない。街の中にもけっこうあったりするんだけど。
ささだ
えっと、東府中のあそこ、自衛隊の基地?
mput
自衛隊じゃないよ。
ただ
旧米軍基地のあのゴーストタウンのようなパラボラですねぇ。あれは面白くていいんですけど、ちょっといいアングルで見られるところがないんだね。不気味であれはあれで面白くていいんだけど。やっぱ長野県の臼田*38にぜひ行ってもらいたい。日本最大の 64m の、あれは一度見てほしい。
ささだ
たださんを理解するにはそこに行ってこいと。
ただ
でも林道を 10km くらい登っていかないと行けないんですけど(笑)
ささだ
じゃあ、臼田のは、やっぱりそこも合わせて好きなんですか?
ただ
そうそう。
ささだ
ということは、長野までカブで行ったんですか。
ただ
もうカブでも行ったし、まあ他のバイクでも行ったし。
ささだ
あ、何回も行ったと。
ただ
もちろん何度も。

コンピュータ以外の趣味 : その他全般

ささだ
あと、映画とか音楽とかゲームとかスポーツとか「これ」というのは?
ただ
映画は、オススメの映画は『月のひつじ』(月のひつじ コレクターズ・エディション [DVD](ロブ・シッチ/サント・シラウロ/トム・グレイスナー/ジェーン・ケネディ) 月のひつじ コレクターズ・エディション [DVD](ロブ・シッチ/サント・シラウロ/トム・グレイスナー/ジェーン・ケネディ))というパラボラアンテナを題材にした映画がありましてですね。オーストラリアのパークス天文台っていうところにあるにある 64m のパラボラが、アポロ宇宙飛行士の最初の月面歩行を中継した時の話ですが、あそこのあそこのパラボラは世界一美しいのでぜひ見てほしいです。
ささだ
映画じゃなくてパラボラを(笑)
ただ
そうです! あとは『コンタクト』(コンタクト 特別版 [DVD] コンタクト 特別版 [DVD])にもいっぱいパラボラが出てくるので是非。
ささだ
音楽は?
ただ
音楽はもっぱらジャズ系が。だから最近は『スイングガールズ』かやっぱり。
ささだ
ゲームとかスポーツとかは?
ただ
ゲームは最近ぜんぜんやってないんですけど、基本的には FPS*39 が……
ささだ
DOOM*40 とかそういう。
ただ
そうそう。で以前 T-ZONE ミナミ*41で Quake*42 の全国大会があったときに優勝しました。
ささだ
おー!
ただ
初代全国チャンピオンでございます。
ささだ
やり込んでたんですか。
ただ
やり込んだやり込んだ。もう会社でも昼休みに(笑) 撃ち合いが(笑)
mput
スポーツは? サッカーはお好きなようですが、やらないんですか?
ただ
やらないんだけど観るほうね。球技は苦手なんで。ていうかスポーツ全般ダメですね。
mput
どこのチームを贔屓にしているとか?
ただ
今は川崎フロンターレかなあ。かみさんは札幌コンサドーレのサポなんですけど。
mput
中学校や高校の頃にはスポーツやってたりはしなかったんですか?
ただ
中学の 1 年生の時だけテニス部にいましたけどその後は科学部でした。
ささだ
なるほど(笑)
ただ
もう俺はスポーツはあかんとあのとき悟った。

使用しているマシン

ささだ
家で使ってるマシンはどんなマシンですか?
ただ
えーと、今メインで使ってるのは、サーバがpiccolo、あの 5 インチベイに入るサイズの。あれに C3*43 を突っ込んで、Linux を入れています。Debian です。デスクトップは Windows XP を、Cerelon の 2GHz くらいのやつを自作して使ってます。っていうか Windows は単なるターミナルで、ほとんどサーバにログインしていると。
ささだ
2GHz ちょっと。オーバースペックですね。
ただ
でもまあいちおうブラウザやメールソフトも使ってはいるので。
ささだ
Quake はもうやんないんですか?
ただ
いちおうそのつもりで 2GHz を載っけたんですけど、まだ入れてもいないです(笑)

好きな女性のタイプ

ささだ
一番大事なことなんですけど、好きな女性のタイプは?
ただ
それが一番大事かい(笑)
mput
奥さんは、なしで。
ただ
いやでも、奥さんは眼鏡っ子だしね。
ささだ
えっ、今のどっちが重要だったんですか? 奥さんと眼鏡っ子と?
ただ
いや、眼鏡っ子好きはカミングアウトしてるから特に問題ない。あとは巨乳なら言うことなし。
ささだ
松江の時はみんな奥さんとか言って。
ただ
いや、もちろん奥さんが理想ですが(笑)
ささだ
じゃあ巨乳な眼鏡っ子、と。
ただ
いやこれ書かないでよ(笑)
ささだ
これ聞きに来たんですよ(笑) 好きな眼鏡とかあるんですか?
ただ
いや基本的には何でもウェルカムです。

これからプログラミングをやりたい人々へ

ささだ
若手の方への教育とかをまとめていらっしゃる立場ですよね。どういう風に教育されているとか指導されているとかいうのはありますか?
ただ
正直、今は若手を見るのはさらに部下に任せているので、今はあんまりそういうのは見てらんないっていうのはあるんだけど。人のことはあんまりいえないんだけど、若い頃に人のソースをたくさん読んだのが糧になってるなぁと思うのはある。自分は情報系の教育をぜんぜん受けてないので、人に教えるのはおこがましいなぁと個人的には思ってるので、技術的な部分よりも、むしろ取り組み方とか、やりたいことを楽しんでやりましょうよ、というところを言いたいかな。やっぱモチベーションが全てのキーだと思うので。やりたくないなと思いながらやっても長続きしないし。長続きしてこそ意味があると思う。
ささだ
そういうことをお説教垂れたりするんですか?
ただ
背中で語る(笑) 嘘ばっかし(笑)

Rubyist の輪

ささだ
前のインタビュイーのかずひこさんとはどういう関係ですか? tDiary 繋がり?
ただ
まあそうですね。彼は tDiary.net のセカンドサーバを運営してくれていて。彼は常に HEAD*44 を走る男なんですよ。俺は臆病者なので HEAD を使わない人なので(笑) 自分のソフトでも。だから第二 tDiary.net はいつも HEAD で。地雷を踏みまくってくれて*45、ありがたい人です。
mput
最近は HEAD よりも先に走ってることもありますね*46。勝手にパッチ入れて(笑)
ただ
そうそう(笑)
ささだ
では次のインタビュイーを紹介してください。
ただ
それでは、産総研*47増井さん*48にお願いしましょう。

読者への一言

tada-5.jpg
ささだ
最後に、読者の Rubyist の方へ何か一言。
ただ
どんな人が読者なんだろう?
ささだ
読者層は気にせず、好きなことを言ってもらっていいですよ。「眼鏡サイコー」とか。
ただ
じゃあ「tDiary をよろしく」で。
ささだ
他に何か言いたいことありますか。喋りたいこととか。
ただ
今オススメの漫画がありまして。『夕凪の街 桜の国』という良書があるので宣伝しておいてください。

おわりに

ただただしさんのインタビューをお届けしました。 お忙しいところ、本当にありがとうございました。 tDiary のことから、SF、パラボラアテナ、狛犬、眼鏡っ子まで、多岐にわたるお話を聞くことができました。 「継続は力なり」、大切ですね。 るびまも細く長く続けていければと思っております。

さて次回は「富豪家」増井俊之さんです。 Ruby に限らず面白い話が聞けそうです。 お楽しみに。

(インタビュー:ささだ、編集:卜部・中村)

Rubyist Hotlinks 連載一覧


*1 代表的な日記システムの一つ。詳細は後述

*2 continuation のこと。ちなみに Ruby にも Continuation クラスはある

*3 日本全国こま犬ライブラリ。後述

*4 ホンダのオートバイ。世界的なロングセラー

*5 SUPER CUB メーリングリスト。後述

*6 理学博士、京都大学名誉教授。1902生〜1992没

*7 進化論の一つ。生存競争ではなく、「棲み分け」による新たな環境への適用のために種は進化したとする

*8 進化論の一つ。自然選択・生存競争・適者生存により、有利な変異が子孫に伝えられて進化が起こるという説

*9 第 1 回第 2 回第 3 回を参照

*10 代数系の一つ。座標変換に伴う物理量の変化を記述する。なお、スカラーは 0 階のテンソルであり、ベクトルは 1 階のテンソルである

*11 シュレディンガー方程式の固有関数

*12 記録メディアの一つ。紙に特定のルールに従って穴を開けることによって情報を記録する

*13 NEC PC-9800 シリーズ。初代の PC-9801 は 1982 年発売

*14 PC-9801E。1983 年発売。初代 PC-9801 は CPU が i8086 5MHz だったが、当機では 8MHz に強化された

*15 PC-9801VF・PC-9801VM を指すと思われる。共に 1985 年発売。CPU に自社製 V30 を採用

*16 ジャストシステム社の日本語ワードプロセッサ。Windows 時代前は絶大なシェアを誇った

*17 早川書房の月刊誌

*18 ボーランド社の Pascal 処理系。当時の一般的な言語処理系と比べて価格が安く、コンパイル速度も高速だったため、一世を風靡した

*19 Ruby で書かれた BBS

*20 Rubyを 256 倍使うための本 網道編

*21 Web 日記作成を支援するシステムの総称。日記を認めるシステムたち参照

*22 Ruby による日記システムの一つ。のとや氏作

*23 Ruby 関連のドキュメントを記述するために考案されたフォーマット。RD 形式自体はプレーンテキストだが、構造を持ち、HTML などに変換できる

*24 tDiary では、記法はいくつかの中から選べるようになっているが、初期には tDiary 標準の記法しかなかった

*25 テキストベースの Web ブラウザ

*26 Apache 側で Digest 認証などをかける必要がある

*27 テンソルはベクトルを二次元(以上)化したものと見ることができる

*28 このインタビューの後、続けてRHG 読書会が行われた

*29 テキスト中に Ruby スクリプトを埋め込む規格である eRuby の pure ruby 実装。現在は標準添付

*30 eRuby の実装の一つ

*31 Ruby で書かれたテンプレートエンジンの一つ

*32 メソッド名・変数名などを大文字小文字交じりで書く命名法

*33 「ゼロの怪物ヌル」と改題されたらしい。ISBN 不詳

*34 電波の反射器として、お椀型の回転放物面を利用したアンテナ

*35 複数の金属棒を並べた構造のアンテナ。最後部に反射器、その前に輻射器を置き、さらにその前に導波器を並べる。現行の地上テレビ放送用のアンテナはこれ

*36 パラボラアンテナの発展形で、お椀型の反射器を非対称に用いる。このため、反射器を垂直に近い角度で立てられるが、受信器はお椀の中央から外れた部分に設置されることになる

*37 パラボラアンテナの発展形で、お椀型の主反射器で集めた電波の焦点部に副反射器を置き、主反射器の中央に設置した受信器で受ける

*38 臼田宇宙空間観測所のパラボラ

*39 First Person Shooting。一人称視点でひたすら敵を打ちまくるシューティングゲーム

*40 id Software 社の FPS。1993 年発売。世界中に多くの熱狂的なファンを生み出した

*41 残念ながら、今はもうない

*42 id Software 社の FPS

*43 VIA 社の CPU

*44 CVS HEAD。開発が今まさに行われている最中のバージョンのこと。安定していないこともある

*45 潜在的に存在していたバグを顕在化させること

*46 メインで開発が行われているソースコード以外に、他の人が提供したパッチを(tDiary本体の開発より先に)当ててしまう状態

*47 独立行政法人 産業技術総合研究所

*48 増井俊之氏。予測型テキスト入力システム POBox の作者