Comment by SigmundA
>Well, sure don't use it for heavy computational loads if it doesn't work for you.
>why would we drop multi-processing with isolated tiny heaps with a few KBs each and move to multi-threading with a large multi-megabyte stacks per thread and all sharing and writing to the same heap?
This is the question I was answering and I gave you an example then you proceeded to say there is no overhead Erlangs process model, which now you admit exists.
>That's a specific workload, it's not universal, for sure. I haven't worked on cases there is a single large data structure and all million clients have to manipulate it concurrently.
Thats not the workload, simple as a single client doing heavy processing of large image or video, multithreaded shared heap wins due the the overhead of Erlang's processing model, thats why you give it up which is answering your original question again.
Geez this is tough crowd, first Erlang has no overhead, then its well that nots whats its good at, which I said. Then its well those are specific workloads, yeah serving little messages to a million clients is a specific workload too. I like Erlang, it's very good at specific things but it sacrifices quite a bit of performance to do that like many good abstractions. That can help overall reliability and performance on certain workloads but other modern languages following the shared heap multi-threading model will probably outperform it if care is taken in the design because they more closely match the underlying OS and hardware execution model of today with less indirection and overhead and they can also do other workloads that Erlang will never be good at with its share nothing green thread/process design.
> This is the question I was answering and I gave you an example then you proceeded to say there is no overhead Erlangs process model, which now you admit exists
But that's not what NodeRed-Erlang does. The author is confirming it one one of the sibling comments. You invented some new type of workload, were all clients have to access the same heap concurrently and telling the author to rewrite everything in Rust. But that's your use-case, not the the one we're discussion. My use case is not that either.
> Geez this is tough crowd, first Erlang has no overhead, then its well that nots whats its good at, which I said. Then its well those are specific workloads, yeah serving little messages to a million clients is a specific workload too.
The application in this case fits Erlang perfectly. You're the one who introduced a new type of a use case - when you need to concurrently process the same video or audio and arguing that Erlang is not good for it. Yeah, we agree, it's not good for that, use something else, Rust, C etc. It's like we're talking about trains and you're saying, don't use trains, they can't fly, what if you have to cross the ocean or something like.