ひとつの技術領域を深掘りし、スペシャリストとして長年生きていく。その道のりを「孤独で、険しいものだ」と考える方もいるかもしれません。しかし、Rubyの改善に20年以上も携わってきた笹田耕一さんの生き方は、もっとしなやかで、自由なものでした。
「仮想マシン(YARV)の開発」や「ガベージコレクションの改良」などRubyの進化に多大なる貢献をしてきた笹田さんは「興味のあるテーマだったから、ずっと楽しんでやれただけ」と穏やかに語ります。今回はそんな笹田さんのキャリアを振り返っていただきました。
「底が見えないほどに深い」言語処理系という長い旅路の始まり
― 世の中に数あるプログラミング言語の中で、なぜ笹田さんはRubyを研究対象に選ばれたのでしょうか?
正直にお話しすると、最初から「Rubyが大好きだった」とか「この言語に未来を感じた」といった情熱があったわけではありません。きっかけは、Rubyそのものよりも、その「仕組み」への興味からでした。
私は学生時代から、プログラミング言語の処理系の内部構造に強い関心を持っていました。大学3年生の時に課題でJVMを自作し、4年生の頃に「Rubyという言語が良さそうだ」という噂を聞いて、今度はRubyを使ってJVMを書いてみたんです。それが、私が初めてRubyを本格的に触った経験でした。
― Rubyの生みの親であるまつもとゆきひろさんと出会われたのも、その頃だったのでしょうか?
そうですね。2002年頃に学会のイベントで、まつもとさんがRubyのガベージコレクションを紹介するセッションがありました。私がたまたま前の方の席に座ったら、すぐ隣にまつもとさんがいらっしゃって。
当時の私は学士の4年生で、OSの研究室でマルチスレッドについて研究していました。そこで、Rubyのスレッドの仕組みについて、まつもとさんに直接質問をぶつけてみました。それが、まつもとさんとお話しした最初の機会でした。
― そこからどのようにして、Rubyのコミュニティや開発に深く関わるようになったのですか?
2002年末に、青木峰郎さんの著書『Rubyソースコード完全解説』が出版され、その翌年から読書会が始まりました。これが本当に楽しいイベントでして。著者の青木さんや、後に日本Rubyの会の会長になる高橋征義さんといった面々と議論を交わすうちに、どんどんのめり込んでいきました。
私のモチベーションはずっと一貫していて、「Rubyで何かを書きたい」というよりは、「Rubyという言語処理系をより良くしたい」という思いで活動を続けてきました。2004年には「未踏ユース」に採択していただき、Rubyを高速化するための仮想マシンYARV(Yet Another Ruby VM)の開発に着手しました。それが後にRuby 1.9で採用されることになります。

― 特定の領域を突き詰めようとしても、途中で断念してしまう人も多いです。笹田さんが、20年以上にわたって飽きずにRubyと向き合い続けられたのはなぜだと思われますか?
ひとつは、たまたま選んだ「言語処理系」というテーマが、底が見えないほど深い、研究しがいのあるテーマだったからです。
もうひとつは、私の性格によるものですね。私はひとつのことを深掘りするのが好きですし、逆に言えば、なるべく1カ所に留まれるなら居続けたいタイプです。それを許容してもらえる環境が心地良かったのだと思います。
「ついに来たか」という局面も、仲間と共に乗り越えて。好き勝手に、かつ真剣に
― 笹田さんは大学院で博士号を取得された後、東京大学の助教として教鞭を執られたと伺っています。そのままアカデミアに残る道もあったかと思いますが、なぜ事業会社へ移る決断をされたのでしょうか?
理由はいくつかありますが、一番は「自分はアカデミアの世界では生きていけない」と感じたことです。研究そのものや、学生と議論することは好きだったのですが、大学教員に求められる要素と、自分の資質がどうしても合わない部分がありました。
決定的なのは、プログラムを書くこと自体は研究者の仕事ではない、という点です。研究の目的はあくまで新しい発見をし、それを論文として発表すること。時間をかけて丁寧にバグを修正しても、それが論文としての新規性に繋がらなければ、研究者としての評価にはなりません。
Rubyの開発というのは、地道な修正やメンテナンスの積み重ねです。それを突き詰めたい自分にとって、アカデミアの評価軸の中で活動し続けるのは難しいと感じるようになりました。
― 人には向き不向きがあるわけですから、より自分が前向きに取り組める領域に移るのも大事なことですよね。その後、Herokuへ転職されたそうですが。
まつもとさんから「HerokuでRubyの開発をする人を探しているんだけど」とお声がけいただきました。良いタイミングでしたから、「それなら私が行きます」と手を挙げたのが、キャリアチェンジの経緯です。
Heroku、そしてクックパッドでは、フルタイムでRubyのコミッターとして働くことができました。「Rubyを改善すること」をミッションに、かなり自由に働かせてもらいましたね。
― ですがその後、クックパッドの業績の変化に伴う退職勧奨という、厳しい局面も経験されました。
会社の業績についてはIRなどで公開されていましたから、お話をいただいた時は「ついに来たか」という感覚でしたね。「もし合理化が進むなら、まずは(直接的に利益を生まない)我々のような存在からだろうね」という話は、事前に遠藤さん*ともしていたんです。
*…Rubyコミッターの遠藤侑介さん。笹田さんと遠藤さんは、前職のクックパッド、現職の STORES のいずれにおいても、フルタイムのRubyコミッターとして活動を共にしています。実はこの時の転職活動は、少し珍しい形でした。私と遠藤さんの二人で手分けして進めたんです。転職活動にあてられる2カ月のうち、最初の1カ月は「二人セットで受け入れてくれる会社があるか」を一緒に探し、もし見つからなければ2カ月目からはバラバラに動こう、と。結果として、二人で情報を共有しながら効率的に動けたのは、精神的にも心強かったですね。

― もし転職先で「フルタイムのOSS開発」が継続できなかったら、という不安はありませんでしたか?
その時は「普通にRailsアプリなどを書く仕事を探そう」と思っていました。そもそも、OSSの開発をして給料がもらえるという環境自体、世の中にはほとんどありません。そんな稀有な仕事ができていること自体が、本当にありがたく、幸運なことだと思っています。
私たちがやっていることに価値がないとは思いませんが、その活動に投資できる余裕のある会社は限られています。あの時、何社もの企業からお声がけいただいたことには、今でも心から感謝しています。
今の STORES でも、日々興味のあることに取り組ませてもらっています。私がこの場所で好き勝手に、かつ真剣に開発を楽しむ姿を世の中に見せることで「ソフトウェア開発って、こんなに楽しいんだ」というポジティブなメッセージを伝えていければと思っています。
家族の存在が心を支えてくれる。ライフステージの変化を、しなやかに楽しむ
― 心や体を整えるための、リフレッシュの方法はありますか?
実を言うと、私は放っておくと仕事にのめり込んで燃え尽きてしまうタイプなんです。大学教員を辞める2012年頃までは、息抜きの仕方が正直よくわかっていませんでした。
転機になったのは、退職の前年に仕事で2カ月ほど海外に滞在した際、現地の方々に色々な遊びに連れ出してもらったことですね。「自転車に乗って走るだけでこんなに楽しいんだ」といった、些細な楽しみをようやく知ることができました。
もうひとつの大きな変化は、結婚です。私は「何をしてリフレッシュするか」というアイデアが乏しいのですが、妻が自分にはない発想で遊びの提案をしてくれます。「美術館に行こう」とか。家族のおかげで、余暇の楽しみが何倍にも増えました。仕事に向き合い続ける上で、家族の存在は大きな支えになっています。
― やはり、ご結婚されたことは笹田さんにとってプラスだったのですね。
計り知れないほどポジティブな影響がありました。特に、コロナ禍で外出が制限された時期、一人暮らしをされていた方の中には、誰とも話せない孤独感に苦しんだ人も多かったと聞きます。私の場合は家族がいたので、そうした孤独を感じることは一切ありませんでした。
― お子さんが生まれるなどライフステージが変化する中で、OSS活動への向き合い方は変わりましたか?
時間の使い方は大きく変わりましたね。昔は一度集中し始めると、何日もひたすらプログラミングの改善案を考え続けていました。例えば、ガベージコレクションの複雑なアルゴリズムを考えている時は、ひたすら公園を歩き回ったりして。傍から見れば、完全に不審者ですよね(笑)。
でも、結婚して子どもが生まれると、そうやって長時間同じことを考えるのは難しくなりました。どうしても育児などで細かく時間が分断されます。私はもともとコンテキストスイッチが苦手な性質で、一度別の作業をすると直前まで考えていたことを忘れてしまいます。そこは正直、苦労した部分でもありました。
ただ、最近は生成AIの存在が大きな助けになっています。考える時間はどうしても必要ですが、その後の実装にかかる時間をAIが大幅に短縮してくれます。かつて3時間かかっていた作業が5分で済むようになれば、細切れの時間でもアウトプットを出せるようになる。AIのおかげで、以前よりもずっと余裕を持ってプログラミングと向き合えています。

「少し言い過ぎ」くらいでちょうどいい。積極的な発信がキャリアを拓く
― プログラマがより良いキャリアを実現するために、自分の成果を周囲にアピールすることは重要です。笹田さんはこの点をどうお考えですか?
日本人は自分の実績を控えめに見せる、あるいは「大したことないですよ」と謙遜してしまう傾向が強いと感じます。ですが、私は「自分を適切に評価し、外に向けてアピールすること」は極めて重要だと思っています。
私自身、2004年頃からRubyの開発に携わってきましたが、当時は「こんなに言い過ぎていいんだろうか」と思うくらい、積極的に情報を発信していました。実際、私のキャリアもそうした発信があったからこそ拓けたものです。
嘘をつくのはもちろんいけませんが、「少し言い過ぎかな?」と思うくらいでちょうどいい。外に出さない限り、誰にも評価してもらえません。せっかく良いものを作っているのに正当な評価が得られないのは、本当にもったいないことです。自分の成果に自信を持って、どんどんアウトプットしていくべきだと思います。
― 最後に、プログラマが特定の領域と長く向き合い、健やかに活動し続けるために必要な姿勢について教えてください。
逆説的なのですが、ひとつのことだけに執着しすぎないことが大事だと思っています。「これじゃなきゃダメだ」と思い詰めすぎると、その分野が立ち行かなくなった時に自分自身も終わってしまいます。「これじゃなくてもいいよね」という、ある種の逃げ道や余裕を持っておく方が、結果として健全に続けられる気がするんです。
また、何かを深掘りするにしても、周辺知識を広く持っていないと、本当の意味での深掘りはできません。特にこれからのAI全盛の時代は、幅広い領域への理解や好奇心の重要性がさらに増していくはずです。
ひとつのことにこだわりすぎず、常に広い視野を持って色々なことに興味を持ち続ける。そんな姿勢が、長く、健やかにプログラマとして生き続けるための秘訣ではないでしょうか。
撮影:山辺恵美子

