A Reasonable Approximation

Latest posts

The Elm community is not "very active"

I sometimes see people describe the Elm community as "very active". For example:

Is this true? Let's get some statistics, including historical ones, and see what comes up.

I think all this data was collected on October 28 2024. I'm splitting things out by year, so we can roughly extrapolate to the end of 2024 by multiplying numbers by 1.2.

Subreddit

I could export 951 posts from reddit. (That's a weird number; I suspect it means there were 49 posts I couldn't see.) The oldest were in December 2019, which means I have about 4⅚ years of data. In a given calendar year, I can easily count: how many posts were there? And how many comments were there, on posts made in that calendar year? (So a comment in January 2022 on a post from December 2021, would be counted for 2021.)

Year Posts Comments
2020 296 2156
2021 236 1339
2022 215 1074
2023 132 639
2024 (extrapolated) 76 505
2024 (raw) 63 421

By either measure, 2024 has about a quarter of 2020 activity levels.

Discourse

I got a list of every topic on the discourse, with its creation date, "last updated" date (probably date of last reply in most cases), number of replies and number of views. The first post was in November 2017.

Year Posts (C) Replies (C) Views (C) Posts (U) Replies (U) Views (U)
2017 46 366 90830 29 151 46081
2018 819 5273 1634539 817 5284 1617704
2019 685 4437 1113453 695 4488 1137001
2020 610 4104 882214 613 4201 908361
2021 482 3502 603199 485 3528 608075
2022 332 1698 336095 329 1548 319918
2023 294 1544 221806 298 1711 243834
2024 (extrapolated) 224 1422 115503 227 1438 116898
2024 (raw) 187 1185 96253 189 1198 97415

The "C" columns count according to a post's creation date, and the "U" columns count by "last updated" date.

So posts and replies have fallen to about 35% of 2020 levels. Views have fallen to about 15%.

Package releases

For every package listed on the repository, I got the release dates of all its versions.1 So we can also ask how frequently packages are getting released, and we can break it up into initial/major/minor/patch updates.

My understanding is: if a package has any version compatible with 0.19, then every version of that package is listed, including ones not compatible with 0.19. If not it's not listed at all. So numbers before 2019 are suspect (0.19 was released in August 2018).

Year Total Initial Major Minor Patch
2014 1 1 0 0 0
2015 130 24 28 31 47
2016 666 102 137 145 282
2017 852 170 147 208 327
2018 1897 320 432 337 808
2019 1846 343 321 373 809
2020 1669 288 343 366 672
2021 1703 225 385 359 734
2022 1235 175 277 289 494
2023 1016 155 223 255 383
2024 (extrapolated) 866 137 167 204 359
2024 (raw) 722 114 139 170 299

Package releases have declined by about half since 2020. Initial (0.48x) and major (0.49x) releases have gone down slightly faster than minor (0.56x) and patch (0.53x) ones, which might mean something or might just be noise.

Where else should we look?

The official community page gives a few places someone might try to get started. The discourse and subreddit are included. Looking at the others:

For things not linked from there:

My take

I do not think the Elm community is "very active" by most reasonable standards. For example:

If you think you have a reasonable standard by which the Elm community counts as "very active", by all means say so.3

I think the idea that the Elm community is "more active than ever" is blatantly false. (That line was added in January 2022, at which point it might have been defensible. But it hasn't been removed in almost three years of shrinking, while the surrounding text has been edited multiple times.)

To be clear, none of this is intended to reflect on Elm as a language, or on the quality of its community, or anything else. I do have other frustrations, which I may or may not air at some point. But here I just intend to address the question: is it reasonable to describe the Elm community as "very active"?

(I do get the vibe that the Elm community could be reasonably described as "passionate", and that that can somewhat make up for a lack of activity. But it's not the same thing.)

  1. Irrelevant aside, but I think this and the previous section were the first and second times I tried to get an LLM to write code for me. I used Claude. It took some back and forth, due to a combination of bugs, unclear specifications, and me occasionally changing my mind. But overall it worked very well.

    In particular, for a given package, say elm/browser, how do you get the release dates of its versions? I can't see that info on the website, but Claude found a releases.json file that has it. Left to myself, I don't know if I'd have found that file. it's plausible I would have just ended up crawling github. 

  2. I've also seen 2k for both 2019 and 2020, so these numbers probably aren't very reliable. 

  3. But I'm not very impressed by the "similar projects" thing from before. ("It's very active compared to similar projects. Tight focus, feature complete. People tend to compare it to dissimilar projects.") Like, I might choose which of Elm, Haskell or Javascript I should learn, or start a project in or something. And then I might compare the activity levels of their communities, because that's likely to be decision-relevant for me. If you don't think I should do that, why not? What other projects should I compare Elm's community to instead, and why? What useful information am I hoping to learn? 

Posted on 02 November 2024

Comments elsewhere: /r/elm