# State of Haskell 2025

**URL:** <https://discourse.haskell.org/t/state-of-haskell-2025/13390>\
**Category:** Haskell Foundation\
**Created:** [December 10, 2025, 7:57pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390 "2025-12-10T19:57:52Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![jmct](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jmct/32/3806_2.png) [@jmct](https://discourse.haskell.org/u/jmct)\
**Post date:** [December 10, 2025, 7:57pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/1 "2025-12-10T19:57:52Z")

</div>

Hello everyone!

The Haskell Foundation is reviving @taylorfausak’s State of Haskell Survey. It’s been a few years and so we’re doing it a bit differently, but the plan is to start doing this yearly again so that we can collect longitudinal data on the Haskell community and ecosystem.

Please take the ~10 minutes to fill this out and share it with friends/colleagues/coworkers, whether or not they are users of Haskell.

> **[State of Haskell 2025](https://www.surveymonkey.com/r/6M3Z6NV)**
>
> Take this survey powered by surveymonkey.com. Create your own surveys for free.

Thanks!

-Jose

---

<div class="post-metadata">

**Author:** ![Kleidukos](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/kleidukos/32/1213_2.png) [@Kleidukos](https://discourse.haskell.org/u/Kleidukos)\
**Post date:** [December 10, 2025, 8:30pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/2 "2025-12-10T20:30:33Z")

</div>

Answered! Thanks a lot

---

<div class="post-metadata">

**Author:** ![ApothecaLabs](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/apothecalabs/32/3215_2.png) [@ApothecaLabs](https://discourse.haskell.org/u/ApothecaLabs)\
**Post date:** [December 10, 2025, 9:16pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/3 "2025-12-10T21:16:54Z")

</div>

Filled out mine and submitted!

---

<div class="post-metadata">

**Author:** ![romes](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/romes/32/2912_2.png) [@romes](https://discourse.haskell.org/u/romes)\
**Post date:** [December 11, 2025, 12:21am UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/4 "2025-12-11T00:21:57Z")

</div>

Thanks for doing this! I’ve sent mine. Cheers

---

<div class="post-metadata">

**Author:** ![mchav](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/mchav/32/5143_2.png) [@mchav](https://discourse.haskell.org/u/mchav)\
**Post date:** [December 11, 2025, 3:21am UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/5 "2025-12-11T03:21:28Z")

</div>

I asked some non-Haskell colleagues, as directed, (a combination of data science people and software engineers - some who have tried Haskell others who haven’t) to do the survey and after the first page there were a lot of Haskell specific questions they couldn’t answer e.g I’m satisfied with stack or hackage.

Idk how these surveys are setup it might be good to have early exit after the generic part of the survey. Cause it was a little hard to get them to complete it.

---

<div class="post-metadata">

**Author:** ![jmct](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jmct/32/3806_2.png) [@jmct](https://discourse.haskell.org/u/jmct)\
**Post date:** [December 11, 2025, 3:27am UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/6 "2025-12-11T03:27:33Z")

</div>

Thanks for pointing that out.

I had intended to have folks that clicked “no, and I never have” to skip most of the Survey (the stuff that requires Haskell knowledge). It is now fixed (it only skipped some, not sure what happened).

---

<div class="post-metadata">

**Author:** ![michaelwebb76](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/michaelwebb76/32/2623_2.png) [@michaelwebb76](https://discourse.haskell.org/u/michaelwebb76)\
**Post date:** [December 11, 2025, 11:26am UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/7 "2025-12-11T11:26:49Z")

</div>

There were also quite a few questions you were forced to fill out despite your previous answers, such as “how long did you use Haskell for before giving up” (sorry I don’t have the exact wording in front of me) despite answering “I still actively use Haskell” in a previous question. I worry that forcing people to answer such questions is going to lead to a fair chunk of junk answers, so you’ll need to be careful in your analysis of the results.

---

<div class="post-metadata">

**Author:** ![jaror](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jaror/32/3271_2.png) [@jaror](https://discourse.haskell.org/u/jaror)\
**Post date:** [December 11, 2025, 2:17pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/8 "2025-12-11T14:17:01Z")

</div>

I didn’t encounter any required questions when I took the survey. I just skipped some that I didn’t feel were applicable.

---

<div class="post-metadata">

**Author:** ![GunpowderGuy](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/gunpowderguy/32/4164_2.png) [@GunpowderGuy](https://discourse.haskell.org/u/GunpowderGuy)\
**Post date:** [December 11, 2025, 3:10pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/9 "2025-12-11T15:10:26Z")

</div>

I would have liked there to be an option to write why people that stopped using haskell, stopped doing so

---

<div class="post-metadata">

**Author:** ![haroldcarr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/haroldcarr/32/4173_2.png) [@haroldcarr](https://discourse.haskell.org/u/haroldcarr)\
**Post date:** [December 11, 2025, 3:32pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/10 "2025-12-11T15:32:58Z")

</div>

Likewise. We (a two-person research team) stopped using Haskell because all the cryptography and zero-knowledge proof libraries we wanted to use are written in Rust. Initially we did FFI to those libraries, but it became too much of a PITA, so we just switched to Rust ourselves.

---

<div class="post-metadata">

**Author:** ![jmct](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/jmct/32/3806_2.png) [@jmct](https://discourse.haskell.org/u/jmct)\
**Post date:** [January 12, 2026, 3:57pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/11 "2026-01-12T15:57:20Z")

</div>

Hey all,

We will be closing the survey on Wednesday, Jan 14th. We will then write up the results and analysis.

Thanks everyone who has taken the survey so far!

-Jose

---

<div class="post-metadata">

**Author:** ![ApothecaLabs](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/apothecalabs/32/3215_2.png) [@ApothecaLabs](https://discourse.haskell.org/u/ApothecaLabs)\
**Post date:** [January 12, 2026, 9:03pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/12 "2026-01-12T21:03:39Z")

</div>

> [@haroldcarr](#):
>
> We (a two-person research team) stopped using Haskell because all the cryptography and zero-knowledge proof libraries we wanted to use are written in Rust.

I too am quite concerned about this particular situation (both the lack of libraries, and the loss of a team of users), and am specifically working to rectify it, though the road is long and the journey hard.

One of my goals this years is to establish a library for proper cryptographic abstractions, not _just_ bindings to a foreign library, but that requires proper low-level memory support, which requires fixing or patching over legacy issues (_stares at `Num`, `Ord`, and `Bits` why is it always you three causing problems?_). As I said - a hard road.

You can imagine, this also flavored my response to the survey.

---

<div class="post-metadata">

**Author:** ![haroldcarr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/haroldcarr/32/4173_2.png) [@haroldcarr](https://discourse.haskell.org/u/haroldcarr)\
**Post date:** [January 12, 2026, 11:45pm UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/13 "2026-01-12T23:45:07Z")

</div>

I wish you well on that road. Kind of too late for us on this project — but maybe a future one. I would also like to see a tool that would let one point at a Rust codebase, discover all the `extern “C”` functions and automatically build FFI wrappers for them and all the data types used as input or output of those functions. The data type part is tricky because one has to decide which data are OK to serialize back and forth and which ones should be a pointer (that needs to be freed in Rust). Bits-n-pieces of that infrastructure exists - but I (dreaming) want a “push button” tool!

---

<div class="post-metadata">

**Author:** ![greyMonads](https://avatars.discourse-cdn.com/v4/letter/g/f08c70/32.png) [@greyMonads](https://discourse.haskell.org/u/greyMonads)\
**Post date:** [January 14, 2026, 7:19am UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/14 "2026-01-14T07:19:52Z")

</div>

As a relatively newer user, I’d love to read a blog post about this: history, possible approach, potential problems, etc. (not so subtle request ha).

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [February 24, 2026, 8:41am UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/15 "2026-02-24T08:41:03Z")

</div>

> [@jmct](#):
>
> We will then write up the results and analysis.

So when? (and some more words to fill the nonsensical discourse minimum character requirement)

---

<div class="post-metadata">

**Author:** ![tomjaguarpaw](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/tomjaguarpaw/32/1230_2.png) [@tomjaguarpaw](https://discourse.haskell.org/u/tomjaguarpaw)\
**Post date:** [March 31, 2026, 10:06am UTC](https://discourse.haskell.org/t/state-of-haskell-2025/13390/16 "2026-03-31T10:06:56Z")

</div>

> [@hasufell](#):
>
> > [@jmct](#):
> >
> > We will then write up the results and analysis.
> 
> So when?

For posterity, the results where posted here:

> [@State of Haskell 2025 results](https://discourse.haskell.org/t/state-of-haskell-2025-results/13755):
>
> At the end of 2025, the Haskell Foundation re-started the Haskell Yearly Survey. I’d like to thank Taylor Fausak for being supportive of our effort in conducting these surveys. The last survey was conducted in 2022 and the post discussing those results is here: [https://taylor.fausak.me/2022/11/18/haskell-survey-results/](https://taylor.fausak.me/2022/11/18/haskell-survey-results/) The full results are available here: [State of Haskell 2025 Raw Results - Google Drive](https://docs.google.com/spreadsheets/d/e/2PACX-1vSnlNIbbiAGv8ERkYJq7vGt391kM7XsHhllKGmTt9PPZOLnEVtdlSznf6A9vI5wJJNRcfH6HgLvgRLE/pubhtml). If you’d like a CSV to play around with, that has been made available as well: [2025 Surv…](https://docs.google.com/spreadsheets/d/e/2PACX-1vSnlNIbbiAGv8ERkYJq7vGt391kM7XsHhllKGmTt9PPZOLnEVtdlSznf6A9vI5wJJNRcfH6HgLvgRLE/pub?output=csv)

> [@hasufell](#):
>
> (and some more words to fill the nonsensical discourse minimum character requirement)

I just add horizontal rules until it’s happy: `----`

* * *

* * *

* * *

* * *
