読者です 読者をやめる 読者になる 読者になる

人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

研究者と技術者の狭間で感じた事 - 情熱が自分を変える

お知らせ 研究 思った事 ポエム

吉報は突然届くもので、本日、情報処理学会の山下記念研究賞の受賞が決定しました。

まず、情報処理学会の山下記念研究賞(旧研究賞)とは以下のような賞になります。3年前に会社を辞めてまで学術研究に飛び込んだ自分としては、非常に光栄ですし何よりうれしいです。

山下記念研究賞の推薦理由は、

[推薦理由] Webサービスを安定して提供するために,Webサーバソフトウェアの内部機能の拡張が必要となる場合がある.この機能拡張を,生産性や保守性を考慮してスクリプト言語で行う手法の提案がいくつかなされているが,高速性・省メモリ・安全性の面でいくつかの課題があった.著者は,Apache HTTP Serverに組み込みスクリプ卜言語であるmrubyを組み込むことで,Rubyスクリプトにより容易に機能拡張でき,高速・省メモリで動作する機能拡張支援機構を提案している.また,本機構の有用性を様々な角度から検証している.実用性も非常に高く,この研究は今後のWebサービスの発展に寄与するものであると考えられる.よって,山下記念研究賞として推薦する.

2014年度の受賞者一覧の中に記載されていました。ありがとうございます。

受賞対象論文は、昨年2013年に開催された情報処理学会のインターネットと運用技術シンポジウム2013(IOTS2013)で優秀論文賞を頂いたmod_mrubyに関する論文でした。

恐縮であると共に、このような研究賞を頂く事ができて非常に光栄でございます。ここで物思いにふけるべく、少しだけこの研究の昔話をしようと思います。

技術者から研究者へ

僕はちょうどmod_mrubyを作り出すぐらい(2012年4月)の時期に、所属していた会社をやめて大学院の博士課程に入学しました。

3年前の社会人の頃の僕は、オープンに何かを開発するということは会社の雰囲気もあってほとんどできていませんでした。当時は、特定の会社に所属して、なにかしら何人かの仲間と共に運用しているうちに、改善箇所や問題意識が生まれて、それに対する対策を議論して考えるという問題解決の流れを実践していました。そういう意味では、運用もせずに何か新しいアイデアを生み出すというのは、とても難しいと感じていました。

そのため、会社を辞めて博士課程に飛び込むという、本当にどうなるかわからないような最初の一歩を踏み出してからは、企業との接点も無いし、もちろんシステムを運用することもなく、子育てのために大学にも行かずにひたする家の中で1人で研究して思った事をブログに書くという事をやっていました。これは結構孤独でモチベーション維持も大変だし、ああ...1人だなぁと思っていました。

でもそれが楽しくもあったので続けていると、インターネットの噂は本当で、コードを公開したりブログ書いたりしていると、最初は数人が気づいてくれました。それがどんどん波及して影響力のある人が言及してくれたりするようになって、気がついたら沢山の人からフィードバックを頂けたり、それらを参考に改善したりと研究に取り組む事ができたりもしました。1人ではじめたので1人だと思っていたんですが、ある時気づくともはや1人ではありませんでした。

でもそこにはOSSの技術者と学術研究者の狭間で葛藤がありました。

技術者と研究者の狭間

僕はもともとホスティングサービスの運用を軸としたエンジニアなので、OSSの技術者と研究者という二足のわらじを履いています。そして、会社にいた当時はオープンに技術を学び、公開していく事が出来ていなかったので、研究者になった以上、クローズドに研究・開発することには息苦しさを感じていました。

また、研究のアイデアの段階で興味を持ってもらい、設計や実装にフィードバックを頂くことでその質を高め、アイデアを実装したものは適用分野でできるだけオープンでスタンダードなソフトウェアにする事によりその後の開発やメンテナンスを安定させたい、と考えました。安定させるためには、ソフトウェアをオープンにし、そのソフトウェアの利用者や支持者を業界に作り、フィードバックやパッチを継続的にもらい改善していける状況にする必要があります。

そこで、所謂OSS開発のように、研究のアイデアや進捗をブログにどんどん書きながらコードも公開して書いていく、という、できるだけオープンな研究のスタイルをとるようにしました。しかし、学術研究というのは、分野によってはその研究の特性上、思っている以上にオープンにできない事があります。僕の研究分野はそれらと比べるとマシだと思いますが、それでも何人かの研究者から「研究の進捗内容を事細かにどんどん公開するのはあまり良いやり方ではない」「研究というものはあまりそういうやり方をしない」「場合によっては新規性が失われる」「論文にならない可能性がある」等と言われた事もありました。

一方で、オープンに研究やそのコードを公開することで、これまで話す事すらできなかったような優秀な人達と知り合ったり出会ったりする機会がうまれ、公開物に対して沢山のフィードバックを頂く事で高いモチベーションを維持し研究に取り組む事もできました。優秀な人達との出会いに関しては当時は予想外、というかオープンにすることでこういう事もあるのかと思った出来事で、継続的に物事を取り組むにはこういうコミュニティでの関係性は自分に非常に良い影響と刺激を与えました。そして、そこで出会った人達はすべからく情熱を持っていました。

ですが、当時の自分は研究の事について詳しく理解しているわけではなかったので、メリット・デメリットを含め、この研究の進め方で本当に良いのか非常に悩んでいました。

そこで、mod_mrubyの研究の序盤の段階で、この研究の進め方で本当に良いか思いつめていた頃に、指導頂いている先生とたまたま廊下であったので世間話がてら軽く相談してみた所、

昔のやり方に囚われなくて良いです。松本さんが良いと思うやり方で好きなようにやって下さい。今のやり方、良いと思いますよ。

と言って頂きました。

当時の僕にとっては、この言葉は何よりもありがたく頼もしく、そして強く感銘を受けたのを覚えています。そしてこの言葉は、技術者と研究者の壁を気にしなくても良い、というようにも聞こえました。また、今思うと僕の研究の特性やその適用範囲の性質上、比較的オープンに研究してもメリットの方が大きいだろうという適切な判断を先生はその場でされていたのだと思います。

この言葉によって、自分の進め方に自信を持ち、高いモチベーションで研究上の様々な困難を解決しながら技術情報を公開することで多くの人達の反応を頂け、楽しみながら研究・開発をすることができました。この言葉がなければ、僕の研究は行き詰まり、モチベーションも維持できず、恐らくここまでの評価を頂く事もできていなかっただろうし、今回の山下記念研究賞、さらには昨年度に頂いたOSS奨励賞なんて受賞できていなかったと思います。先生には心から感謝しています。

自分の研究の進め方に自信をもって、アイデアや進捗を随時公開しながら研究を進めてみるというような新しい研究の仕方をしたり、その流れでmod_mrubyというソフトウェアを学術研究として研究室のサポートを受けながら企業技術者からのフィードバックを受けつつ集中的にやれた事はとても大きかったです。

なにより、色々悩みはしたものの、オープンに研究する事を含め、会社をやめて大学に飛び込むという最初の一歩を踏み出さないとこういう事にすらならなかったので、踏み出してみてよかったなと、やらないで後悔するぐらいなら自分の人生一度なので、時には自分が情熱を感じられる事であれば無謀でもやってみるというのは大切な事だったな、と今振り返ると思います。

平凡な事の積み重ね

そういう出来事があってからは、これまでどおり進捗を公開しながら研究をし始めたんですが、僕自身がこれまでやってきた事って、その一つ一つをみると本当に大したことでなくて、とても平凡だと思います。自分の日々のやっている事やコードやブログを見返しても、誰でも書けそうだなぁと思います。

ただ、その平凡な内容でも定期的にコードやブログを書いたり、これが自分の今の実力なんだと開き直ってどんどん公開していました。

そこから2年たってその積み重ねを見返してみると、おおーなんか大変な事をやっている気がする、って自分でも思う時があります。一つ一つはなんでもない事なのですが、なんでもない事が何十何百と積み重なると、気がついた時にそれが大きな成果になっているんだなと。

その結果、mod_mrubyやその周辺技術に関する研究で幾つか賞を頂いた上に、今日、研究そのものに対して、山下記念研究賞という栄誉ある賞を頂く事ができました。そういう出来事の積み重ねもあってか、mod_mrubyやその関連ソフトウェアは今もOSSとして継続的に開発を行う事ができています。

コツコツと公開していけばいつかその成果をインターネットは気づいてくれれるんですよね。そういう実感をこの研究・開発のやり方を通して得る事ができたのは非常に大きいです。

なんでもないことを積み重ね、それを継続することが大事なんだと思います。そしてそれは、情熱を感じられるから続けられたのです。

これから

ということで、学術研究者と企業技術者の狭間を過ごしてきた自分としては、どうしてもこの中間に位置するようなmod_mrubyの研究開発を経て感じた事を皆さんにもお伝えしたいと思いました。

mod_mrubyやngx_mrubyについては、ユースケースも幾つか出てきていますし、ホスティングの大手の会社数社が使っているということをおっしゃってくれているので、元々ホスティング出身の僕としては非常にありがたいです。

これからについては、とにかく最初の一歩を踏み出すべく、新しい事や本当にやりたいと思える事はやってみて、失敗しそうならまた一からやり直します。その時に、失敗した分を取り戻す努力をすれば良いんだという姿勢を忘れないようにしたいです。自分が情熱を感じられる事は人生で恐らく数える程しかないと思うので、情熱を感じていながらも、色々なしがらみでそれを押し殺すときっと後で後悔する気がします。

また、周りを気にせずとにかくこれまで通り平凡な事をコツコツと積み重ねていこうと思います。誰もやった事のない画期的な事をいきなりやる事と比べるとずいぶんと楽な事だと思います。僕自身、昔からコツコツとやることは非常に苦手で続かないタイプだったのですが、情熱が灯っていれば、なぜか継続的にやれるものです。それに、時間がたつと、意外とそれらが同程度の評価を得ている場合もありますよね。

結局、最初の一歩を踏み出す勇気、平凡な事を継続する事、それらを後押ししたのは情熱であり、情熱が自分を変えたのだと思います。オープンに研究・開発をする事で優秀な人達と出会い、彼らの持つ情熱が集まる事によって、さらに大きな情熱の炎へと燃え上がりました。

そして、これらを踏まえて振り返った時に、自分が研究・開発を継続的に行う事ができたもう一つの大きな要因として「人の言葉」があります。誰かの一言が人を大きく突き動かし、くすぶった情熱に火をつけ、その人の方向性を変えうるんだということです。人の言葉にはそういう力があります。今後は自分の言葉や文章によって、誰かを大きく突き動かす事だってあるという事を忘れずに、オープンに技術を学び、引き続きブログを書いていこうと思っています。再度、身をひきしめて書く最初のブログエントリが今書いているこのエントリです。

どのように取り組んでいくかですが、よっぽどの事がない限りは、何事も自分が良いと思うやり方を信じて取り組んでいけば良いと思います。人には人のスタイルがあります。その人の人生は一度きりです。ほんの少し、自分が信頼している人の意見には耳を傾ける事を忘れないようにすれば、後は自分を信じてやっていけば良いのだと思います。情熱を消さないように。

最後になりますが、これまでの研究や研究に関するブログエントリに対して、様々なフィードバックを頂いた皆様に心から感謝します。ありがとうございました。皆様のフィードバックが無ければ、ここまでの事にはならなかったと思います。

今後もこのようなスタイルで研究や技術開発を行っていくと思いますが、これからもどうぞ @matsumotory をよろしくお願い致します。

そして、このブログエントリが、様々なしがらみによって押し殺された情熱の火種に、もう一度火を付けることができれば幸いです。