アプリケーションエンジニアの id:tanishiking24 です。 報告が遅くなってしまいましたが、2019年6月11日から2019年6月13日にかけてスイスのローザンヌで開催された、世界最大規模のScalaのカンファレンスである Scala Days 2019 に参加してきました。
この記事では写真を多めに会場の雰囲気や、Scalaコミュニティ最前線の熱気をお伝えしようと思います。
Scala Days 2019
今年はちょうどScalaが15周年、Scala Days開催10周年、またScala生誕の地であるEPFL(スイス連邦工科大学ローザンヌ校)50周年が重なり、Scalaにとって特別な年ということで原点回帰の意味も込めて(?)EPFL(の隣のSwiss Tech Convention Center)が会場となりました。キーノート、コミュニティイベントを含めて約1週間、トークセッションも4トラックという大規模なイベントに世界各地から1500人*1ものScalaエンジニアが集まりました。
Scalaコンパイラ開発者や、主要なライブラリやツールの開発者による発表が多く、非常に興味深いセッションを楽しむことができました。発表の様子はすでにYoutubeにアップロードされています! Scala Days Lausanne 2019 - YouTube
弊社からScaladaysに参加したのは僕一人だったので、現地でボッチにならないか心配していましたが、イベント期間中多くのCommunity Eventsが開催されており参加者同士のコミュニケーションを促進する仕組みが整えられていたおかげで、一緒にローザンヌ街歩きツアーに参加した人やScalaSpreeというOSSイベントで普段Github上でやりとりしていたエンジニアと仲良くなれたりと、イベント期間中楽しく過ごすことができました。
会場
先に述べたように会場はEPFLの隣に位置するSwiss Tech Convention Centerが会場でした。今年は特別にEPFLで開催したけれど来年からは普段通りEPFL以外のヨーロッパのどこかとアメリカで開催する予定とのことなので、このタイミングでEPFLを訪ねる機会が得られてよかったです。
ランチや間食には常にハラルやベジタリアンを考慮したメニューが提供されており、コミュニティのダイバーシティをとても尊重しているのが印象的でした。(トークパネルや2日目のランチでもダイバーシティに関するセッションが開催されており、活発に意見交換がなされていました)。
ちなみにEPFLにはLausanne Flon駅というローザンヌ中心部に位置する駅(だいたいの旅行者はこの付近に滞在している)からメトロ一本で行くことができ交通の便が良い。
トークセッション
記事冒頭にも書きましたがトークセッションの動画はYoutubeにアップロードされています、ありがたい!
キーノートではMartin Odersky先生が「2010年に初めてScalaDaysを開催したときは参加者はほんの55人程度の参加者で、会場も演壇も非常に狭く発表中壇上を歩き回っていたら落ちそうで危なかった。それが今年は(参加者は1500人にも及び)、演壇はとても広いので歩き回っても落ちる心配がない」というようなことを言っていていい話だった。
トークセッションは関数型プログラミングや分散システムから、コンパイラ、DevTools、コミュニティ運営やScalaエンジニア教育など様々なトピックのトークがバランスよくカバーされていました。
僕は主にDevToolsに興味があったので、ScalaのLanguageServer実装であるMetalsの話や、LanguageServerなどのDevToolと(sbtやmillなどの)BuildTool間のデータの受け渡しを標準化したBuildServerProtocolの話、TwitterにおけるScalaのリモートコンパイルサーバーや並列コンパイルの試みについてのお話や、Dottyで導入されるTypedAST同等の情報を持つフォーマットであるTASTYについての発表などが特に興味深かったです。
どの発表もとても面白かったのですが、個人的に一番印象に残っているのは@holdenkarauさんのWhy you need to be reviewing open source codeという発表で、OSSコミュニティ上でのレビュアー/レビュイーにとってのコミュニケーションの仕方などに関する話。その場でApache Sparkのライブコードレビューが始まり、change requestする際の言葉選びなどに気を使っている様子は、僕自身最近OSSコードレビューする機会がたまにあるため非常にためになりました。
ライブコードレビューの様子は@holdenkarauさんのYoutubeチャンネルにも上がっています。https://youtu.be/pyWV6D1Hdg0
Community Dinner
コミュニティイベントの一環として、二日目の終わりにはオリンピックミュージアムを貸し切り(!!!)でのコミュニティディナーが開催されました。ディナー準備中はオリンピックミュージアムの展示をScalaDays参加者貸し切りで眺めることができて贅沢。
(ところでこの写真を撮った時間はだいたい18:00頃、日の入りが非常に遅くだいたい夜の20:00くらいまでは明るかったです)
この場でも別のコミュニティイベントで知り合った人をつてに、また新しい人と出会い話をすることができとても楽しかったです。
Phil Bagwell Award & Closing panel
最終日の終わりのClosing Panelの前に、Scalaコミュニティへの貢献を称える賞(?)であるPhil Bagwell Awardが発表され、2018年にはScalaのあらゆるOSSに対して多大な貢献を成し遂げたとして@xuwei_kさん、2019年にはScalaの初心者教育イベントであるScala Bridgeを開催しコミュニティのダイバーシティの向上に貢献したとして@kelleyrobinsonさんがノミネートされ、ビデオレターがその場で流されました。
Surrounding Events
ScalaDaysのメインは6月11日から6月13日にかけて開催されたトークセッションがメインですが、参加者同士のコミュニケーションを促進するためのコミュニティイベントが多数開催されていました。僕の参加したイベントのうちからいくつかをご紹介します。
Scala Spree
Scala SpreeはScala関連のOSSにその場でコントリビュートしてみようというイベントです。主要なライブラリやツールやコンパイラのメンテナに対して直接質問などしつつOSS開発に取り組むことができます。
会場はEPFLキャンパス内のBC Buildingというところで、Scalaのロゴのモチーフとなった例の階段のある建物。
僕はScalaのscalametaベースなLanguage Server実装である metalsの開発に取り組みました。以前からこのプロジェクトには興味があったもののアーキテクチャの全体像が掴めずにいたのですが、イベント中はアクティブメンテナ達にアーキテクチャや過去のcommitの背景などについて直接質問することができ、最終的にmetalsに機能を一つ追加しコードの全体的な理解を深めることができました。
またこのイベントのおかげで、普段よくGithubで連絡を取り合っていた開発者とついに現実世界で対面することができたり、このイベントで知り合ったエンジニアとカンファレンス中一緒にご飯を食べたりなど、良いことづくめのイベントでした!
Tour of the city
Lausanneの街歩きツアー、ScalaDaysが提携したLausanne Tourismeによって開催され、ScalaDays参加者なら無料で参加することができました。
本来の参加人数は25人程度だったはずが、当日雨だったからか現地に集まったのは僕を含めて4人だけ...一時はどうなるかと思いましたが結果としては全員と仲良くなることができましたし、ガイドさんにも質問をぶつけまくることができたので良かったですw
ローザンヌ、美しい石畳や古くからある建築物などどこを切り取っても絵になる美しい町並みでした。またのんびりと滞在しに行きたい。
ちなみに物価は確かに全体的に高いけれどスーパーに売っているパンや野菜は果物はかなり安いし、水道からアルプスの水(?)を浴びるように飲めるので、食費でお金が吹き飛ぶということはありませんでした。
おわりに
参加する前は現地でボッチになったらどうしよう...とか、お金も時間もすごくかかるのに参加する価値はあるのか?など悶々としていましたが、参加した結果としてScalaの最先端から多くの刺激を受けることができ、またScalaコミュニティをもっとよくしていこうというコミュニティの意思を直接感じることができてとても良かったなと感じています!また来年も参加したい。
今回ScalaDaysに参加するにあたってカンファレンス費用のサポートで背中を押してくださった会社にはとても感謝しています。
はてなでは日本国内のイベントへの参加のみならず、ScalaDaysに加えPerlの国際カンファレンスであるPerlConやWWDCやre:Inventといった国際カンファレンスへの参加をサポートに積極的に取り組んでいます。