こんにちは、kubell では主に Scala で Chatwork のバックエンド開発をしている髙橋(id:z3r05um)です。
この記事は、弊社が先日参加させていただいた『関数型まつり2025』において実施した web アンケート、題して『関数型プログラミング最前線調査』の集計結果をお伝えするものです。当日ブースにお越しくださりアンケートにご協力いただいた皆様、誠にありがとうございました。
ブース出展の様子は以下の記事にて紹介しています、よろしければ併せてご覧ください。 creators-note.chatwork.com
アンケートの概要
合計で 159名 の方にご回答いただきました。
回答者の皆様の属性は以下のようになっていました。
エンジニア関連職の方が大半である点に大きな驚きはありませんが、どの程度の経験があるかという軸については分布に大きな偏りが見られません。実践としての関数型プログラミングが広く定着していることを感じました。
現在の職種・役職(あるいは最も近しいもの)

エンジニア経験年数

関数型プログラミングを利用した開発の経験年数

関数型プログラミングに関するアンケート結果
普段利用しているプログラミング言語
回答の実に半数以上に TypeScript が挙がっていました。 意外というわけではないのですが、JavaScript/TypeScript のコミュニティが関数型プログラミングのコミュニティを牽引する強い原動力の一つになっているのだなということを改めて感じました(どちらかといえば、関数型コミュニティにおいて Nix が 1票 のみだったのが意外ですね)。
その他、1票のもの: Agda, Zig, HLSL, Julia, hcl, Objective-C, 日本語(確かにその通り!), Apex, Ansible, Dart, Nix
普段プログラミングをする際に利用する関数型プログラミングの概念や機能
純粋関数・不変性・高階関数・代数的データ型 が普及しているという結果が見られるのと対照的に、カリー化・部分適用・型クラスの利用は限定的であると言えそうです。
利用されているプログラミング言語では関数型プログラミングを取り入れたマルチパラダイムなものが多く、型クラスや部分適用などの要素は関数型パラダイム以外のパーツで代替できてしまうといった要因がありそうに感じました。
我々のプロダクトにおいても、言語によって制約がある高階関数はともかく、純粋関数・不変性・代数的データ型は採用言語に依らず意識・利用する傾向が強い一方で、カリー化・部分適用・型クラスは言語による制約が強いこともありますが、抽象化の単位として採用されるケースは限定的であり、実感としてもアンケート結果と大きく乖離するものではありませんでした。

関数型プログラミングで経験した/期待するメリット
コードベースの信頼性・保守性・堅牢性に関わる回答が大きな割合を占める傾向にあります。この点も、関数型プログラミングの実践的な活用に対する期待の表れであるように感じました。
我々も、例えば「不変性」を関数型プログラミングとしての言語機能の仕組みがサポートしてくれることで、実装する人間が強く意識しなくても一定以上の信頼性を得ることができるという点などは、メンテナビリティに大きく貢献していると感じます。

チームやプロジェクトで関数型プログラミングを導入/推進する上での課題
メリットの一方で、導入にまつわるハードルとして概念の難解さや急峻な学習曲線が多く挙がっていました。確かに手続き型プログラミングとのパラダイムの違いは小さくないというのは事実であり、前述の「利用する関数型プログラミングの概念や機能」も、それを反映したものだと思います。
弊社プロダクトにおいてもその影響は少なくはなく、関数型プログラミングをチームとして実践していく上で乗り越えていかなければならない課題ですね。

今後 3~5 年で関数型プログラミングが特に重要性を増す/活用が広がると予想する分野
意外というか興味深いなと感じたのがこの結果です。「普段利用しているプログラミング言語」の項目では JavaScript/TypeScript が半数以上を集めていましたが、ここで web フロントエンド領域が回答として挙がったのは 30件、これは JavaScript/TypeScript の活用領域があまりに広いことの表れでしょうかw

いわゆる AI Agent や対話型生成 AI の台頭が関数型プログラミングの使用や学習にどのような影響を与えるか
最近の潮流である AI Agent との関係についての項目では、ポジティブな展望に票が集まりました。
関数型プログラミングの普及に関する課題の解消に寄与するという想定や、強力な型システムを持つことが多い関数型プログラミングの性質が AI Agent とのインターフェースとして有効に働くといった想定に期待をしている方が多いですね。

プログラミング初学者の頃、書籍やドキュメント以外に IDE のコード補完機能を利用しながら実践としての知識を身につけていったという方はそれなりにいらっしゃるのではないでしょうか。わたしもそういった一人なのですが、今後は AI Coding Agent がこうした場面で力を発揮することになるだろうことを実感しています。
弊社でもエンジニア組織を中心に AI Coding Agent を導入しました(よろしければ以下の記事もご覧ください)。採用する技術スタックが多岐にわたる弊社のプロダクト開発環境において、関数型プログラミングを推進していく際の課題を解決する一助になることも大きく期待しています。 creators-note.chatwork.com
さいごに
今回の関数型まつりでは入門向けや導入事例のセッションが多く採択されていたことは印象的で、「いかに裾野を広げるか」という執念めいたものを感じています。わたし達もコミュニティの一端を盛り上げて行きたいと改めて感じました。