Egison 開発記 (修士編)


最初にEgisonの構想を練り始めたのは修士に入る2週間前だった。 集合のパターンマッチを直接的に表現できるプログラミング言語を作りたいという動機で研究を始めたのだが、既存の研究に筋が良いと思えるものがひとつもなく自分で一から構想を練り始めた。 自身の中のコンピュータサイエンスについての認識を一から構築し直そうという気分で研究を行っていた。 Egisonの構想を練る事自体はかなり楽しい作業ではあるのだが、けっこう勇気のいることだった。

Egisonの実装を始めようと思えるくらいまで構想が固まってきたのは修士1年と修士2年の間の春休みのころだった。 そして3ヶ月ほどかけて実装を行い2011年5月24日に最初のEgisonをリリースした。 初めてEgisonでポーカーの役判定のパターンマッチを実行した時は人生で一番のレベルで感動した。 世界で初めて直接、集合のパターンマッチを行うプログラムを私は記述し実行したのだ! Egisonを最初に使い始めてくれたのは、研究室の後輩だった。 それから1年の間、Egisonは研究室の中で広まった。

この頃もかなり人生に悩んでいた。 修士2年の5月に博士に進学希望の学生は学振というものにふつう応募する。 学振に通った優秀な学生は博士の間、給料をもらいながら研究できるのだ。 修士1年の最初から既存の研究を一切顧みず研究を行ってきた私の学振申請書は、はっきりいってトンデモな計画書にしか見えないものだったのであろうと思う。 私の学振申請書は不合格者の中でも最下位レベルの不合格という通知が修士2年の秋ごろに届いた。 学振もらって博士に行く人もいるのに、天才的な研究をしている私が学振をもらえずに博士課程に行くのは馬鹿馬鹿しいと思い、博士に進んで研究したいというモチベーションは著しく下がってしまった。 結局、その他にも紆余曲折があり、博士に行かず就職することにした。 研究のアイデアを自分で出してきたこともあるので、働きながら一人でも研究できるだろうと考えた。 また、研究に関する相談にいつでも親身にのってくれる研究室の先輩と後輩がいるため、あまり博士に進んでまで研究室に所属する意味もないと考えたのだった。

そのころ同時に嬉しい事も起こった。 修士2年の12月に、9月に応募した未踏人材発掘事業の公募に通ったことがわかったのだ。 私が採択された年は、未踏に採択されると、7ヶ月間180万円もらって応募の際に提案したソフトウェア開発を行うことができた。 私はEgisonのコンパイラの開発という題目で採択され、修士2年の卒業間際の2月から卒業後の8月まで開発を行うことができた。 また、研究室の教授が融通を利かして下さり、技術補佐員として卒業後も研究室に籍を置いて下さったため、卒業後も卒業する前と同じようにEgisonの研究を行うことができた。

この半年の延長は私にとってかなり嬉しかった。 私は修士時代、Egisonの研究に完全に没頭していて、世の中にどういう会社があるのかもほとんど知らない状態だった。 半年の間に頑張ってEgisonで成果をあげて評判の良い会社に就職しようと考えた。

未踏期間中はEgisonの開発だけでなく、Egisonのワークショップの開催も、未踏を運営しているIPAの方々に支援して頂いた。 このワークショップのおかげでEgisonの知名度はそれまでに比べて飛躍的に広がった。 EgisonがHaskellという言語で作られていることもあり、Haskellを使う意識の高いプログラマたちに名を知られたり、ワークショップに参加してくれた理学部情報科学科の後輩の中にEgisonにはまってくれたひとも現れた。 このとき初めてEgisonは研究室の外に出ることができた。 このワークショップはEgisonの構想を練り始めた頃からEgisonを知っている研究室の先輩、後輩の方々が発表して下さり、夢の様なワークショップだった。

しかし見積もりは甘く、未踏開発中多くの成果をEgisonについてあげることはできたのだが、それにより評判の良い会社に就職するのはまだハードルが非常に高かった。 GoogleとPFIという学科の卒業生に人気のある会社をそれぞれ受けたが両方落ちてしまった。 結局未踏の期間が終わって1ヶ月たった10月に、研究室の先輩に紹介して頂いた会社に入社することになった。


[Top]