Scalaわいわいブログ

プログラミング言語Scalaのコミュニティ『Scalaわいわいランド』のブログです。

株式会社ドワンゴ会場提供でScalaわいわい勉強会 #2を開催しました #scala_waiwai

Scalaわいわいランドは2024年2月27日にScalaわいわい勉強会2を開催しました。

scala-tokyo.connpass.com

ハッシュタグは前回に引き続いて #scala_waiwai となっております。現場の様子はTwitter(X)でご確認いただけます。

発表資料紹介

今回は発表3本、LT3本の構成となりました。発表順に紹介します。

@nomadblacky: ReckonerのScalaプロジェクトにおけるオブザーバビリティの取り組み

speakerdeck.com

一番最初の発表はオブザーバビリティの話。最近は OpenTelemetry が広がりを見せており、Scalaでもotel4sといったライブラリが出ていたり、そもそもOpenTelemetryのリファレンス実装がJavaで書かれていたりと、結構Scalaユーザにとっては嬉しい環境が整っているんですよね。OpenTelemetryはかなり柔軟なメトリックやトレーシングの取得に対応していますが、もともとScalaは大規模な開発や分散したシステムの開発などでも重宝されてきたので、そこでとても良いシナジーが出ると思います。読者の皆様も、これを機に観測パワーをアップさせてみてはいかがでしょう。

@ponkotuy: Scala3移行話

ponkotuy.github.io

Scalaユーザたるもの、いつかはScala3にアップデートしたいという想いを胸に秘めているのではないでしょうか。もしくは最初からそうなってるかですね。幸福な家庭はどれも同じようなものだが、Scala3へのアップデートの道程は人それぞれである、とトルストイが言ったり言わなかったりしたそうですが、@ponkotuyさんの場合なんとかなったようです。オーディエンスはというと、笑いあり涙ありといった感じでした。みんなでアップデート頑張りましょう。

会場での質疑応答で以下のような話がありました。

Q. うちはScala 2.13と3とでクロスコンパイルするところまでは行けている。アーティファクトを切り替える最後の切っ掛けは?

  1. ロスコンパイルは辛いので、プルリクを作って一気にScala3に持ち上げ、そのままマージした。

@tanishiking: Scala to WebAssembly: How and Why

speakerdeck.com

Scalaチームと一緒に働いているコントリビュータにしてScalaわいわい勉強会の共同創設者でもある@tanishikingさんがお届けしたのはWebAssemblyのお話。WASMってアレでしょ?なんか速くなるんでしょ?といったフンワリした状態から、ScalaGC、そしてScalaでまさに今進んでいるWebAssembly向け実装の今に至るまでを、実装者の視点からわかりやすく紐解いていただきました。WASMまわりのエコシステムもまさに今成長していく途上であり、相互に協働しながら発展していく中で、WASM対応言語としてのScalaが大きく成長してくれたらいいな、と願っています。

会場では実際に簡素なScalaのコードをWASMに変換して実行するデモが提供されました。1+1が計算できたことに会場では歓声が上がりました。

(LT) @YOU40014332: sbt-assemblyにハマってDB接続できず時間が溶けた話

(写真撮り忘れました :bow: )

speakerdeck.com

ここからはLTコーナーです。Scalaユーザであれば1回くらいはsbt-assemblyでUberJARを生成したことがあろうかと思うのですが、だいたいlog4jあたりのコンポーネントMETA-INFという謎の(謎ではないが)ディレクトリを衝突させて初心者殺しになっているんですよね。ありますよね?

この発表では、同じくしてMETA-INFで衝突が起こり、それを回避するために衝突ファイルを破棄するというあるあるな操作を行っていたところDB接続がなぜか壊れるという、一見すると因果関係が分からない謎の現象に苛まれたお話が紹介されました。

ちなみに会場で様子を伺ってみたところ、やっぱりみんなMETA-INFをコッソリ捨てているようでした。落とし穴に気付けて良かったね!

(LT) @Arthur1__: 見せ算をScalaで実装してみた

speakerdeck.com

今日イチのエンタメ発表はこちら。M-1勝戦に登場した、四則演算に突如として追加された謎の演算「見せ算」(見せ算の結果は「眼」と呼称する)。これをScala3の様々な便利機能を用いて軽々実装していくのですが、どういうわけか途中から大学院の講義が始まり・・・?

ちなみに会場では見せ算を履修している参加者がおらず、ピンときていなくて逆にそれが面白い状態になっていたのが印象的でした。みんなで見てください。

(LT) @by110416: Scala 3 にコントリビュートしよう

speakerdeck.com

発表の最後を締め括るのは、LTとは思えない超本格的内容のお話だった。皆さんScala3自体にコントリビュートしたことはありますか?もし無くても大丈夫!このスライドを読めば、多分コンパイラにコントリビュートできますよ!?

というお話なのですが、内容は至って実用的。コンパイラにコントリビュートする手段にはどのようなものがあるのか?どういった種類のバグがあるのか?どういうタグなら手を付けやすいか?テストはどう書かれているのか?といった、コントリビュートってどうやるんだよという至極当然の疑問を包括的に取り扱った、たいへん分かりやすい入門ドキュメントになっているわけです。こんなドキュメント、今まで無かった!Scalaに上達してきたら読んでほしい、実戦形のLTです。

まとめ

今のところ勉強会の発表者は先着順でストンと決まっているんですけれど、Scalaって結構難しいイメージを長いこと持たれているというか、それ系の発表が多くなるんじゃないかな〜なんて思ってたんですが、蓋を開けてみると本当に丁度良い塩梅になってまして、上級者が喜ぶコンテンツあり、入門者でも楽しめるコンテンツありのビュッフェスタイルみたいな感じになりました。実際、今回が初めての参加なんですとか、Scalaのことは知らないのだけれど参加してみました、なんて教えてくださった方もいらしたりして、開催者としては本当に嬉しい限りです。これもひとえに参加者の皆様の暖かい熱意のお陰でして、Scalaわいわいランドを一緒に盛り上げていこうという知的試みがうまく結実した果実なのではなかろうかと想います。本当にありがとうございました。

また、発表が全て終わった後の懇親会でも、Scalaの今後や教育、登壇者への質問などでたいへん会場は沸き立ち、会場を閉めるギリギリまで交流が続いていたのも、このコミュニティを立ち上げて良かったなと実感するポイントでした。オフライン勉強会の醍醐味ですね。

今更ではありますが、Scala初心者/上級者を問わず、Scalaわいわいランドでは一緒にScalaコミュニティを盛り上げてくれる仲間を募集中です。Scalaのわいわいを支える草の根コミュニティとして、これからも多様なコンテンツと交流を一緒に形作っていきましょう。まぁ要するに、一緒にScalaの話がしたいぜ!ってことです。このブログのリンクコーナーからDiscordサーバに参加できます。

謝辞

今回の会場提供を行ってくださった株式会社ドワンゴさま、加えて会場責任者として準備・運営などで多大な助力をいただいた@hsjoihsさまに深く感謝いたします。会場設備が大変整っており運営容易でした。

重ねてですが、今回参加してくださった皆様、そして今回は参加できなかったけれど遠方より念を飛ばしてくださった皆様、ありがとうございました!

Coming Soon...?

例によって次回の開催のことは何もまだ考えていないのですが、2ヶ月後らへんで開催できるといいですね(何も計画していません)。完全にコミュニティで運営しているScalaわいわい勉強会は会場提供していただける企業様やスペース様、そしてお行儀良く参加してくださる参加者あっての勉強会でして、もし勉強会に来てみて良かったよ〜という方がいらっしゃいましたら、是非次回の会場提供を御一考いただいたり、ご勤務先の方に「良かったよ」なんて、言っていただけると大変助かります。

一緒にScalaシーンを、ひいてはプログラミングコミュニティ全体を盛り上げて温めてまいりましょう。