OT: I wish more funding & development effort went into BEAM itself on making it more performant.
Note: I’m not talking concurrency. I’m talking pure raw performance.
Seems like it’s been a one person show for over a decade on making it faster.
ch4s3•Jul 18, 2026
It’s pretty hard to make things like math faster for real world use cases in a bytecode interpreter.
dmpk2k•Jul 18, 2026
It's a JIT nowadays. Admittedly an extremely simple one, to minimize compile times and maintenance overhead.
You can get substantial performance improvements by using guards though. See what Wings3D does with is_float() everywhere in hot numeric-heavy code.
jimbokun•Jul 18, 2026
Java and Javascript run times do really well at that.
dnautics•Jul 18, 2026
i ran a quick experiment where instead of doing boxing the way its done in the beam currently, i used a different boxing (NaN strategy and there was a 10x speedup
josevalim•Jul 18, 2026
There are multiple people working on the JIT within the last 5-6 years. The WhatsApp folks also contribute meaningfully.
I suspect once the Erlang/OTP team squeezes all performance in the JIT, they will look into optimizing across modules, which will probably open up many new possibilities, but it requires rethinking some runtime primitives.
alberth•Jul 18, 2026
Hi Jose
You’re an inspiration for many. Thank you.
I’m curious to know what your top 3 hopes for BEAM itself are for the coming years (in any area that you think would make it better).
josevalim•Jul 18, 2026
Thanks for the kind words and the nice question!
1. The cross module optimizations I mentioned above
2. Have a WASM target for the runtime itself
3. Make it easier to ship single file executables with the whole VM
But they are really “nice-to-have”s. I have been a happy user for 15+ years!
ashton314•Jul 18, 2026
A few years ago, I was working on an interpreter implemented in elixir for a domain specific language. It was a pretty basic metacircular interpreter. It relied heavily on function signature dispatch. When I tried breaking up the massive “interpret” function across modules, performance tanked. I got it all back by using some macro shenanigans, but understandably the team did not like this.
Knowing what I know now, I would’ve tried to push for a threaded interpreter to get rid of the runtime overhead of dispatching altogether. I don’t know if they’ve changed the architecture of that module much since I left :-)
jeanlucas•Jul 18, 2026
Nice! The showcase of companies is really nice
losvedir•Jul 18, 2026
To me, it seems one of the killer use cases for Elixir (/Erlang) is its distributed cluster capability. Does anyone have experience with that or case reports to share? I've used Elixir quite a bit professionally, but mostly as just a "nicer Rails" with horizontally scalable but otherwise independent Phoenix apps in your traditional Kubernetes setup, which seems to me to kind of missing out on its main purpose.
davidw•Jul 18, 2026
Elixir/Erlang works very well in a semi-embedded environment where you need a higher level command and control component that behaves in a deterministic way and is pretty robust.
It was a lot of fun and there were some very interesting challenges for everyone involved.
org3•Jul 18, 2026
I've worked a little bit with distributed Elixir using `Horde.DynamicSupervisor` on Kubernetes. Apparently there's other options like 'swarm' and DynamicSupervisor [1]. It'd be great for clear analysis of the benefits these kinds of abstractions bring vs non-BEAM approaches.
Also interested in hearing about this! I built an elixir k8s control plane recently and kept expecting to reach for it but it never really made sense when it was controlling golang daemonsets.
My usecase is less independent though, that control plane is orchestrating like Lambda/fly.io style workloads on top of firecracker:
https://jomcgi.dev/ember
toast0•Jul 18, 2026
It's been a while, but I used to work at WhatsApp and we used Erlang distribution heavily. I understand the clusters have gotten really huge since I left.
It's super handy. There's no security barrier between nodes. It's a headache if your network is unreliable.
For a chat app, messaging someone becomes a series of steps:
a) look up if they're online (send a message to the presence database service)
b) if you got a process id back, that's the process connected to the user, so send it the message. The process could be on the same machine or not, but the sending api is the same. This is the special part: few other environments make arbitrary messaging between processes/threads/tasks/whathaveyou so pervasive.
c) if you don't get a process id back, the user is offline; send the message to the offline database.
ModernMech•Jul 18, 2026
Ugh, it looks like all the other LLM generated language webpages. It's formulaic at this point. I'd hoped a language like Elixir would be able to hire some people to do it.
acedTrex•Jul 18, 2026
Its pretty snappy/responsive for me at least so thats good. Normally LLM slop sites are pretty at first but sluggish as hell. So some level of skill went into this one.
josevalim•Jul 18, 2026
The Software Mansion folks designed it and we actually iterated on the designs on Figma, having discussions as humans, and exploring alternatives. They were lovely to work with.
I also worked on all of the copy myself, collecting feedback from core maintainers as I went. The new tagline was a suggestion from Theo which we iterated on. I did use LLMs as an assistant, but I did not ask it to generate the content.
Might as well use LLMs for the whole thing next time, since we will be accused of doing so anyway! :D
ModernMech•Jul 18, 2026
Shame then that despite all that, they landed on the same design used by every "I asked an LLM to make me a language and a website this weekend here's what it spit out" project. I mean, I'm not saying it looks bad or is a bad result. Just it's very similar to other things that have put in much less effort.
pests•Jul 18, 2026
"Human produces output similar to a machine trained on all human output"
josevalim•Jul 18, 2026
It is funny (and perhaps a bit depressing) that LLMs were trained on our content and now, if we generate a similar structure as before, with the usual love and care, we will be criticized by it. Even when it does not "look bad or is a bad result".
chickensong•Jul 18, 2026
It is indeed funny/sad to see the rancor created by our own inputs. You can't escape the AI police on HN right now. There will always be someone leaving a shallow complaint or accusation about the look or language, regardless of reality. Obviously slop exists, but the culture war has polarized some people enough that they're blinded, and anything resembling LLM output is a trigger. God help you if you use useful language like "load-bearing", because the police are definitely on their way.
FWIW, I don't think the site fits the LLM template. The scroll through the use cases is particularly nice.
And thanks for Elixir. I love it, and the agent + tidewave loop is a joy to use!
ia•Jul 18, 2026
I’m tried to understand the motivation for this salty comment and the parent comment. I failed. Then I opened the user’s comment history and most of their comments are like this. ModernMech, please, keep in mind we’re all doing our best. Being passive aggressive on the internet is social pollution. No offense intended, I’m just hoping you reflect a bit next time before you post.
ModernMech•Jul 18, 2026
My motivation is I don't like the redesign and I wanted to say so. It looks like a lot of other sites out there. I'm sure that in the construction of the website got a lot of positive feedback along the way that caused such a result, but my feedback is that it looks like it could have been generated by an LLM. I didn't even say it looks bad, sorry if that's too harsh for the internet. You don't have to go on a quest to figure out my damage, it's not that deep.
ch4s3•Jul 18, 2026
Ignore the haters, it looks very good.
Pay08•Jul 18, 2026
This is how every second website has looked for the past 10 years.
arikrahman•Jul 18, 2026
I prefer https://jank-lang.org/ new re-design, and the approach of a more step-wise refinement.
__float•Jul 18, 2026
How is this language related to Elixir? Or are you just commenting that another language has a website?
arikrahman•Jul 18, 2026
They had a recent re-design last week.
Starlevel004•Jul 18, 2026
Why does it have like 0.1s animations?
josevalim•Jul 18, 2026
Can you clarify which ones? We will be glad to improve them (or feel free to send a PR).
binaryturtle•Jul 18, 2026
Site doesn't work for me (older Firefox). Looks like there's no CSS and some Javascript error (probably makes it bail out loading the CSS?)
pwg•Jul 18, 2026
It also does not load if Javascript is blocked.
sph•Jul 18, 2026
No mention of AI and LLM in the front page. Life is good.
Onavo•Jul 18, 2026
But I bet the landing page was made with AI assistance.
reliablereason•Jul 18, 2026
It certainly looks like a Claude design to some extent; not all they way however.
bbg2401•Jul 18, 2026
It feels less sloppy than most obviously AI generated landing pages.
The only sloppy aspects that stand out to me are the needless animations/transitions.
>I also worked on all of the copy myself, collecting feedback from core maintainers as I went. The new tagline was a suggestion from Theo which we iterated on. I did use LLMs as an assistant, but I did not ask it to generate the content.
>Might as well use LLMs for the whole thing next time, since we will be accused of doing so anyway! :D
eikenberry•Jul 18, 2026
They have a Machine Learning section on the front page. Just have to scroll down a bit, under the "Use Elixir for" section.
nozzlegear•Jul 18, 2026
I don't think Machine Learning falls under what most people consider "AI" and "LLM" these days, even if they're technically intertwined.
Jtsummers•Jul 18, 2026
How is LLM (a particular area of machine learning) not machine learning? Have people already forgotten the basis for LLMs?
dasil003•Jul 18, 2026
The majority of people who use LLMs today never even heard of ML though a non-trivial percentage have heard that modern AI is powered by LLM. You can’t forget what you never knew. Such is the evolution of language when a formerly niche technical concept crosses the chasm to mass awareness.
cygx•Jul 18, 2026
I'd argue there's a qualitative difference between using machine learning for specific data analysis tasks, and using a generic agentic AI system controlled by some corporate entity. The association of the term 'AI' with the latter is increasing.
Jtsummers•Jul 18, 2026
Yes, but nozzlegear claims that even technically "intertwined" (presumably they mean "inclined") people don't know the connection between LLMs and the broader ML work that encompasses it. That's a pretty big claim, and would be rather shocking if true. ML and deep learning were heavily invested in and discussed through the 2010s (and earlier, but the hardware developments at the end of the 2000s enabled the ML boom of the 2010s), is our industry really so memory constrained (I know there's a shortage now, but still) that people don't know the connection between machine learning and LLMs?
nozzlegear•Jul 18, 2026
> but nozzlegear claims that even technically "intertwined" (presumably they mean "inclined") people
Sorry, I meant the subjects (LLMs, ML, AI) are intertwined, not the people. But what I was getting at with my comment is that (IMO) most people see them as distinct things, even on HN where most know that LLMs use ML. As an analogy, it's like physics versus mathematics: separate subjects in most everyone's mind, and even separate academic departments, but physics is still math.
phoghed•Jul 18, 2026
Thankfully you were here to make sure we didn’t forget about it for even one post
asa400•Jul 18, 2026
Looks great! There are some style quirks with cutoff elements in Firefox 152.0.6: https://imgur.com/a/OtnESi7
phplovesong•Jul 18, 2026
I guess elixir is a nice lang for the niche of erlang. But its dynamic (the "type system" is really meh at best) its not suited for real world use.
If i go full dynamic, why not use pure erlang instead?
ch4s3•Jul 18, 2026
Have you tried it since the new type system rolled out?
pluralmonad•Jul 18, 2026
Maybe try and build something and see for yourself? Saying elixir is not fit for real world use shows how little experience with it you have.
dnautics•Jul 18, 2026
> not suited for real world use.
I hope you don't use discord or rely on pagerduty.
loloquwowndueo•Jul 18, 2026
There’s no obvious way to switch to normal (aka “light”) mode. Dark mode is very difficult for some people (me included) to read.
If you must default to dark mode that’s your choice but I’d love to see a light mode toggle somewhere prominent.
madibo3156•Jul 18, 2026
Yeah. You'll notice that there's a mix of light and dark. Some segments are light-on-dark, then it switches to dark-on-light. It appears to me like a "design trend" that's at odds with accessibility. https://www.apple.com does this too.
moomoo11•Jul 18, 2026
i along with 99% of people don’t mind it
recursivegirth•Jul 18, 2026
This, plus there is research that suggests dark mode does not help with retention of information.[1] I have started to slowly transition back to light mode for most of my work applications. (Email, Coding, etc.)
Dark mode feels correct, but it is hostile. Now blue light on the other hand... you should get filters for your monitor/glasses.
Ideally websites just respect the existing media queries so you don't even have to switch!
zuzululu•Jul 18, 2026
I appreciate Elixir but the problem is the job market/talent pool is tiny compared to other existing languages.
If you buy into the Elixir stack then you now have constraint you could've avoided entirely by avoiding it.
Also for devs there seems to be no premium offered for this talent pool scarcity. With LLMs I think language-specialists are redundant in a large scheme of things. ex) at one of my current remote jobs, I shipped an entire telecom infrastructure with barely knowing Elixir and we brought on contractors to audit the code and they found no issues.
toast0•Jul 18, 2026
> appreciate Elixir but the problem is the job market/talent pool is tiny compared to other existing languages.
> I shipped an entire telecom infrastructure with barely knowing Elixir and we brought on contractors to audit the code and they found no issues.
Erlang/Elixir experience is rare, because it's not widely used and the teams are small. It's not worth trying to hire for it. Hire for people who can figure it out on the go (amd are willing to give it a try).
You did it, hire other people who seem likely to be able to.
zuzululu•Jul 18, 2026
as a SWE this is not a good sign. it means the job market is slowly transitioning into temp work like economics. The value I got out of the Elixir contractors was immense since it not only proved that we can get a huge bulk of the work done without specialists and use them on demand for audit for a few months before AI this would've been not been possible.
normal market dynamics suggest scarcity demand premiums but this is not the case with software developers it seems.
dnautics•Jul 18, 2026
i hired a biologist (for my pharma startup) and she produced feature ideas for our internal stack and was guiding claude to write idiomatic code with feedback from my reviews with no coding experience. realistically if you want to start an elixir company today you need one consciencious senior that likes code review and any number of juniors with minimal competency and sufficient curiosity.
stanmancan•Jul 18, 2026
If you vibe coded an entire telecom infrastructure and an external audit found no issues then it sounds like you might need to find better auditors.
zuzululu•Jul 18, 2026
both contracts have over 10 years of experience with Elixir and one of them have written a widely used library. I think you are tad out of touch with the job market and with where agentic coding is right now.
stanmancan•Jul 18, 2026
Possibly, but I’m a senior software engineer that’s been writing Elixir for the last 5 years and has been experimenting with and using AI for the last 12-18 months.
Congrats on being one of the mythical developers that manages to get AI to write perfect code consistently!
zuzululu•Jul 18, 2026
there's nothing mythical about it
if you treat it like any architecture then there's all sorts of techniques and knobs to produce consistent output
999900000999•Jul 18, 2026
Elixir is such an elegant language.
I'm hoping to find a reason to use it soon.
pluralmonad•Jul 18, 2026
Such a delight to use and the core team seems to always make the right decision.
dnautics•Jul 18, 2026
its been fun building a multiagent personal assistant.
Reading the Erlang ProgProgrammers book by Joe Armstrong made me a better Ruby programmer as it changed my perspective on functional programming and abstractions.
I first reached for Elixir when Ruby couldn't handle large amounts of websocket messages. It really shines in high-concurrency contexts. I also love Phoenix LiveView and have a couple of side-projects running on it.
shevy-java•Jul 18, 2026
I think most will agree that it improved on Erlang.
For me as a long-term ruby user, though, elixir is
not quite as elegant as it could or should have been.
Even simple things such as "defmodule Xyz do" feels
weird to me.
CyberDildonics•Jul 18, 2026
I'm hoping to find a reason to use it soon.
Do you have a program that doesn't need to run fast?
hybridcivic182•Jul 18, 2026
José Valim & team have made such an incredible language and ecosystem. thank you for all the faithful work, especially the run up to 1.20 over this past year
swingboy•Jul 18, 2026
On the first syntax example: there’s something funny to me about using three pipe operator and four different functions to turn “hello world” into “Hello World”.
josevalim•Jul 18, 2026
That's a good point. It is meant to be an introductory example but I will see if I can come up with something else! Thanks!
EDIT: shipped!
tosti•Jul 18, 2026
I followed the links to docs and getting started, but it says page not found.
It should be fixed soon (deploying now). Thank you!!!
jolux•Jul 18, 2026
Love the new site!
Minor typo in the Erlang card:
“Elixir also excels at IoT, distributed systems, and everything the Erlang is renowned for”
should probably be “everything the Erlang VM is known for” or “everything Erlang is known for.”
josevalim•Jul 18, 2026
Boom! Fixed, thanks!
aejm•Jul 18, 2026
I think this version is an improvement over the old one! In particular how it highlights the packages in the ecosystem better.
shevy-java•Jul 18, 2026
Looks nice. But it would be more important
to clean up elixir itself. So many things
are unnecessary syntax-wise. At the least
elixir made working with erlang easier, so
they solved that part.
stanmancan•Jul 18, 2026
Such as?
SoftTalker•Jul 18, 2026
I don't really have large monitors by today's standards, and the site looks nice enough but fully half of what I'm looking at is blank space. I don't remember what the old site looked like so don't know if that's really a change.
23 Comments
Hoping Elixir continues to thrive. It is such a great language (and such a great language for AI coding too!)
1. https://arxiv.org/pdf/2508.09101
OT: I wish more funding & development effort went into BEAM itself on making it more performant.
Note: I’m not talking concurrency. I’m talking pure raw performance.
Seems like it’s been a one person show for over a decade on making it faster.
You can get substantial performance improvements by using guards though. See what Wings3D does with is_float() everywhere in hot numeric-heavy code.
I suspect once the Erlang/OTP team squeezes all performance in the JIT, they will look into optimizing across modules, which will probably open up many new possibilities, but it requires rethinking some runtime primitives.
You’re an inspiration for many. Thank you.
I’m curious to know what your top 3 hopes for BEAM itself are for the coming years (in any area that you think would make it better).
1. The cross module optimizations I mentioned above 2. Have a WASM target for the runtime itself 3. Make it easier to ship single file executables with the whole VM
But they are really “nice-to-have”s. I have been a happy user for 15+ years!
Knowing what I know now, I would’ve tried to push for a threaded interpreter to get rid of the runtime overhead of dispatching altogether. I don’t know if they’ve changed the architecture of that module much since I left :-)
I was involved, years ago, in using Erlang on these devices: https://www.icare-world.com/us/product/icare-eidon/
It was a lot of fun and there were some very interesting challenges for everyone involved.
[1] https://www.youtube.com/watch?v=nZmDEUeHeVI
My usecase is less independent though, that control plane is orchestrating like Lambda/fly.io style workloads on top of firecracker: https://jomcgi.dev/ember
It's super handy. There's no security barrier between nodes. It's a headache if your network is unreliable.
For a chat app, messaging someone becomes a series of steps:
a) look up if they're online (send a message to the presence database service)
b) if you got a process id back, that's the process connected to the user, so send it the message. The process could be on the same machine or not, but the sending api is the same. This is the special part: few other environments make arbitrary messaging between processes/threads/tasks/whathaveyou so pervasive.
c) if you don't get a process id back, the user is offline; send the message to the offline database.
I also worked on all of the copy myself, collecting feedback from core maintainers as I went. The new tagline was a suggestion from Theo which we iterated on. I did use LLMs as an assistant, but I did not ask it to generate the content.
Might as well use LLMs for the whole thing next time, since we will be accused of doing so anyway! :D
FWIW, I don't think the site fits the LLM template. The scroll through the use cases is particularly nice.
And thanks for Elixir. I love it, and the agent + tidewave loop is a joy to use!
The only sloppy aspects that stand out to me are the needless animations/transitions.
>Might as well use LLMs for the whole thing next time, since we will be accused of doing so anyway! :D
Sorry, I meant the subjects (LLMs, ML, AI) are intertwined, not the people. But what I was getting at with my comment is that (IMO) most people see them as distinct things, even on HN where most know that LLMs use ML. As an analogy, it's like physics versus mathematics: separate subjects in most everyone's mind, and even separate academic departments, but physics is still math.
If i go full dynamic, why not use pure erlang instead?
I hope you don't use discord or rely on pagerduty.
If you must default to dark mode that’s your choice but I’d love to see a light mode toggle somewhere prominent.
Dark mode feels correct, but it is hostile. Now blue light on the other hand... you should get filters for your monitor/glasses.
[1] https://www.nngroup.com/articles/dark-mode/
If you buy into the Elixir stack then you now have constraint you could've avoided entirely by avoiding it.
Also for devs there seems to be no premium offered for this talent pool scarcity. With LLMs I think language-specialists are redundant in a large scheme of things. ex) at one of my current remote jobs, I shipped an entire telecom infrastructure with barely knowing Elixir and we brought on contractors to audit the code and they found no issues.
> I shipped an entire telecom infrastructure with barely knowing Elixir and we brought on contractors to audit the code and they found no issues.
Erlang/Elixir experience is rare, because it's not widely used and the teams are small. It's not worth trying to hire for it. Hire for people who can figure it out on the go (amd are willing to give it a try).
You did it, hire other people who seem likely to be able to.
normal market dynamics suggest scarcity demand premiums but this is not the case with software developers it seems.
Congrats on being one of the mythical developers that manages to get AI to write perfect code consistently!
if you treat it like any architecture then there's all sorts of techniques and knobs to produce consistent output
I'm hoping to find a reason to use it soon.
(wip, no guarantees, this is the engine i use)
https://github.com/ityonemo/ce_ce
I first reached for Elixir when Ruby couldn't handle large amounts of websocket messages. It really shines in high-concurrency contexts. I also love Phoenix LiveView and have a couple of side-projects running on it.
For me as a long-term ruby user, though, elixir is not quite as elegant as it could or should have been. Even simple things such as "defmodule Xyz do" feels weird to me.
Do you have a program that doesn't need to run fast?
EDIT: shipped!
The URL: https://elixir.hexdocs.pm/getting-started.html
Minor typo in the Erlang card:
“Elixir also excels at IoT, distributed systems, and everything the Erlang is renowned for”
should probably be “everything the Erlang VM is known for” or “everything Erlang is known for.”