Rendered at 09:06:26 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
hybridcivic182 15 hours ago [-]
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
listic 5 hours ago [-]
I heard from a fan of Erlang that Elixir was made by people who don't really understand Erlang who reworked it/BEAM to be in the style of Ruby; that made it popular even though it's an abomination. What do you think?
atonse 5 hours ago [-]
A “fan” of erlang definitely gives me vibes if the 3-4 people at conferences who used to debate about Erlang and Haskell and all these things in very academic ways and enjoyed it.
And that’s awesome. We need people like that. But the vast majority of people want to get stuff done, and I have always admired that Jose Valim seems to be one of those people that just “gets” the mix of good technology with its PRACTICAL use rather than just debating programming languages endlessly.
Without elixir, outside of a handful of companies implementing it in their core systems, erlang probably would’ve mostly remained in the domain of the same guys at conferences that passionately debated tabs vs spaces or BDD vs TDD. In fact, I think that’s exactly where Haskell is. I barely hear about it, just like I used to barely hear about erlang.
The rest of us that focus on what we’re building with the technology or the dev UX, etc, would’ve stuck to ruby and other things, if not for elixir.
I say this as someone who has been writing elixir full time since early 2016 and absolutely love the beam. And I’ve yet to edit my first erlang file. It just hasn’t mattered in most of my real world use.
cultofmetatron 23 minutes ago [-]
elixir also has hygenic macros ala scheme. it also easier to write and read day to day compared to erlang. elixir also made strings more manageable.
they made a bunch of tangible improvements
radialstub 3 hours ago [-]
Joe Armstrong, one of the creators of erlang: "Dave loves Elixir, I think it's pretty cool, I think we're going to have fun together."
vendiddy 5 hours ago [-]
I don't think this is true.
The history of Elixir has its roots in Jose learning Erlang, loving the properties BEAM, but wanting a different language.
All of the principles of the BEAM still exist in Elixir. And a lot of the Elixir semantics come from Erlang, precisely because Jose studied Erlang and the BEAM.
asa400 4 hours ago [-]
It's nonsense. The people who made Elixir understand Erlang and the BEAM as well as anyone on earth. Elixir and Erlang have different syntax but aren't even that semantically different. Contrast this with say, Java and Clojure. Clojure is significantly different than Java both in terms of what idiomatic code is, as well as how the average developer understands and uses their tools day-to-day. (Obviously they both run on the same VM, the JVM, which is why this comparison works.)
Elixir has some semantic "userspace"-level differences from Erlang (Elixir has protocols, macros, defaults to strings as binaries rather than strings as charlists, among other things) but they are much more similar than they are different. Both are on BEAM, both expression-based languages, both use processes for concurrency, have immutable data, use pattern matching for control flow, rely heavily on OTP, deploy with releases, share (or build on) the same datastructures, have the same performance characteristics, etc. If you know Elixir you pretty much already know Erlang modulo the time it takes to learn Erlang's syntax.
xanthor 4 hours ago [-]
Absurd statement. If you omit surface-level syntax, there's very little that's "in the style of Ruby" in terms of actual semantics.
bmitc 3 hours ago [-]
Elixir, the language, is still basically Erlang with some niceties. The main Ruby influences are the syntax, which I don't love but can't say I hate, macros, which Erlang doesn't have, and large web-frameworks like Phoenix.
Elixir is a wonderful language and one of my favorite languages.
> Elixir was made by people who don't really understand Erlang
And this is definitely not true.
asp_hornet 8 hours ago [-]
I picked up Elixir this year. I’m gobsmacked on what the language and BEAM offer. Such a slept on ecosystem. I’m full convert.
New site looks great.
giancarlostoro 8 hours ago [-]
One of my favorite devs I love listening to talks from is Joe Armstrong and he had a blog post where he wrote a post about Elixir, and it was mostly positive, I feel like if he wasnt building Erlang he would have just became an Elixir developer.
Erlang ran multi-billion dollar market cap telecom companies for decades. Elixir just made Erlang easier to learn, and yes they replace a lot of cluster bodges at scale.
Does rapid cross-platform deployments with single code-base ease, and with Phoenix channels is very economical =3
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.
josevalim 16 hours ago [-]
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 15 hours ago [-]
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 15 hours ago [-]
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 13 hours ago [-]
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 :-)
ch4s3 17 hours ago [-]
It’s pretty hard to make things like math faster for real world use cases in a bytecode interpreter.
dmpk2k 17 hours ago [-]
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.
travisgriggs 3 hours ago [-]
Can you elaborate why adding guards makes things faster?
quasigloam 16 minutes ago [-]
Presumably it gives the JIT more type information, parent example was specifically about one of the type-check functions you can use for guards (is_float). While running it'll use the is_float information to generate code for the float case, and bail out if the actual values fail the guards at runtime.
Other JITS like V8 will do things like speculative inlining and inserting its own type guards , but if this JIT is "Admittedly an extremely simple one" then it presumably doesn't do much of that.
dnautics 15 hours ago [-]
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
ch4s3 6 hours ago [-]
oh, I didn't recognize your username here! It's been ages since I've seen you. Hope you'll be in Chicago in September.
ch4s3 10 hours ago [-]
Is that translates to real workloads you should open a pr.
jimbokun 16 hours ago [-]
Java and Javascript run times do really well at that.
josefrichter 3 hours ago [-]
BEAM, the Elixir runtime, happens to be the perfect choice for agents and orchestration of multi-agent systems. I’ve written about it e.g. here https://josefrichter.design/blog/crowd
SoftTalker 12 hours ago [-]
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.
grahac 17 hours ago [-]
This is great! Now waiting for the forum UI update too! :)
Hoping Elixir continues to thrive. It is such a great language (and such a great language for AI coding too!)
Stromgren 16 hours ago [-]
In fact it came out as the absolute best in a comparison by Tencent (1). See table 4. It’s more than a year old though.
I waited for an great editing expert before trying elixir, that never came...
But, now with LLMs I don't have to fear a loosely typed language, I'd love to give it another go.
aeonfox 3 hours ago [-]
> loosely typed
Minor nitpick: I believe Elixir and Erlang are strongly typed languages, but for a long time they have both been dynamically typed. With v1.20, Elixir is well on its way to transitioning to a gradually static typed language, and to-date has done so almost purely through inference (except for guards which can explicitly specify type information)
nine_k 7 hours ago [-]
You can try Gleam instead (also on the front page today).
jeanlucas 17 hours ago [-]
Nice! The showcase of companies is really nice
allanmacgregor 17 hours ago [-]
Looks pretty good, I like that they are highlighting the potential uses for elixir.
losvedir 17 hours ago [-]
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.
toast0 15 hours ago [-]
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.
org3 16 hours ago [-]
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
davidw 16 hours ago [-]
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.
999900000999 16 hours ago [-]
Elixir is such an elegant language.
I'm hoping to find a reason to use it soon.
andruby 13 hours ago [-]
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.
pluralmonad 15 hours ago [-]
Such a delight to use and the core team seems to always make the right decision.
dnautics 15 hours ago [-]
its been fun building a multiagent personal assistant.
Do you have a program that doesn't need to run fast?
999900000999 7 hours ago [-]
I actually experimented with using it as a backend for a multiplayer turn based game.
I eventually gave up because it’s a bit too difficult without a team.
ipnon 10 hours ago [-]
It's a good joke but most of my applications are I/O bound. So I use Elixir for performance.
jimbob45 6 hours ago [-]
Why not use Java, C#, or Swift in that case?
shevy-java 13 hours ago [-]
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.
tosti 14 hours ago [-]
I followed the links to docs and getting started, but it says page not found.
It should be fixed soon (deploying now). Thank you!!!
AloysB 9 hours ago [-]
Nice re-design.
I didn't mind the old one, but I understand that it helps adoption to keep the website shinier.
asa400 16 hours ago [-]
Looks great! There are some style quirks with cutoff elements in Firefox 152.0.6: https://imgur.com/a/OtnESi7
mattmatters 11 hours ago [-]
Thanks crew, looks great.
Love how dedicated you all are to providing clear entrypoints and being thoughtful around documentation!
khurs 11 hours ago [-]
Didn't see the old one, so don't know whats changed.
But it's blazing fast which is good to see.
aejm 14 hours ago [-]
I think this version is an improvement over the old one! In particular how it highlights the packages in the ecosystem better.
binaryturtle 16 hours ago [-]
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 15 hours ago [-]
It also does not load if Javascript is blocked.
SilentM68 5 hours ago [-]
Really cool site redesign and great language :)
The only thing I believe the language's missing is it's own dedicated IDE.
swingboy 15 hours ago [-]
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 14 hours ago [-]
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!
Can you clarify which ones? We will be glad to improve them (or feel free to send a PR).
zuzululu 16 hours ago [-]
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 15 hours ago [-]
> 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 12 hours ago [-]
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.
toast0 11 hours ago [-]
Well,
a) did you pay your Elixir contractors more than you would pay a Java contractor for similar work?
but also...
b) scarcity isn't the only factor in price. Erlang/Elixir developers are scarce, but Erlang/Elixir jobs are also scarce. You need both demand and scarcity to raise prices. Also, it doesn't cost much to turn a willing, good developer into an Erlang/Elixir developer; substitute goods reduce the impact of scarcity.
also c) if you found contractors, but not employees, maybe you weren't willing to pay enough... So maybe the price is higher than you thought?
zuzululu 8 hours ago [-]
a) for sure but my point is that we didnt need them for long
b) true
c) i think we paid them $100/hr for two months which is fair
stanmancan 12 hours ago [-]
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 12 hours ago [-]
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 12 hours ago [-]
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 11 hours ago [-]
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
stanmancan 11 hours ago [-]
Sure, but vibe coding a whole telecom platform that’s considered flawless by experts in the language is a pretty mythical feat if you ask me.
zuzululu 8 hours ago [-]
thats the beauty of BEAM
dnautics 15 hours ago [-]
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.
loloquwowndueo 16 hours ago [-]
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.
eddd-ddde 14 hours ago [-]
Ideally websites just respect the existing media queries so you don't even have to switch!
sheept 10 hours ago [-]
Designs can't be easily split into a pure light or dark mode, though. Before light/dark modes were popularized, it was common to have some parts be "dark" and other parts be "light," depending on the design (for example, would the iOS 5 game center be "dark mode"?). Elixir's website uses a mix of light and dark to delineate sections.
One consequence of software recently supporting light and dark schemes is that UI designs end up committing to all white or all dark, rather than tastefully choosing a color scheme that best frames its content in context.
madibo3156 15 hours ago [-]
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.
sheept 10 hours ago [-]
Why would it be at odds with accessibility? The text contrast is excellent in each section, and the light/dark segments clearly define the border between sections. Forced dark mode can be difficult to read for users with astigmatism, but the font size is large, and the actual documentation sites[0] do have a light/dark switch.
I have zero astigmatism and dark mode is hard to read as letters look all blurry.
moomoo11 12 hours ago [-]
i along with 99% of people don’t mind it
recursivegirth 11 hours ago [-]
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.
Dark mode is great if you want to have many distinct colors on the dark background, like syntax highlighting.
For monochrome, light background and dark text work better.
loloquwowndueo 11 hours ago [-]
99% of people? Citation needed.
jolux 14 hours ago [-]
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 13 hours ago [-]
Boom! Fixed, thanks!
sph 16 hours ago [-]
No mention of AI and LLM in the front page. Life is good.
phoghed 14 hours ago [-]
Thankfully you were here to make sure we didn’t forget about it for even one post
eikenberry 15 hours ago [-]
They have a Machine Learning section on the front page. Just have to scroll down a bit, under the "Use Elixir for" section.
nozzlegear 14 hours ago [-]
I don't think Machine Learning falls under what most people consider "AI" and "LLM" these days, even if they're technically intertwined.
Jtsummers 14 hours ago [-]
How is LLM (a particular area of machine learning) not machine learning? Have people already forgotten the basis for LLMs?
dasil003 14 hours ago [-]
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 14 hours ago [-]
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 13 hours ago [-]
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 13 hours ago [-]
> 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.
jibal 9 hours ago [-]
Your meaning was clear ... Jtsummers bizarrely misparsed it.
sheept 10 hours ago [-]
Machine learning used to be used as a buzzword alongside AI, though nowadays after the release of ChatGPT it seems they've settled on AI.
win311fwg 7 hours ago [-]
Machine learning used to be considered a subset of AI. AI encompassed any algorithms that exhibited "intelligence" (e.g. a chess engine), while machine learning was scoped to algorithms that required training (e.g. a neural network).
juped 5 hours ago [-]
In this particular case it means the Nx ecosystem, which is a solid Numpy alternative.
listic 5 hours ago [-]
I guess it is still legal?
Onavo 15 hours ago [-]
But I bet the landing page was made with AI assistance.
>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
reliablereason 15 hours ago [-]
It certainly looks like a Claude design to some extent; not all they way however.
bbg2401 15 hours ago [-]
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.
ModernMech 16 hours ago [-]
[flagged]
josevalim 16 hours ago [-]
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
ch4s3 12 hours ago [-]
Ignore the haters, it looks very good.
ModernMech 16 hours ago [-]
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.
15 hours ago [-]
ia 15 hours ago [-]
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 14 hours ago [-]
[flagged]
pests 16 hours ago [-]
"Human produces output similar to a machine trained on all human output"
josevalim 14 hours ago [-]
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 13 hours ago [-]
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!
lenkite 10 hours ago [-]
Thankfully, the webpages I make are so god-awful that no one can accuse of me of using an LLM. I use bog-standard browser controls for forms - they look fugly but its so rare to see raw/naked form controls nowadays that they look snowflake special.
Pay08 15 hours ago [-]
This is how every second website has looked for the past 10 years.
acedTrex 16 hours ago [-]
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.
phplovesong 16 hours ago [-]
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?
pluralmonad 15 hours ago [-]
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.
phplovesong 55 minutes ago [-]
I tried it, and it brings little. It got new syntax, but syntax alone is not important. I can build with erlang, so why would i pick elixir? I used erlang for almost 20 years, and never saw the idea of elixir.
Gleam on the other hand has a actual type system. It still young but i can see what it offers.
So syntax for me is totally pointless and just noise.
ch4s3 16 hours ago [-]
Have you tried it since the new type system rolled out?
phplovesong 53 minutes ago [-]
Yes. It feel unergonomic and bolted on. I rather have a pure static type system, or a full dynamic language.
dnautics 14 hours ago [-]
> not suited for real world use.
I hope you don't use discord or rely on pagerduty.
phplovesong 52 minutes ago [-]
Dont use discord, never have. It could be just as easily be built in vanilla. Its just a chat really. Nothing special.
shevy-java 13 hours ago [-]
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 12 hours ago [-]
Such as?
arikrahman 16 hours ago [-]
I prefer https://jank-lang.org/ new re-design, and the approach of a more step-wise refinement.
__float 16 hours ago [-]
How is this language related to Elixir? Or are you just commenting that another language has a website?
And that’s awesome. We need people like that. But the vast majority of people want to get stuff done, and I have always admired that Jose Valim seems to be one of those people that just “gets” the mix of good technology with its PRACTICAL use rather than just debating programming languages endlessly.
Without elixir, outside of a handful of companies implementing it in their core systems, erlang probably would’ve mostly remained in the domain of the same guys at conferences that passionately debated tabs vs spaces or BDD vs TDD. In fact, I think that’s exactly where Haskell is. I barely hear about it, just like I used to barely hear about erlang.
The rest of us that focus on what we’re building with the technology or the dev UX, etc, would’ve stuck to ruby and other things, if not for elixir.
I say this as someone who has been writing elixir full time since early 2016 and absolutely love the beam. And I’ve yet to edit my first erlang file. It just hasn’t mattered in most of my real world use.
they made a bunch of tangible improvements
The history of Elixir has its roots in Jose learning Erlang, loving the properties BEAM, but wanting a different language.
All of the principles of the BEAM still exist in Elixir. And a lot of the Elixir semantics come from Erlang, precisely because Jose studied Erlang and the BEAM.
Elixir has some semantic "userspace"-level differences from Erlang (Elixir has protocols, macros, defaults to strings as binaries rather than strings as charlists, among other things) but they are much more similar than they are different. Both are on BEAM, both expression-based languages, both use processes for concurrency, have immutable data, use pattern matching for control flow, rely heavily on OTP, deploy with releases, share (or build on) the same datastructures, have the same performance characteristics, etc. If you know Elixir you pretty much already know Erlang modulo the time it takes to learn Erlang's syntax.
Elixir is a wonderful language and one of my favorite languages.
> Elixir was made by people who don't really understand Erlang
And this is definitely not true.
New site looks great.
https://joearms.github.io/published/2013-05-31-a-week-with-e...
RIP Joe Armstrong you were brilliant.
Does rapid cross-platform deployments with single code-base ease, and with Phoenix channels is very economical =3
https://quasar.dev/introduction-to-quasar/
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.
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 :-)
You can get substantial performance improvements by using guards though. See what Wings3D does with is_float() everywhere in hot numeric-heavy code.
Other JITS like V8 will do things like speculative inlining and inserting its own type guards , but if this JIT is "Admittedly an extremely simple one" then it presumably doesn't do much of that.
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
But, now with LLMs I don't have to fear a loosely typed language, I'd love to give it another go.
Minor nitpick: I believe Elixir and Erlang are strongly typed languages, but for a long time they have both been dynamically typed. With v1.20, Elixir is well on its way to transitioning to a gradually static typed language, and to-date has done so almost purely through inference (except for guards which can explicitly specify type information)
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.
[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
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.
I'm hoping to find a reason to use it soon.
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.
(wip, no guarantees, this is the engine i use)
https://github.com/ityonemo/ce_ce
Do you have a program that doesn't need to run fast?
I eventually gave up because it’s a bit too difficult without a team.
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.
The URL: https://elixir.hexdocs.pm/getting-started.html
I didn't mind the old one, but I understand that it helps adoption to keep the website shinier.
Love how dedicated you all are to providing clear entrypoints and being thoughtful around documentation!
But it's blazing fast which is good to see.
The only thing I believe the language's missing is it's own dedicated IDE.
EDIT: shipped!
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.
a) did you pay your Elixir contractors more than you would pay a Java contractor for similar work?
but also...
b) scarcity isn't the only factor in price. Erlang/Elixir developers are scarce, but Erlang/Elixir jobs are also scarce. You need both demand and scarcity to raise prices. Also, it doesn't cost much to turn a willing, good developer into an Erlang/Elixir developer; substitute goods reduce the impact of scarcity.
also c) if you found contractors, but not employees, maybe you weren't willing to pay enough... So maybe the price is higher than you thought?
b) true
c) i think we paid them $100/hr for two months which is fair
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
If you must default to dark mode that’s your choice but I’d love to see a light mode toggle somewhere prominent.
One consequence of software recently supporting light and dark schemes is that UI designs end up committing to all white or all dark, rather than tastefully choosing a color scheme that best frames its content in context.
[0]: https://elixir.hexdocs.pm/1.20.2/
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/
For monochrome, light background and dark text work better.
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.”
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.
>Might as well use LLMs for the whole thing next time, since we will be accused of doing so anyway! :D
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
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!
If i go full dynamic, why not use pure erlang instead?
Gleam on the other hand has a actual type system. It still young but i can see what it offers.
So syntax for me is totally pointless and just noise.
I hope you don't use discord or rely on pagerduty.