[レポート] ScalaMatsuri 2017に参加してきました #scalamatsuri

はじめに

2月25〜26日に東京国際交流館にてScala Matsuriが開催されました。
コミュニティ主導のカンファレンスとしては規模の大きいイベントに感じ、会場の雰囲気を少しでも伝えればと思い、執筆致しました。

「Readable Scala」 中村学(がくぞ)さん

スライド

読みにくいとされるScalaの文法を抵抗なく読み解くためのポイントを解説していただきました。
どうやってその処理を実現するのか(How)ではなく、何をしたいのか(What)に集中できる言語仕様がScalaに備わっているので、活用しつつ他人が最短時間で内容を理解できるコードを目指していくためのストーリーを話していただきました。

「Scala WarriorにおけるScala.jsとタイプセーフなWeb開発」 竹添 直樹 (株式会社ビズリーチ)さん

Scalaの学習ツールとして、Scala Warriorというゲームを作成された際の環境を話していただきました。
フロントのエンジニアにScala.jsを書いてもらうのではなく、サーバーサイドエンジニアがフロントへのブリッジとして利用していくのが良いとのことでした。

内容に関しては、登壇者の竹添さんもご自身のブログにまとめられています。
ScalaMatsuri 2017に参加しました

「Akkaで分散システムの障害に備える」 前出祐吾 (TIS株式会社)さん

Actorモデルの概要から、Akkaに備わっている分散システムに関する障害に対処するためのツールを詳細な図と共に話していただきました。
今回分散処理としてAkkaを利用したセッションが多く、その予備知識を得るための貴重なセッションでした。

弊社丹内もブログにて別途まとめていますので、そちらも参照頂ければ幸いです。

ScalaMatsuri 2017参加報告 #scalamatsuri

「次世代Scalaコンパイラー Dottyの今」 Guillaume Martres (EPFL)さん

スライドは執筆時点では公開されていませんでした。

Scalaの生みの親である、Martin Odersky博士が開発に関わっている次世代のScalaコンパイラDottyの現状を話していただきました。
コンパイル速度の向上はもちろん、型推論の強化、引数22制限の廃止、合併型の追加、トレイトパラメータ導入による事前定義の機能の廃止など、追加される機能で特に影響のありそうなのを列挙していただきました。

詳しくはDottydocを参照とのことでした。

「プログラムを Free にする: 関数型プログラミングの本質への開眼」 Paul Szulcさん

FreeモナドをScalaプログラムに適用した様をライブコーディングを交えながら話されていました。
肝心の内容ですが、僕にモナドの前提知識がないため、ほとんど理解できませんでした。
勉強して出直したいと思います。

「メタメタにしてやんよ。(メタプログラミングもしくは Shapeless のすすめ)」 Chris Birchall (Ovo Energy)さん

スライド

Scala Macroに変わる手法として、scala.metaを用いたScalaのメタプログラミングについて、コードを交えながら話していただきました。
macroで書いていた場合コードを、shapelessを利用して置き換える例もありました。

A Whirlwind Tour of scala.meta

「モノリシックからリアクティブへ - 大切なのはアーキテクチャ」 James Roper (Lightbend)さん

スライド

Scalaの考案者が創業したLightbend(元Typesafe)のJames Roperさんが、自社のマイクロサービスのLagomを用いたオークションサイトをライブコーディングで完成させるところまでを話していただきました。
ユーザーを管理するマイクロサービス、入札を管理するマイクロサービスのそれぞれで障害が発生した場合、実際に起こる問題を実演していただきました。
障害発生の際にいかにして整合性をとるかを実演することで、障害が起こることを前提としたアーキテクチャの構想の大切さを伝えていただきました。

「ChatWorkのScala採用プロダクト “Falcon” リリースまでの失敗と成功の歴史」加藤 潤一さん

チャットワークのScala移行と大規模メッセージDB再構築、本当にできたんですね!(前編)

上記の記事が数日前に発表されたこともあり、A会場がほぼ満席になるくらいの人数が受講されていました。
去年末リリースされた、ChatWorkのScala移行プロダクトが約4年の間にあった紆余曲折を話していただきました。
当初のPOC(Proof Of Concept)を満たすアーキテクチャの選定や、開発を進めていく上で発生した様々な問題と、問題を解決するためにプロジェクトを停止したこと、振り返りを3日間行ってプロジェクトを再始動させたこと、リリースするまでの間に行ったことなどを話していただきました。

shigemk2さんがより詳細なメモをブログに執筆していただいてます。

memo: ChatWorkのScala採用プロダクト “Falcon” リリースまでの失敗と成功の歴史 #ScalaMatsuri

まとめ

前日に急遽思い立ってチケットを買って参加しましたが、結果として大満足でした。
スピーカーも海外の方が多く、海外からの参加者もいるためか、スライドは基本英語でした。
ただ、同時通訳で翻訳されていることもあり、また翻訳のレベルが高かったため、キーワードを聞きもらすことはありませんでした。
コミュニティ主導のカンファレンスとしては非常に高いクオリティで、準備に相当時間を掛けられたのだと思いました。

すばらしい時間を提供していただきました、運営と登壇社の皆様に感謝いたします。

ブログまとめ

登壇者、スタッフの皆様のブログ

ScalaMatsuri 2017に参加しました
Scala Matsuri 2017にて「Serverless ArchitectureをScalaで構築するぞ」を発表してきましたー
ScalaMatsuriでA会場の司会をやっていました

参加者の皆様のブログ

ScalaMatsuri 2017参加報告 #scalamatsuri 弊社丹内のブログです
ScalaMatsuri 2017 に参加してきました(1日目:午前の部)
非エンジニアがScalaMatsuriに潜り込んでScala最前線の熱量を感じてきた話
配信を聞いてScalaMatsuri 2017に行った気になってみた
memo: ChatWorkのScala採用プロダクト “Falcon” リリースまでの失敗と成功の歴史 #ScalaMatsuri