10月8日(土)大阪で開催されたScala関西 Summit2016にスポンサーとして参加させていただきました。
私自身は前職時代を含めここ4年ほどはScalaで仕事ができるようになっていますが、日本だけでなく世界的に見てもScalaの普及度というものはまだまだだなと感じることがよくあります。弊社は東京の会社ですが、今回スポンサーをさせていただいたのは関西にも「これからScalaを使いたい」というプログラマがいらっしゃるのであればそれをサポートすることでScalaの普及に貢献できるのではないかという思いがあってのことです。
当日はスポンサーブースを出していたり、自分自身もスポンサーセッションで登壇させていただいたりしたので他のセッションにはあまり参加できなかったのですが、その中でも参加したセッションについて紹介したいと思います。
はてなにおけるマイクロサービスとScala
はてなさんの新決済システムでのScalaの採用事例の紹介でした。
要件から落とし込んだScalaの選定理由がきちんと言語化されており、決め手としては「DDDを実践するための高い表現力を持っていること」「学習曲線は緩やかではないものの社内でこれまで積み重ねてきた事例や教育コンテンツが存在した」という2点だったようです。はてなさんとしてはScalaにコミットというよりは用途に応じて適切な言語を使いわけようというスタンスなのかなという印象を受けました。
ちなみにORMにはSlickを使っているものの、DSLは使わずにPlain SQLのみ使ってらっしゃるそうです。また独自拡張を入れてブロックして結果を取り出せるようにすることでプログラマがDBIOやFutureに触る必要がないようにしているそうです。妥当な判断だなと思う反面、それならもはやSlickではなく別のライブラリを使ったほうがいいのではという気もしましたw
Play2+SlickだけじゃないScalaのWeb/DBフレームワーク事情
私のスポンサーセッションではPlay2 / Slickの代替フレームワークの紹介をさせていただきました。
www.slideshare.net
20分のショートセッションだったのでWebフレームワークについてはほぼスキップ、DBアクセスフレームワークについてもかなり駆け足となってしまいましたが現時点での結論は以下の通りです。
- WebフレームワークはいまのところPlay2でよさそう
- DBアクセスはデファクト不在なのでしばらく様子見、今選ぶならScalikeJDBC
Scalaのフレームワークはいまだに決定打に欠けるものが多く、消去法で選ばざるを得ない状況だと感じていますが今後のフレームワーク選定の参考になれば幸いです。
sbt再入門
@tototoshiさんのsbt入門セッション。
入門といってもsbtの使い方ではなく、sbtの設定を理解しようというもので、KeyとScopeについて分かりやすく説明されていました。私はsbtの設定ファイルに書いてある内容は理解しているつもりではあるものの、記述そのものはコピペしてるマンだったのでこのセッションで理解を深めることができました。
まとめ
スポンサーブースではscala-warriorの展示やGitBucketステッカーの配布などもさせていただき、多くの方とお話しさせていただきました。国外の方もいらしていて少しお話しをさせていただいたのですが、海外でのScalaの状況についてもいろいろと考えさせられるものがありました。今回の活動を通して得たヒントをもとに今後もScalaの普及のためにできることを模索していきたいと思います。
なお、参加者のツイートが以下でまとめられています。スライドの一覧リンクもありますので当日の様子を知りたいという方はこちらをご覧いただくとよいと思います。
今回のScala関西 Summit2016はセッションの配置やバランスもよく、Scala初心者の方から上級者の方まで楽しめる内容だったのではないでしょうか。今回は東京勢のセッションが多かったですが、関西のScalaユーザの事例などももっと増えてくるといいですね。
スタッフ、登壇者、そして参加者の皆さん、お疲れさまでした。来年のScalaMatsuriでまたお会いしましょう!