Scala先駆者インタビュー Vol.2 エムスリー瀬良さん

「オープンソースの成長の源はフィードバック! 」

  • インタビューイー エムスリー 瀬良
  • インタビューワー アットウェア 北野/浅野/ヌーラボ 吉澤

北野:こんにちは。今回はScalaのWebフレームワークであるSkinny Frameworkの創始者の瀬良さんにインタビューしたいと思います。実はアットウェアの社内ナレッジシステムにはSkinny Frameworkが使われているのですが、その話はもう少し後にして、まずは、Scalaを使い出したきっかけを教えて下さい。

瀬良:最初に触ったのは2009年頃ぐらいですかね。その時はJavaをメインで使っていて、Scalaをちょっと触ってみたのがきっかけですね。その時は、私の当時の用途ではIDE のサポートなども弱かったこともあり、まだ実用で使うものではなかった印象でした。その後、今の会社に移って 2010 年頃から少しずつScalaの勉強を同僚とやり始めたのがよく触るようになったきっかけです。最初から思うと、こんなにScalaを触るようになるとは思っていなかったですw

北野:私の周りにもJavaをやってる人が多いのですが、参考にそこからScalaに惹かれたのはどうしてですか?

瀬良:自分がやり始めた当時はSIの世界だとJavaからRubyと言われていた時で、 でもJavaとRubyは結構違うし、それだけが次の方向なのかなと。その頃少しずつ触っていたScalaはJavaをベースにしつつもRubyに負けない記述性があって、静的な型付けがありました。そういうところが惹かれたところですかね。

北野:Scalaというと関数型というコンセプトがありますが、そのあたりはどうですか?

瀬良:そうですね、私はもともとJavaをやっていたので、Better JavaとしてのScalaをやりはじめて、いまもそのスタンスでやっています。関数型バリバリでScalaを使いたいという感じではないんです。いま使っている人の中には、Haskellとか本当は使いたいと思っているけど仕事ではScalaでやっていますという人もいると思うんですが、私はちょっとそれとは違いますね。

北野:今はお仕事でもScalaを使っていると思いますが、仕事で使うとする場合、Scalaのようなチームに取って新しいものを取り入れているときなどに注意することってなんですか?もし経験などがあれば。

瀬良:Scalaバリバリ(関数型)の書き方をして、チームの人達がわからなくなるような記述をしないようにすることですかね。ちゃんと皆がわかるようにすることは大事だと私は思っています。 Scalaを使うことが目的では本当はないはずで、ちゃんと目的のものを作るということであれば、さくっと仕事が終わり、バグも前よりも格段に減るというようなうれしいことが無いと仕事でScalaを使う意味はないはずです。 そういう時にScalaらしく書くというのは第一優先ではなく。使いはじめた時に「あっ、こんな書き方もあるのか?」とかいろいろやっていると楽しくなることもあるんですが、それもほどほどにしておかないと、周りのチームの人達がついて来れなくなったり。それは注意したほうがいいですね。 だから、あまり難しく凝った書き方をしないようにしようと言っています。

吉澤:そうですねw。 瀬良さんが書いているSkinny Frameworkの中とか見ても、関数型臭がぷんぷんする感じじゃないですものね。

北野:あくまでも道具としてまずは皆で使い出して、皆で良さを共感していかないとってところなんですかね。1人だけの意向で突き進んでいくのはリスクも増えていくことか。

北野:瀬良さんは、Skinny Frameworkをオープンソースとして開発していますが、実は、アットウェアでもSkinny Frameworkを使っています。 弊社のナレッジシステムのSiitaというQiita互換のようなものを社内で開発して社内ナレッジを貯めるところとして稼働しています。 SiitaのSはScalaのSというよりは、SkinnyのSなんですw

瀬良:えぇ、そうですか。面白いことやっていますね。是非公開して欲しいです!今度アットウェアに訪問して見てみたいです。

北野:でも、どうしてSkinny Frameworkを開発しようと思ったんですか?

瀬良:そうですね。 ScalikeJDBCというものがあって、それはそれでよかったのですが、もっと一般的なORM であるようなhas-manyの関係性の定義とか簡単にできるといいなと思ってプロトタイプを作ってみたところ、思ったより使えそうな感じにできたんです。また、その頃、仕事でScalatraを使っていたことがあったんですが、少し自分で改良したいなぁと思うところがあったので、それらWeb部分とORM部分、そしてバリデーションの3つをまとめたものが形になりそうだなというところでつくることにしました。

その時はまだORMのプロトタイプしかなかったんですが、その年の10月にドワンゴさんで勉強会があって、来年春までに出します!と言っちゃうことで、 自分でモチベーションを上げていったという経緯もあります。

北野:有言実行ですか、素晴らしいですね。OSSだとフィードバックをもらって成長していくというのは大事なことだと思うのですが、Skinny Frameworkをオープンソースでやっていてフィードバックはどうでしたか?

瀬良:そうですね。GitHubのスターとか、プルリクエストとか来るのは非常に嬉しいことですね。いろいろなフィードバックがあることは本当に助かります。何も反応がないのが一番つらいというか、どこがよくないという具体的な指摘だったり、漠然とした批判的な意見でも何か言ってもらえる方が全然いいです。そんなフィードバックのおかげで、今があると思っています。 あとは身近な人が使ってくれることですね。やはり社内の人とか身近な人からバグってますよと言われるとすぐに直してリリースしたくなりますからね。

吉澤:サービスやアプリでもなんでもそうですよね? 無視されて、なんも反応ないのは本当に寂しいですもん。 みんな本気で使い出すと指摘しだす人もいたり。それって本当に使っているってこと事ですしね。

北野:今後はどのような活動をメインに?

瀬良:Skinny Frameworkのバージョンアップを考えています。今のバージョンは1.3ですが、2系のバージョンアップの活動をメインでやっています。 今のSkinny Frameworkは、他のOSSのライブラリなども使っているところがあって、そのOSSとの依存があったりします。中にはアクティブで無くなってしまったOSSなどもあるので、それを見極めながら、整理をしているところですね。

北野:瀬良さんの話はITに関わっているものとしてすごく感銘しました。もちろんSkinny Frameworkもです。今後も活動をつつけて、日本を代表するOSSコミッターを続けていってもらいたいと思います。瀬良さんとして、そのような活動をコミュニティなどを通して広げており、若い人が瀬良さんの背中を追う日も近い、そんな感じがしました。

北野:さて、次回のインタビューの人をご紹介お願いします。

瀬良:それでは、こちらもGitBucketをはじめとするOSSの活動をアクティブにされていて、受託開発・自社サービス開発の両方でScalaの実用経験をお持ちの竹添さんで!

北野:ありがとうございます。