by nnx on 5/28/25, 8:43 AM with 35 comments
by gizmo on 5/28/25, 9:15 AM
I also don't understand why under "extreme load" there would be excessive memory pressure in the first place. When a server can't keep up with incoming requests it doesn't need to continue spawning new workers/goroutines. You don't need to .accept() when you don't have the resources to process the incoming request.
Very strange article.
by gommm on 5/28/25, 9:40 AM
Instead they show pseudocode with very vague descriptions of failure mode that do not really make sense: "Under our error cascade simulation, some low-level failures in unsafe code regions propagated in ways that eventually caused deadlocks in resource management." That doesn't give any details nor does it sound like a realistic failure case to have "failures in unsafe code regions".
by gspr on 5/28/25, 9:15 AM
> … using the latest stable versions as of May 2025:
> Go 1.23
Go 1.24 was released in February 2025.
> Rust 1.78
Rustc 1.86 was released in April 2025.
> C++ (using GCC 14.1 with C++23 features)
GCC 15.1 was released in April 2025.
by tomtomtom777 on 5/28/25, 9:22 AM
Obviously this is a bad idea. Even in Erlang's case because while some processes may continue to function, the behavior becomes utterly unpredictable.
In the real world, we would gracefully reject jobs/connections above a certain threshold.
by on_the_train on 5/28/25, 9:15 AM
by iLoveOncall on 5/28/25, 9:13 AM
Disclaimer that I know absolutely nothing about Erlang except that I'd rather program in hieroglyphs, but how is a process crashing and restarting an acceptable failure mode?
The title says a single language didn't crash, but it literally does crash and restart if I understand correctly.
In any case this seems to be an extremely narrow test on an extremely specific use-case, where it might be fine to indeed crash and restart, but it's definitely not indicative of the performance of the languages as a whole.
by benterix on 5/28/25, 11:12 AM
by mrweasel on 5/28/25, 9:14 AM
The various error/failure modes are interesting, but not unexpected in retrospect.
I'm still not a fan of the Erlang syntax, it's so hard to read. It's probably just because I've mostly used C inspired language.
by rvz on 5/28/25, 9:28 AM
This is what the Erlang VM was exactly designed for, yet these "programmers" claim to be surprised that it didn't crash under heavy load, unlike the rest?
The language runtime is what was under test rather than the language itself.
Mediocrity and hype are once again celebrated.
by lifthrasiir on 5/28/25, 9:22 AM
by aredox on 5/28/25, 9:27 AM
by skinkestek on 5/28/25, 9:12 AM
Go seems to have been tested with http handling, Rust with sequential computation heavy jobs, C++ with parallel processing and so on.
Maybe this is just one example from each language but this is just confusing.
by superchris on 5/28/25, 1:40 PM
by xanth on 5/28/25, 9:15 AM