Earlier quoted context omitted.
Correct, they are for completely different purposes. I have the feeling that a lot of people (particularly the bloggers/more vocal types) jump into newer languages for no other reason than to position themselves as experts in said language/stack, right when it's getting more popular. I've seen this happen with Ruby/Rails, JavaScript/Node, and now Rust. In this case, it would have made a lot more sense to move to some…
I cut my teeth on Ruby and Rails, I've screwed around with Phoenix, and I'm currently infatuated with Rust. Earlier on I thought that, yeah, Rust is a great replacement for C and not something want to write a web app in. So, sure, I've got a bunch of little doodads written in Rust (mostly CLI tools). Now? The fluff I've written in Elixir is getting ported to Rust. The Rust tooling and community are just that good. I'…
If you run mix in production, then it's just like running Rails or Node. You don't get certain features like hot upgrades in production while keeping what's in memory on the server, but you don't get that from Rails/Node/PHP/Python either.
If you want those BEAM releases, then you have to use the Elixir (or Erlang) tools for them. I also encountered a great deal of frustration when working from a different OS, but no more than I did when building Rails apps several years ago.
Now I generally, build with Gitlab CI/CD and deploy from that Gitlab container to my server with Distillery and Edeliver. It lets me use the standard CI/CD tools and have stateful upgrades. I am running Ubuntu on the server, though: