ScalaMatsuri運営ブログ

アジア最大級のScalaカンファレンス「ScalaMatsuri」の運営ブログです。このブログは株式会社はてな様のご協力でお送りしています。

番外編 Scala World 2015レポート その2 アンカンファレンス編

f:id:oe_uia:20150927202628j:plain

こんにちは、ScalaMatsuriスタッフの@OE_uiaです。

今回も番外編として2015年9月19日〜23日にイギリス湖水地方で開催されたカンファレンス、Scala World 2015の模様についてお送りします。前回のScala World 2015ハイキング編のレポートはこちら。

番外編 Scala World 2015レポート その1 ハイキング編

会場の入り口。ジュラシックパークみたいだね、ってTwitter上で突っ込んでいる人もいましたが、まさにそんな感じです。 f:id:oe_uia:20150927202621j:plain

9/20 アンカンファレンス

この日は昼頃までハイキング(自分は不参加)と、午後3時からアンカンファレンスを行いました。 古くはNE Scalaがアンカンファレンスを行っていましたが、最近ではScala Days 2015 San FranciscoScala Matsuri 2014など、アンカンファレンスを取り入れるScalaカンファレンスが増えてきました。

アンカンファレンスとは?

それでは、アンカンファレンスとは一体どんなイベントでしょうか?

講演内容や発表者が当日まで決まっておらず、来場者が自分の話したい内容を発表する、参加者が全員でつくりあげるカンファレンス。発表者したい人は当日受付で申し込みを行う。

Hatena Keywordより

付け加えると

  • アンカンファレンス冒頭の30分〜1時間で、参加者によるセッションの提案、採用可否の決定、タイムテーブル作成を行う。「朝会」などとも呼ばれる。
  • イベントによっては、事前に応募だけ受け付けることもある
  • トーク以外に、ワークショップやパネルディスカッションなど、様々な形式でセッションを行われやすい
  • 本セッションの CFP で落選した人など、最初っから応募してなくてもネタを事前に仕込んで来ている
  • とりあえず当日はラップトップ・電源・プロジェクタのコネクタを持ってきている
  • 何を話してもいいので多少マニアックな内容でも ok

といった特徴があります。

今回のScala World 2015では、事前にGitHub上でpropensive/scalaworldに概要を記載したmarkdownをPull Requestで送ることで事前応募可能でした。事前に応募するとWebサイトのアンカンファレンス欄に表示されます。

筆者(@OE_uia)も事前に応募していましたが、概要が公開されていたことで、スピーカーのChris Birchall(@cbirchall)氏にお声がけいただき、ロンドンのGuardian, Inc.本社で発表する機会をいただきました。事前に積極的に応募しておくと、思わぬ機会につながることもあると学びました。(Chrisさん、ありがとうございました!)

アンカンファレンスのPlanningセッション

Scala World 2015主催者のJon Pretty(@propensive)氏の仕切りでプラニングセッションがスタート。

「このセッション30分にして欲しい」「離れてる会場でもいい」などとその場で調整しながら埋めていきました。

f:id:oe_uia:20150927201814j:plain

Google Docs上にリストアップしたセッション候補に対し、カーソルを当てた人数で採用可否を決定する、というユニークな方法で投票していました。

筆者のトーク「Neural Network as a function」も幸いにも採択。ただ時間の都合上デモができなかったので、あまりScala成分ありません。

www.slideshare.net

Beyond Scala Lenses

f:id:oe_uia:20150927201829j:plain

Monocleの作者Julien Truffaut(@JulienTruffaut)氏のトーク。

www.slideshare.net

Iso, Prism, Lens, Optionalといった、Optics関連の概念をScalaのコードを使って解説するセッションです。 途中クイズ形式だったり、かなりインタラクティブに進行していました。

「Prism相当のものはScala標準ライブラリに含まれているけど、なんだか分かるかな?」

「apply & unapply」

「正解!」

などと、前方で次々に即答している人をよく見たら、SpireCatsのリポジトリオーナーでスピーカーのErik Osheim(@d6)氏でした。流石。

-Yno-lub

sbtチームのEugene Yokota(@eed3si9n)氏による、型推論を弱くするフラグの提言。現在はsbtプラグインとして公開されています

自分は聞けませんでしたが、人だかりができていました。

Strict equality and cooperative equality in spire

SpireメンテナのRüdiger Klaehn(@klaehnr)氏による、Equalityを表す型クラスに関するトーク。

docs.google.com

  • Equalityを表す型クラスインスタンスが、ライブラリによって実は全然挙動が違ってつらい
  • EqualityをStrict EqualityとCooperative Equalityに分けて、カスタマイズはCooperative Equalityの型クラスだけでやらないか、という提案

Equalityを表す型クラスが整理されていて、リファンレンスとしても便利と思います。

7/20夜 アンカンファレンス後の飲み会

f:id:oe_uia:20150927202608j:plain

Julien氏も来ていたので、Lensについての話題が中心でした。

「Lensでネストされたデータ構造の値を取り出す話、Haskellだと嬉しいのはわかるけど、フィールドアクセスをドットでチェーンできるScalaだと何が嬉しいんだろう?」

「いや、case classだとcopyのネストが嫌じゃない?」

「Lensを使った場合のパフォーマンスはどうなんだ?」

「Lensを使うと関数合成のたびにインスタンスが生成されるからその分だけ遅くなるけど、6重にネストされた程度のオブジェクトなら定数の範囲で収まるよ」

などなど。

その一方で、マインクラフトでプログラミングなど今まで見た変態言語の話題になったので、日本が誇る?肉体言語Tythonの紹介をしたところウケるなど、こちらも楽しく参加していました。

ぷち宣伝

2016年1月30日、31日に開催するScala Matsuri 2016では、2日目にアンカンファレンスを開催することを決定しました! 続報をお楽しみに。

カンファレンスはその3へと続きます!