I think the io_ansi [1] module sounds pretty cool, imo erlang doesn't have a great story for building complicated CLI applications right now, but I haven't tried much. I imagine having this in the stdlib will be a nice leg up in the future. The way fwrite works seamlessly across nodes is very nice, and exactly what I love to see from erlang.
The addition of Native Records [2] is really cool. I'm curious how this will be leveraged in Elixir in the future, since right now I think there is a mix of records, tuples, and maps depending on exactly what is being done. Like the EEP says, I doubt we'll ever see the old records deprecated entirely but this looks like a substantial improvement.
[0] https://www.erlang.org/doc/apps/ssh/ssh.html
> The SSH daemon now defaults to disabled for shell and exec services, implementing the “secure by default” principle. This prevents authenticated users from executing arbitrary Erlang code unless explicitly configured.
> The SFTP subsystem is no longer enabled by default when starting an SSH daemon.
You may be thinking of comments like: https://erlangforums.com/t/should-otp-be-the-standard-librar...
Critical CVE-2025-32433 in erlang:27.3
Critical CVE-2026-28808 in erlang:27.3
High CVE-2026-23941 in erlang:27.3
High CVE-2026-32144 in erlang:27.3
High CVE-2025-48041 in erlang:27.3
High CVE-2025-68973 in gpgv:2.4.4-2ubuntu17
High CVE-2025-30211 in erlang:27.3
High CVE-2025-68973 GPGV 2.4.4-2ubuntu17
All these seem to be fixed by upgrading to latest ubuntu image + Erlang/OTP 28.5I know there are plenty of Elixir enthusiasts here, I mean plain ol' Erlang.
If you are still using Erlang, why do you prefer it to Elixir?
- New IOT thing on atomvm.
- Application server written in erlang.
- TUI framework (still WIP).
Why do you prefer it to Elixir:
- Elixir doesn't pose any real advantage for me over erlang, i'm sure there may be be some, but it fits my brain easier. I'd probably even love to make it a social event to learn/get help, but I never seem to find anything that suits.
Interesting. I wonder if there a world where Elixir starts compiling maps to "native records"?
I’ve been using Erlang since the early 2010s, right around the time we (the tech industry) discovered that WhatsApp was supporting over 400 million active users with only like 30 engineers.
I reached out to one of their engineers at the time (when I still lived in the US) who kindly responded to some of my questions via email. We ended up meeting for coffee and still stay in touch to this day.
I can tell you that Erlang is still very much a part of WhatsApp.
Added support for -unsafe attributes
Right in time for the Rust rewrite! /sI don't understand Phoenix hype
For solo devs, Rails is arguably most productive webapp system. LLM is very good at writing ruby rails code. Much better than writing django in my experience even though python training corpus is huge.
I write my experimental apps in Rail when it stabilizes, i do a Go rewrite.
I don't write directly in Go because, it consumes lot more token when the app scope is unknown but it's very efficient for rails.
These day i don't need react or angular anymore, i use Hotwire in Rails and HTMX in Go.
Erlang forum itself uses Discourse (written in Rails)
You might want to broaden your horizons.
would you please recommend a good resource to get started with elixir ?
thanks for your time !
Ecto is not bad as well.
Claude Code is very good at writing Elixir.
Surprise, you'll be more productive with what you know, LLM or not.
ActiveRecord is more pleasant to work with than the ORM of Phoenix IMHO, but not everyone shares the same feeling.
Despite having built in concurrency my team ended up building a version of Sidekiq because supervisors don't cover all use cases of job control.
I prefer deploying with Capistrano than with Elixir builds. Another matter of taste.
Structural pattern matching is the only feature I dearly miss, but that's a feature of the language.
We never used Liveview. We had a backend for a JSON API so I can't compare that feature.
A stateful mechanism vs a data mapper? Absolutely not. Being able to write `user.save()` is such a lunacy, thank god we have functional languages that (necessarily) decouple storage from data models.
I cringe every time I have to use imperative, stateful languages.
Well, depends on what you do. Ecto is closely follows SQL logic and allows to translate weird sql queries into code directly. All queries are explicit, e.g. you either do preload(...) or can't access nested records at all, no chance of N+1 by design.
Changesets are also different and are just functions you can define as needed.
defmodule MyApp.User do
...
def changeset(user, attrs) do
user
|> cast(attrs, [:email])
|> validate_required([:email])
# This matches the error from the DB uniq index to the :email field
|> unique_constraint(:email)
endYour example is a common anti pattern from PHP orms 15 years ago.