Scalaわいわいランドは2025年11月27日、ピクシブ株式会社さまのオフィスをお借りしてScalaわいわい勉強会#6を開催しました!
会場提供・懇親会での飲食物の提供をくださったピクシブ株式会社さま、ありがとうございました!(ピクシブの決済基盤におけるScalaの活用についてもお話いただきました!)
今回もハッシュタグは#scala_waiwaiとなっております。発表に対する感想や盛上がりが確認できます。是非ご覧ください!

発表
Anatolii Kmetiuk - Web App Development Flow with Scala and HTMX
トップバッターはAnatoliiさん。複雑になりがちなモダンなフロントエンド開発に対し、「サーバーサイドScala + HTMX」でいかにシンプルかつ高速にWebアプリをプロトタイピングするか、というお話でした。
アプリの状態管理をJSに持たせず、ロジックはサーバーに集約するという思想(HMDA HyperMedia-Driven Architecture)に基づき、エンドポイント名をそのままsource of truthとして扱う命名規約や、AIによるコード生成を加速させるためのパターン化など、個人開発を効率化する「サンドボックス」の作り方は非常に興味深い内容でした。

xuwei-k - sbt 2
xuwei-kさんからは、Scalaのビルドツールであるsbtの次期メジャーバージョン「sbt 2」の最新状況について。
ビルドファイル自体がScala 3で書けるようになることや、テストなどがデフォルトでキャッシュされる(test が testQuick のエイリアスになる!)といった、開発効率に直結する変更点が盛りだくさんです。プラグインの互換性チェックなど、移行に向けて今から準備しておくべきポイントなどについてお話いただきました!
sbt2 は Bazel をかなり意識した設計になっており、Scalaのビルド高速化にどう寄与するか、楽しみですね。

matsu_chara - 大体よく分かるscala.collection.immutable.HashMap ~ CHAMP ~
Scalaの不変HashMapの内部構造に使われているCHAMP(Compressed Hash-Array Mapped Prefix-tree)というデータ構造を解説する非常にディープな内容を話していただきました。
基礎となるHAMT(Hash-Array Mapped Trie)の仕組みから、ビット演算のpopcount命令を使ってどのように配列を圧縮し、高速なアクセスを実現しているかを図解で分かりやすく解説。普段何気なく使っているMapの裏側にある、メモリ効率とパフォーマンスを両立させるための最適化の工夫を解説してくださいました。
複雑なデータ構造を解説する非常に難しい発表内容でしたが、馴染み深いデータ構造の裏側に関する話ということで、とても盛り上がっていました!

ピクシブの決済基盤におけるScalaに関する取り組みについて
ピクシブ株式会社さまよりスポンサーLTとして、ピクシブの決済基盤におけるScalaの活用についてお話いただきました。Scala3への移行や、開発効率化のためのGitLab CIで実行するjobの高速化など精力的にScalaの活用をしていることを発表いただきました!

ライトニングトーク
tanishiking - Capture Checking / Separation Checking 入門
続いて主催の一人であるtanishikingからは、Scala 3の実験的機能である「Capture Checking」と「Separation Checking」についての解説です。
どの値がキャプチャされているか、を型レベルでトラッキングすることで、リソースの生存期間を制御したり、並列処理でのデータ競合を未然に防いだりする仕組み。Rustの所有権に近い概念を、GCのあるScalaにどう取り込んでいくかという、Scalaの実験的機能について解説しました。

gakuzzzz - Scala 3 の Mirror で型クラスの汎用実装を楽に定義
gakuzzzzさんからは、Scala 3で導入された Mirror を活用して、ボイラープレートを削減するテクニックの紹介です。
マクロを自前で書くことなく、case classやenumの構造を型レベルで操作する方法を、ScalaCheck の Arbitrary 実装を例に具体的に解説してくれています。インライン展開によるコンパイル時間への影響など、実務で使う際の注意点(Circeのauto vs semiautoのような話)まで踏み込んだ、実践的な内容でした!型クラスの実装の自動導出は両刃の剣ですね...

jiftechnify - Functional Programming in Scala 第2版 読書のすゝめ
Scalaで関数型プログラミングを学ぶ、通称「Red Book」の第2版がいかにアップデートされているか、熱い推しトークでした!
Scala 3の新構文によってコードのノイズが減り、より本質に集中できるようになった点や、fs2の簡易版を自作するストリーム処理の章の内容一新など、初版を読んだ人でも楽しめる内容になっているそうです。全演習問題に解説がついたとのことで、挫折した経験がある人も再挑戦するチャンスかもしれません!

Coffee Sponsor
今回もワンダーソフト株式会社さまよりコーヒースポンサーとしてハンドドリップでコーヒーの提供をいただきました!
おかげで発表の合間に(文字通り)コーヒーブレイクを挟むことができ、非常に和やかな雰囲気になりました。本当に美味しかったです!ありがとうございました〜

まとめ
前回から少し間が相手しましまいたが無事6回目のScalaわいわい勉強会を開催することができました。今回もScala3やsbt2から推し本の紹介や複雑なデータ構造の紹介など幅広い内容の発表が揃いました!発表してくださった皆様、参加してくださった皆様、そして会場提供くださったピクシブ株式会社さまありがとうございました!
次回のScalaわいわい勉強会#7でまたお会いしましょう〜