Erlang/OTP 29.0(erlang.org) |
Erlang/OTP 29.0(erlang.org) |
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.
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.
The absolute irony of writing this whole ramble and then revealing that you're not even the one writing the code.
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)
endYou may be thinking of comments like: https://erlangforums.com/t/should-otp-be-the-standard-librar...
I don't have access to anything anymore, but 30 engineers sounds about right.
At that time, I think was about Two on Nokia S40, two on S60, two on Blackberry, two on WP. I think three on Android, three on iOS. One or two on voip (shhh, it won't be out until summer 2014). I probably missed one or two people that floated around different client projects.
So, something like 17 on server?; we were not a 100% Erlang shop of course (our web page was just PHP, our blog was still Wordpress at that time (hiss), but I can only think of onen server person who wasn't doing much in Erlang.
There were also a lot of people wearing many hats. Several client team members had significant contributions to server work and some work the other way too.
Try as I might, I never did convince the S40 team to run Erjang though.
I swear there's a video of Joe Armstrong et al. presenting part of this on stage and laughing along with it. I tried to find it last week but couldn't figure out which talk it was. A few years ago I think I watched every Erlang/OTP talk in existence.
Not writing api routes for the frontend (when you don't also have a mobile app etc) is nice though, and pairing it with PubSub for UI updates is a cool trick.
If you're on the fence, this'll convince you: https://www.youtube.com/watch?v=JvBT4XBdoUE
Your example is a common anti pattern from PHP orms 15 years ago.
2) after ~8 years of using it, i find it ergonomic, light on congitive load and good for long term support
As soon as you add use Ecto.Schema to your model it's an ORM.
> But it doesn't require a database and queries have to be explicit!
yea yea that's a feature of every ORM
1..10
|> Task.async_stream(fn x -> x*2 end, max_concurrency: 2, timeout: 7000, on_timeout: :kill_task)
|> Enum.to_list()
Equivalent Go code would be very long and very ugly.Golang has its positives but you also lose a lot. Whole ecosystem is not comparable, like "debug live production cluster" is one-command away for Elixir vs "fuck you" for Golang