4 ms·
> I greatly admire the principles, but in practice, the Erlang platform underdelivers in a modern context, because applications are usually not deployed by hot-
by lolinder 3y ago
> I greatly admire the principles, but in practice, the Erlang platform underdelivers in a modern context, because applications are usually not deployed by hot-swapping, but by rollout on Kubernetes. High availability is achieved by load balancing over horizontal scale-out of pods. Distributed systems today use external systems for state, like databases, keyvalue/caching stores, message queues, etc.
I can believe that there are reasons to avoid BEAM in production, but "all the other ecosystems solve the same problems differently" isn't a good reason. One reason to choose the BEAM is because it offers solutions to all of these problems as part of a single coherent ecosystem. Yeah, you'll be confused if you try to take the BEAM and then roll it out on K8S, so maybe just... don't do that?
If you want to compare and contrast BEAM's solutions with the more typical modern suite, that would be more persuasive. Just saying "it's bad because it's different" isn't, because the differences are why people are interested in it.
- cangeroo 3y agoFor the question of "which language should I use, should I use Elixir?", I think it's valid to evaluate it against "all the other ecosystems that solve the same problems differently". If you want to design a bespoke solution from scratch, then it could make sense to use a single ecosystem, that avoids the complexity of Kubernetes et al. So it really depends on your use case. If you're designing independent software, like RabbitMQ, it might make sense. It's not bad, it's just that other solutions are often better.
- cangeroo 3y agoBut it seems that I misread the original question. I see now that it reads "should I be using Elixir for new projects or Erlang?". There was a linebreak after "new projects", so it only read to me as "should I be using Elixir for new projects". Apologies.
- lolinder 3y agoBut you haven't justified why the "normal" solutions are better. That's all that I'm asking for—if k8s deployment is better than hot swapping on a distributed BEAM VM, then explain why, don't just say that the BEAM is worse because it is different.