コドモン Product Team Blog

株式会社コドモンの開発チームで運営しているブログです。エンジニアやPdMメンバーが、プロダクトや技術やチームについて発信します!

【イベントレポート】関数型まつり2025に登壇しました! #fp_matsuri

こんにちは。プロダクト開発部の松浦とjunです。略すと松junです。本レポートは道明寺司の口調で進めさせていただきます。

...というのは冗談で、真面目にレポートします。

Scala Matsuriから関数型まつりへ

関数型まつりは、もともと「Scala Matsuri」として10年の歴史があるScala言語のカンファレンスだったのですが、2025年度からはScalaに閉じず関数型言語や関数型の機能を持った言語に関するトピックなら何でも!という形でスケールアップしたイベントです。

2025.fp-matsuri.org

招待セッションでは書籍「関数型ドメインモデリング」の著者であるScott Wlaschinさんのトークがあり、それを楽しみにしていた人も多いのではないでしょうか。なお、ScottさんのセッションはYouTubeでも公開されています。

登壇セッション

[松浦] 高階関数を用いたI/O方法の公開 - DIコンテナから高階関数への更改

登壇背景

私は元オブジェクト指向ピーポーです。
オブジェクト指向もこれはこれで面白いと思っていたのですが、関数型言語というものを知ってから、関数型に気持ちが傾き、今では関数型エンジョイ勢になりました。
私のようにオブジェクト指向から入ったエンジニアは周りに多く、その人達にも関数型の面白さに気づいてもらいたい。あわよくば、関数型ピーポーになってもらいたい。 このような気持ちで今回のトークに応募させていただきました。

トークの準備

資料作りの航海は長く、かなり難航しました。どういう雰囲気で話すべきか、それなりに悩んでいました。前日になっても決めきれていませんでした。
当日の午前、会場の雰囲気はどことなく関数型の「堅牢さ」(良い意味です)があったので、私は「まつり」要素にフォーカスしようかな、などと思っていたのですが、それでも決めきれていませんでした。
お昼休みに、中野の「再開発まつり」の景色を見て気分が高まり、資料を再開発することにしました。トーク直前1時間くらいが開発のピークでした。ギリギリ間に合いました。(実際のところ、間に合っていないのですが、ポジティブ思考は大切ですよね)

トーク本番

会場はほぼ満員でした。こんなに聴いていただけるとは想像していなかったので、びっくりでした。 お集まりいただいたみなさま、本題の長めのアイスブレイクにお付き合いいただき、ありがとうございました。
資料を再開発した結果、本当にトークが時間内に終わるかわからなかったのですが、終わってみると時間ぴったりでした。(というよりも、やや強引に終わらせたので、そうなった、ということかもしれません)

高階関数でのDIなどについても、トーク後や懇親会などで共感を示してくださった方が多く、嬉しい気持ちになりました。
また、Xでポストしていただいたみなさんの感想も拝見し、

  • DIの話で「AIは出てこない」と言いつつ、後でAIが出てきた
  • 中野で「大きな玉ねぎ」

こういう小ネタを拾っていただいて感謝しております。

中野からの帰りの電車、ちゃんと九段下の駅で乗り換えたことだけ記しておきます。

[jun] はじめて関数型言語の機能に触れるエンジニア向けの学び方/教え方

登壇背景

僕はもともとScalaを利用して開発していたこともあり、またScala知識を先輩から後輩へ教え合い基礎スキルを上げていこうという文化の中で揉まれていました。その経験が自分自身を作ってきたという想いもあり、教えあう文化の良さを少しずつ持ち込もうという思惑で本発表で話したような草の根活動をしています。

というなかで運良くScala Matsuriから関数型まつりへの変化の話を聞きつけ、Functionalな人材を増やす・ハードルをさげるという意味でも知ってほしいな。という目的プロポーザルを出したところ採択いただき発表することになりました。

登壇に至るまで

当初はより具体的な技術面の話でどういうことから関数型に入るかという話を多めにしようと思っていたのですが... 資料を作る過程で、過去に自分がFunctionalな書き方に慣れるのが大変だったこと、逆に慣れてしまうと大変だったことを忘れてしまい、さも当たり前かのように人に教えていたことがあったことを思い出しました。

そういった経験をふまえつつ、人に教える・学んでいただくために自分が工夫していることや、slack上でのコミュニケーションや対話の重要性などについて話すことができた点についてのボリュームを多めに話すようにしました。 結果、タイトルが「学び方・教え方」としたものの教え方の方に比重が寄ったことは反省しています。とはいえ、関数型まつりに来ている人が聴くというということを前提に割り切らせていただきました...

結果、それらの内容について共感いただけたので満足しています。

トーク本番

多くの方が聴きに来ていただき、準備してきて良かったなとまず最初に感じました。 Xでのリアクション等をみても、伝わってほしいことが伝わっているのがわかったのは嬉しかったです。

当社、CTOが登壇経験が極めて豊富であることから登壇練習および資料レビューがやりやすい環境がととのっています。その安心感を受けて淀みなく話せたことも、今後の自信につながるものでした。

感想など

松浦

「関数型が前提」のカンファレンス、どのセッションも楽しむことができました。「あ、Structure and Interpretation of Computer Programsで読んだことあるやつだ」という瞬間も何度もあり、20代後半の頃に読んだSICPを懐かしく思いました。
当時は理解できない内容も多く、読むのに苦労しました。いつかまた、リベンジしようと思ったまま、結局、ページは開いていません。
「行けたら行く」で本当に行く確率は0%ですし、「読めたら読む」で本当に読む確率も同様に0%です。自然の摂理。仕方ありません。
あれから10年くらいの時が経ち、いまは多少なりとも知識は増えたはずです。 さらに、関数型まつりで得た知識や刺激もあります。カリー化の素もあります。この気持ちのまま、またあの本を開いてみようかと思います。 たぶんそう言いつつ、また10年経つのでしょう。中野の再開発と勝負です。読めたら読みます。 ちなみにカリー化の素、めちゃおもしろセンスだなと思っていたのですが、あの使い切りサイズを「実際の料理に適用しようとしたときに、カリー化だけでなく、部分適用も感じる」ところまで、二度美味しいっていう解釈であってますよね?)

今回のイベント、コドモンで一緒に働いているjunさんと一緒に登壇できたのもまた、良い思い出になりました。junさんの発表中、junさんの素敵なブックマークバーがずっと表示されていたのは忘れられない光景です。けっこう整理されていました。
また、わが故郷の札幌からはるばる見に来てくれた前職のみなさん、ありがとうございました。みなさんと一緒に純粋関数を書いていた日々のおかげで、今の私と今回の発表があります。感謝しております。
最後になりますが、スタッフの皆さん、このような素敵なカンファレンスを開いていただき、本当にありがとうございました。また近い将来、関数型まつり${YYYY}が開催されるのであれば、行けたら行きます。絶対です。

jun

僕個人としては、様々な事情からなかなか技術カンファレンスに行くことができずだったのですが、登壇という機会をもって久しぶりに参加できてまず嬉しかったです。とくに、新卒1年目のときの上司とたまたま会う事ができ、オフラインで大人数集まるカンファレンスの楽しさを再実感しました。

そしていくつかのセッションを聞いていて思ったのは、「言語の違いはあれど、同じ関数型の話をしているのであれば大体コードが読める。」ということです。言語が変わっても根底にある考え方や理論、コーディングにおける課題意識が同じだから、初めて見るものでもわかるということなんだと思います。 自分のセッションもKotliを前提として話したのでどこまで具体的に丁寧に説明するか悩んだりもしたのですが、聞いていただいた方から同じような感想をいただいて安心しました。

なお、実は登壇の当日午前が子どもの父の日参観と被っていて、それを題材にアイスブレイクをしようかなとか考えていたのですが、子どもが体調不良で休むことになりドタバタと通院対応などすることになりました。アイスブレイクのネタがポシャったので焦ったのですが、会場で関数型プログラミングの情報を浴びまくった結果いい感じのネタが浮かんできたので結果オーライです。機会があるならば来年も使います。 なお、お土産に持って帰ったKubellさまのノベルティの絵文字ボールとシールが子どもに大人気でした。花より団子より絵文字ボールです。

最後に、なんだかんだScala関連の発表ばかり聞いてしまった僕の視点での、Scala Matsuriから関数型まつりへと変化したことで感じたポジティブな変化についても触れたいと思います。 10年ほど続いたScala Matsuriは、Scala言語の特徴であるスケーラビリティや言語としての表現力の豊かさを用いた実践的なトピックが多かった記憶です。とても刺激が多く勉強になることが多く、Scalaへの愛に溢れた個人的に一番好きなカンファレンスでした。

そして2025年、関数型まつりへと姿を変えましたが、Scala Matsuriからの深さ・広さの変化を感じ取りました。深さとはより純粋な関数型言語や関数型プログラミングの理論的なトピックが増えたことで、広さとはKotliやTypeScript, Python等よりライトな?言語や入門トピックが増えたことです。
仕事でScalaから離れた庶民派関数型Kotli勢である私としては広くなった恩恵を特にうけましたし、他の言語と比べることでScalaの良さを再度知り、また好きになりました。
コドモンでScalaを採用するかは未知数です。しかしながら「堅牢でスケーラブルなプログラムを指向する」というScala言語の思想は自分の・組織のモノにしていきたいなと強く感じるカンファレンスでした。