Discover more from Derw
Whatever happened to Elm, anyway?
I see this question pop up quite frequently in lots of different arenas - folks are curious as to what happened to Elm. As a former community member of Elm, I thought I'd act as a historian here and provide a write up covering the big pieces I see. Everything in this post is public already, I'm just putting it together in one place - and will not touch on anything personal to anyone involved. The interesting parts are not about personal matters - but about the natural to and fro of a niche technology.
First, let's talk about the community size today. There's several different ways of measuring community size - if we look at Slack, there's about ~23,000 members. I'd say during the peak of Elm activity, there were closer to ~15,000. That's quite a big difference - which highlights to me that the audience continues to grow. If we look at the most popular stories about Elm, the majority of them were posted 5 or more years ago. The Elm compiler has ~7,000 stars on Github. If we look at npm, which is one of the ways of installing Elm, we see that the average over the last year has been about ~30,000 downloads. Note that this is no longer the recommended way of installing Elm, so these stats are a bit off.
But these kind of numbers don't show the full truth. Github stars are not an optimal way of measuring engagement - merely a way for developers to show interest in a particular topic. npm downloads are also misleading - especially in a world where there are CI instances doing fresh reproducible builds. A better measure might be jobs - or Google searches. There doesn't seem to a simple way of measuring total jobs posted for Elm across the internet, but I can say anecdotally that while Elm positions are rarer on HackerNews than they once were, there are still some about.
The graph below is from the last 5 years for the search term "Elm". Note that in the graph below, while there does appear to be a small downward trend, the interest remains about the same as ever with some small peaks appearing here and there.
For a niche language, a lot of interest and growth is done when people write blog posts - either stating a controversial opinion about the technology, or something like a release update. Mastering the blog post traffic is an important factor to the growth of niche products. So perhaps if there is a noticeable decrease in traffic, it can simply be that fewer people are writing about it. Of course, fewer people writing about it might also indicate that fewer people are engaged or using the tech in question.
Additionally, many of the core team are now working on new languages - Roc being the first, by rtfeldman, then Derw by myself, and finally Gren by robinheghan. Roc is quite different to Elm, but both Derw and Gren can be considered forks of Elm. Forks like this are often healthy - a demonstration of a compelling use case even when the implementation doesn't match the requirements of community members.
We can't mention other languages without talking about some of the successful languages in the same space as Elm: Reason, Purescript, Rescript, F#. Interestingly, from what I've observed, these languages also have lost some momentum. Some don't even exist in the form they originally existed in. It's interesting that I haven't see as many "What every happened to Purescript?" posts as I have for Elm - and when I have seen them, it's often on a thread about Elm. That might be because PureScript and friends weren’t as popular as Elm, but I’m not sure.
Overall, I think a lot of things have contributed to "whatever happened to Elm". Smaller audience since, fewer updates driving growth, alternative options getting stronger. I don't think Elm is vanishing - nor that it will go anywhere overnight. The community is still there, it's just not as active as it once was. For those who are after something newer than Elm with active development, check out Derw!
There are many types of users when it comes to niche technology adoption. Consider the following user groups:
Users who aren’t interested in any part of the language
Users who are interested in some part of the language, but not the whole thing
Users who find the missing parts a deal breaker
Users who are fine with the missing parts
Users who are interested in the whole language
which then has overlap with:
i) Users who have their needs met by technologies they already use
ii) Users who have their needs met but are curious in alternatives
iii) Users who don’t have their needs met
This post mostly was concerned with organic growth of early adopters, i.e 2b, 3 and ii, iii. But the other user groups have a lot to be said for too.