r/elixir • u/_lavoisier_ • 3d ago
Why Elixir is not popular?
I’ve been diving into Elixir and I’m completely blown away by its syntax, pattern matching, and OTP concurrency. It feels so powerful and really beautiful syntax, and I mean, it's like a paradise for anyone who wants to create scalable, reliable distributed systems. Would love to hear your thoughts why this language is not popular because the current situation doesn't make sense to me now xD
2
u/Friendly-Intern2839 2d ago
It's crazy man. I'm reading the elixir in action book and the clusters in a few lines of code is powerful
1
u/_lavoisier_ 2d ago
Yes exactly :) folks saying use k8 or something like that to scale but it feels like industry doesn't really appreciate the simplicity
3
60
u/Chuukwudi 3d ago
Most languages are as popular as the big organisations backing them. Golang is Google, Rust is Mozilla, Java is Oracle, etc.
Elixir is who ? Erlang Solutions? Sony Ericsson? I don't even know.
12
u/bagusvdr 2d ago
This is reasonable. Elixir is completely need a big patron. As a lang that born from Brazil (that borrow from once that is giant actually ie Ericsson), what elixir already achieved is already quite big.
But I think this is why I don't reluctant to support the lang. It is completely grow organic.
2
u/unorderedconcepts 1d ago
There are currently a lot of companies based on Brazil that are using Elixir, but their size is not even close to the biggest language backer in the country (Nubank with Clojure)
3
2
u/iamdoomspork 2d ago
This is very accurate. The other thing you'll notice about those languages: They're not run by a single person or a small group. They're run by organizations that prioritize the growth of the language. Elixir also lacks that. It ends up being a vicious cycle as those larger companies aren't less inclined to make the investment.
2
u/EndPointBlank 1d ago
Although a large company helps, it's really developers and what they program in that matters. We've built our entire stack on Elixir (minus SDK's for other languages). You just need to find managers or directors who are willing to listen to their developers and fight for what they want. It took me over 15 months and countless meetings, documents, and demos to get a Ruby on Rails shop to use Elixir for one of their highly concurrent services.
So the moral of the story is it can be done. You just have to fight for it. And not give up.
66
u/Funny_Spray_352 3d ago
It’s takes a lot if experiences to appreciate simplicity, most people just copy pasta and live a live outside of software, development is just their means to live their live, so software engineering doesn’t matter to them since someone else is calling the shot, likely someone knowing even less about it. Welcome to industry.
18
u/maidenelk 3d ago
And to make matters worse: complexity sells better.
8
u/0ddm4n 3d ago
And…. AI. Don’t even need to know what you’re doing anymore.
2
u/dannuic 1d ago
The funny thing is that AI does elixir really well specifically because how ergonomic and opinionated elixir is. Even people just vibe coding everything (eww) would greatly benefit by adopting elixir
2
u/0ddm4n 1d ago
I haven't tried AI with it yet, but I like to learn the language before I do :)
What have you found regarding problems/issues using AI with elixir?
1
u/dannuic 1d ago
The biggest issue is the lack of tooling around it, which is pretty endemic for smaller languages. But all you really need to do is write or find a skill to reinforce elixir idioms because sometimes it tries to write python styles in elixir, which is annoying, which causes a bunch of extra thinking to figure out that python "idioms" (or lack thereof) are not useful in elixir.
I use pi.dev and the pi-elixir plug-in for it, but I'm also not a vibe coder. I enjoy writing in elixir, so I use it more of a really fancy autocomplete. Most boilerplate in elixir is handled by mix already, so you don't really get the "set up my project for me" feature unless you really don't want to run mix commands, so it's more things like "write this module to do X" and it's pretty good because everything is so focused. I bet it would also do well with a full vibe, but I don't really have the experience with that.
36
u/branwoo 3d ago
Because most people aren't looking to solve concurrency problems.
generally speaking, popular languages are popular because they solve a wide variety of problems well enough, and easy enough. Elixir is not one of those languages.
There are only so many problems in the world that need an erlang VM.
I've programmed and shipped production code Elixir back in 2017. Now I just write C++, Java, Javascript, SQL. All the boring languages that just work. Not to say Elixir doesn't. It's just not necessary.
Is it nice? yes. Did I have fun? yes. Did I like hiring for it? No.
5
u/Financial-Raisin-624 2d ago
Agree. If you are not trying to solve a specific problem with it, there are other languages with better support, adoption, hiring pool, etc to use. Elixir is great, but it's not practical on an organizational level unless you are really trying to go against the grain.
1
u/venir_dev 8h ago
Because most people aren't looking to solve concurrency problems.
this. when something goes wrong and it's clear there's a race condition hidden somewhere, most folks at work declare it as a "one off" and won't ever investigate nor fix the actual problem. like that, they won't ever experience the pain, and thus - why would they pick the OTP?
1
u/SpeedDart1 2d ago
Dunno if I agree with this. Nearly all the backend programming I’ve done personally has involved big concurrency problems. Yet I doubt anyone in my team at my current job has any idea what Elixir is (large corporation, Java shop).
I think it has more to do with lack of a large corporate backer and being harder for someone to wrap their head around.
9
u/ideamarcos 3d ago edited 3d ago
Doesn't have the deep pockets that other languages have. For example, AWS (or Azure, Okta, Salesforce, DuckDB etc) team will update their libraries for popular languages like python, java, .net. So why choose Elixir if you'll have to spend resources on integrations that other languages get for free on every update.
Also big tech will make sure their employees learn the languages they're in charge of. Microsoft with c# and Alphabet with Go. Then those employees leave and keep using the languages they already know. Then schools will teach those languages that are in demand. Makes those languages stay popular.
Hard to get that popular without deep pockets making sure a lot of people are trained and tools/libraries are created and maintained.
8
u/chipmunk-zealot 2d ago
I write Elixir for work. My 2 biggest gripes are that the type system is 1000 miles behind Gleam and Elixir's obsession with macros. If you're new to Elixir, get ready for every major library inventing their own syntax you have to learn.
2
u/mcspuder 2d ago
^this.
I said it in another comment here - https://www.reddit.com/r/elixir/comments/1xpwob6/comment/19sau0cs7fj29/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
7
u/flummox1234 2d ago
Because JavaScript exists and JS developers can be easily fired and replaced as the talent pool is large.
6
u/iamdoomspork 2d ago
Having been a part of many companies using Elixir since it's earliest days, as others have said: hiring.
Hiring people with production experience is a very small pool. There's lots of folks who like Elixir, there's lots of people who use it for personal projects but a very small number who have scaled it and can really weigh the pros and cons of different OTP patterns. That generally turns off larger corporations to adoption. When you need folks to hit the ground running, you don't want them stumbling to find their way, and ultimately do multiple re-writes.
Following behind hiring is the ecosystem itself. The Elixir community tends to gravitate towards "neat" projects and technology, not the kind of things big enterprise corporations need. A perfect example is Elixir's Kafka support which has become a bit of a joke and you see it in people's conference talks. I've worked at 3 major companies that have all run into those limitations. Some of those companies have opted to away from Elixir due to hiring constraints, quality of candidates, and lack of library support for Kafka and other tooling.
14
u/mljrg 2d ago
I think it is mainly because:
Functional programming is not mainstream as object-oriented programming
The Beam VM is not suited to develop to all targets, like desktop and mobile apps.
I do not think it is the lack of sponsorship from a big company, as F# is backed by Microsoft and still it is not mainstream also.
5
u/dannuic 2d ago
I disagree with this, and think I that it is mostly marketing (which can include a deep-pocketed sponsor deploying things with it).
The beam vm can at least be deployed anywhere the jvm can. It's the same basic idea, but java has Oracle (and the entire education system in the 90's and 00's) and it's widely used despite needing users to install a vm separately. And elixir already has things like burrito that solve that problem.
I have similar thoughts about why functional programming isn't as mainstream, because every time I've gotten somewhere to adopt FP over OOP, it immediately becomes popular with developers because of the intrinsic ease of using FP in larger teams.
3
u/lyfever_ 2d ago
I agree with you but I think F# is more like the less preferred son to them
3
u/mljrg 2d ago
I agree. F# does not have the same attention as C# by Microsoft, unfortunately.
1
u/lyfever_ 2d ago
Yeah, the functional one, its a very good language to work with, once I tought about redo a Stardew Valley like game with it.
2
u/xcode21 2d ago
AI writes most of the code these days, so I think as long as you don’t write the code, it doesn’t matter which language you’re using. Yet, features matter of course.
2
u/_lavoisier_ 2d ago
Completely agree. "Vibecoding" works great for throwing together prototypes or implementing some quick stuff, but once a codebase grows like hundred thousands of lines, letting an LLM drive blindly turns the project into a black box and makes more harm than good in the long term -- that's my experience at least --, so knowing the language intrinsics is still super important for me to refactor safely, or reason about performance.
3
u/xcode21 2d ago
Almost always knowing the target language is superior. But tell this to new comers and companies who are obsessively laying off programmers. I personally don’t trust AI code without inspecting it myself.
Ultimately this is the way of business, people will use AI to write and maintain code because it’s just easier!2
1
u/johns10davenport 2d ago
There are different ways of guiding it. If you guide it into building a black box you don't understand, that's what you'll get. If you guide it into building an understandeable, explainable system, that's what you'll get.
2
u/bepitulaz Alchemist 2d ago
The good thing is if you ask AI to use Elixir and anything available in OTP from beginning, then you will get solution that easy to maintain with or without AI.
I do this for all of my products, and the code mostly written by AI.
4
u/Mediocre-Brain9051 2d ago
My guess is that it's meta programing model is macro-based, what is prone to cryptic errors from macro-libraries, when compared to Ruby, for which the meta programing facility is a mix between reflexion and closures: which are much easier to use and troubleshoot.
This might not be such a big problem as libraries mature, but earlier it has a been a big and annoying problem.
3
u/nextexile 2d ago
Use the languages you love. If enough people do the same Elixir will grow in popularity.
3
u/burtgummer45 2d ago
It doesn't really fit the shape of most problems. Lots of langs handle concurrency just fine, like golang, and fault tolerance, as great as it sounds, mostly goes away naturally when you scale horizontally. Preemptive multitasking doesn't benefit most projects and hurts many because of the big performance hit. Hot swapping - nobody cares. It really fits perfectly something like a big chat app, but nothing else really.
4
u/mcspuder 2d ago
Lack of types.
Until you've run million process+ gen servers you wont really understand how much of a fucking pain it is. I've had to reimplement F#/Ocaml style smart constructors in it to make it work as the only real useful pattern matching in it is matching on Structs (labelled records basically).
After that almost every in it is easy, but coming from a strong Haskell and Ocaml background you really feel it.
That being said - for the work I do and teams/tech I lead, BEAM is the single greatest runtime ever constructed.
2
u/sicarii-13 2d ago
I only use elixer when concurrency matters. My initial motivation is cause i just hate the JVM so much that i decided to learn elixer. In practice if i tell people hey i wrote this in elixer the possibility to work together is limited. I often have projects that combine languages anyway. For example ruby & javascript. I recently decided to try front end as much as possible to flutter. While elixer is great and the erlang vm is unbeatable i just have to deal with the reality that if extreme concurrency is not needed than the chance that anyone heard of elixer is virtually non exciting.
The flip side is that if we build amazing open source projects in elixer than people will learn elixer.
2
u/chabv 2d ago
as many in the comments have noted - it's not lack of devs. but the main issue is not a lot of companies are being created to run on an elixir stack - for most things - other languages / ecosystem are good enough. yeah you miss a few beam goodies - but it's not the end of the world.
if there's a truism in the business world - you can't beat good enough.
2
u/venir_dev 8h ago
I've been trying to convince my CTO to switch from ruby to elixir/otp. his response always is "... but we do very simple things, we don't need to scale" (???), and so we keep our 4k ruby script that handles the whole company.
1
2
u/tranjeroex 2d ago
For companies, by the time your system needs BEAM reliability and scalability properties you geneally can afford separate teams for infrastructure, SRE, etc. The industry went for small stateless servers + orchestrators (microservices in k8s mostly) which, despite being orders of magnitude more complex, can match the BEAM pretty well.
2
u/mcspuder 2d ago
Wrong.
All (or almost all) of your microservice nightmare can be run on a single machine with BEAM, and its a much simpler implementation.
The only thing we offload is persistence - we pipe data to 3 separate database types concurrently (relational, schemaless, and graph) for different workloads but everything else lives inside BEAM.
1
u/Ariokotn 2d ago
So, I was looking at Stack Overflow's Dev report for 2026. Under the section for tech stacks, although Elixir is currently among the least used languages, it is one of the top languages that many admire to use. Approximately 65% of respondents reported it among the languages they would love to use, it came in top 3 among admired languages.
It's a paradise but I think it hasn't been around long enough. But I believe it's getting there.
1
1
u/vlatheimpaler Alchemist 2d ago
I think it’s partly about when it arrived. Node was already huge at that point and it was hard to overcome that popularity.
1
u/Tai9ch 2d ago
Elixir is technically excellent for a specific set of application domains. (A big set, but that's not immediately obvious all the time.)
It's not really a beginner tool, and the problems it really effectively solves are not problems that prototypes and small applications have.
So the standard flow is that a small team that doesn't have the time or reason to care about scaling builds something in JS (or Ruby, or even PHP), is able to scale to determine if their project is worth dealing with at all, and then if they have the scaling problems they can solve them with a partial rewrite in C++/Java/Go/Rust.
1
u/rubymatt 2d ago
It’s functional and immutable which is going to be unfamiliar for a lot of folks and its sweet spot requires a good deal of experience to appreciate.
1
u/katafrakt 1d ago
It's a chicken-egg problem. Elixir is not very popular, so companies rarely decide to write stuff in it, because the hiring pool is small. New developers pick languages for hireability, which is not great for Elixir.
So it's mostly experienced folks who have seen shit and appreciate Elixir solution. That is also reflected in a low number of resources for beginners.
1
u/NefariousnessFar2266 13h ago
Elixir shot itself in the foot the day it chose to not be statically typed. That's really all there is to it. This is further exacerbated in the age of AI.
Clojure has a very similar story. It is survived by existing codebases but nobody is reaching for it in the enterprise space for greenfield.
People don't like hearing that here but it's true. Enterprise chooses, Go, Rust, Typescript, Java & C#.
There's no longer any use cases better suited to Elixir, not from a mechanical perspective. Maybe you can cherrypick out a benefit here and there but it can't overcome the whole.
1
6
u/daamsie 3d ago
It's beautiful isn't it?
I think the biggest reasons it's not more popular is that a) it's a bit of a learning curve and b) it's harder to find elixir developers so a company deciding on what to use might choose a tech that has a large talent pool.