🌳

Elmと関数型まつり(2025)

に公開

2025年6月14日〜15日にかけて開催された『関数型まつり』に、運営スタッフ&登壇者として参加しました。ここではElmに関係する内容をまとめてみます。

(スタッフ視点での振り返りも書きました:関数型まつりをスタッフ視点で振り返る

Elmに関するセッション(発表)

Elmユーザーのコミュニティに呼びかけたところ2名の方にプロポーザルを提出いただき、私自身のスタッフセッションと合わせて合計3つのセッションが採択されました。

[A-103] 関数型言語を採用し、維持し、継続する

Siiibo証券株式会社は2019年に創業して以来、バックエンドにElixir,フロントエンドにElmと関数型言語をフルスタックに採用して、社債専門の証券システムを作り上げてきました。
このセッションでは実際に関数型言語を業務で(特にスタートアップ企業などの少人数開発組織で)採用し、維持し、継続するにあたって重視している価値観、手続き、手法などをざっくばらんに紹介してみようと思います。

Siiibo証券株式会社のCTO、松澤さんによる発表。
実際の業務で関数型言語を採用した、これまでの5年間の経験談をお話しいただきました。

[C-104] Elmのパフォーマンス、実際どうなの?ベンチマークに入門してみた

Elmは型安全性や開発体験の良さが注目されがちですが、実際のパフォーマンスはどうなのでしょうか?
「Elmは遅いのか?速いのか?」という疑問に対して、実際にベンチマークを取り、得られた知見を共有します。処理が重いサンプルコードを起点に少しずつ改良を進め、パフォーマンスを向上させてみましょう。

私の発表です。
昨年末に取り組んだベンチマークのあれこれを苦心してまとめました。

発表スライド上でElmアプリケーションを動かしているので、お手元の環境で実際にベンチマーク測定できます。ソースコード を書き換えるとより大きなテストデータでの測定もできます(結果が出るまでに数十分かかるので注意)。

[C-206] デコーダーパターンによる3Dジオメトリの読み込み

OBJファイルフォーマットから3Dジオメトリを読み込むために、elm-obj-fileパッケージを使ってデコーダーパターンを使う方法を説明します。OBJフォーマットにはglTFのシーングラフのような最新の機能はありませんが、デコーダーパターンを使うと:

  • 3Dモデルの必要な部分だけを読み込めます(オブジェクト名、マテリアル、グループで)
  • 複数のプリミティブタイプを読み込めます(点、線、三角形、面、テクスチャ付きメッシュ)
  • 座標系と単位を変換できます
  • シンプルなデコーダーを組み合わせて、複雑な形状を作れます

Blenderから作ったモデルをウェブアプリケーションに読み込む実例を示します。

ドイツ在住のアンドレイさんが来日して発表してくれました。
3Dレンダリングについての内容で、Elmでできることの幅の広さが伝わる発表でしたね!

発表スライド上で3Dモデルを動かせることへの反響も大きかったようです。
アンドレイさん自身が作ったライブラリ elm-slice-show を使っています。

当日の様子

関数型まつり当日はそれぞれのセッションをたくさんの方にご覧いただくことができました。
規模の大きなイベントはコロナ禍以来で、Elmコミュニティの地方メンバーとも久しぶりに顔を合わせることができて本当によかった。

5年以上メジャーアップデートがなかったり、TypeScriptや周辺エコシステムの充実などもあったりで、特に国内では存在感の薄れつつあったElmですが、久しぶりに表に情報が出る良い機会になりました。登壇いただいたお二人、ありがとうございました!

関数型まつりのWebサイトもElmで実装しています

スタッフとしてWebサイトの開発・運用を担当しました。
関数型まつりということで、WebサイトもElm(elm-pages)で実装してあります。
ソースコードは GitHub で公開していますので、興味があったら覗いてみてください。
コントリビュートもお待ちしています!

タイムテーブル周りの実装は、JSONデコーダーやカスタム型(代数的データ型)によるパターンマッチなど、関数型プログラミングやElmのエッセンスが多いので楽しめると思います。

https://github.com/fp-matsuri/2025.fp-matsuri.org/blob/main/src/Data/Schedule.elm

ページ側のモジュールは elm-pages を使っている関係で、普通にElmを書くよりもモジュール内のボイラープレートが厚め。来年に向けてリファクタリングしよう。

https://github.com/fp-matsuri/2025.fp-matsuri.org/blob/main/app/Route/Schedule.elm

今後のこと

Elmコミュニティ

近年はアンドレイさんの来日に合わせて、1年に1回程度イベントを企画・運営してきました。
関数型まつりで新たにElmに興味を持ってくださった方もいると思うので、遠くないうちにElmのイベントを企画しようと思います!
BlueskyDiscordconnpass などで情報を発信していますので、時々確認していただけるとありがたいです。

Blueskyには私以外にもElmユーザーがいますね。
個人的にX(旧Twitter)は使うのをやめてしまったので、どうなってるか分からない。

就活中です

少し前にUIデザインの仕事を退職して、現在は求職中です。関数型まつりがひと段落ついて、就職活動を再開するところ。
UIデザイン、エンジニアのどちらのキャリアを伸ばすか迷っていたのですが、関数型まつりの経験を経てもう一度エンジニアをやってみたいなと考え中です。

前々職では金融系のスタートアップでElmを5年間使っていたので、Elmを採用したい会社さんがあれば全力で支援したいですね。
関数型まつりで色々な言語の発表を目にしたので、他の言語のモチベーションも高まってきています。
お仕事のオファーなどありましたら、ご連絡いただけると嬉しいです!

Discussion