As I’ve not seen this mentioned here yet, I would advise to buy/read the following book https://pragprog.com/book/tvmelixir/adopting-elixir it’s really helpful and gives a nice overview and ways of starting out with elixir(and/or phoenix) within companies.
I have extensive experience (in form of tech lead and hiring people for teams) with Ruby on Rails from the start (around 2005). Next to that I’m coding in Elixir for a couple of years now and with that I’m also using Phoenix quite a lot. Given Ruby and Elixir are the programming languages and Ruby on Rails and Phoenix are the web frameworks, the opinion I can give you is that RoR is almost its own language on top of Ruby. So saying you’re fluent in Ruby is not the same as being fluent in Ruby on Rails and the other way around as RoR is giving you so much ‘extra’ it is for most pure RoR devs hard to do ‘pure’ Ruby, without all the Rails helper parts. Next to that there’s also quite a lot of “convention over configuration” to learn with RoR. (aka the ways of the framework, sometimes called the ‘opinionated’ part). This on its own is definitely not super bad, it worked quite good for years and still works as long as you stick with the framework way of doing things. Often the negative/bad things where people talk about happen when you stray off this path and want to do other things which don’t fit the frameworks mold.
But this is quite the opposite of my experience with Elixir and Phoenix. Phoenix is for the most part ‘just’ elixir with not that much extras on top. Which is quite a nice experience. The more you start out with only phoenix you’ll see over time that most of the constructs are ‘just’ basic elixir. (Maybe only the router DSL falls out of this statement) But Elixir is quite a bit more harder to learn given the functional constructs (certainly if you’re used to/coming directly from ruby). The perspective is a lot more from the Data and mutating them with a couple of functions instead of making a lot of custom abstractions (OO classes) and adding custom functions to them. But when you’re finally there and have some code in it you’ll see that a lot of problems of Ruby code don’t show up in elixir. (most issues having to do with state which comes from everywhere) And those couple of functions that can mutate most data structures are then way easier to work with.
So for me there’s not really a reason to dislike Elixir/Phoenix if you dislike Ruby/Rails, but it all depends what the original reasons are. I think they also fill a different niche/use case better. And there’s even more than a use case, you also have to take into account the sentiment within an existing team. If you want to make a good decision it’s best to start out small with a perfect use case for the framework and just see if it works out for you (and your team).
Have fun coding! (doesn’t matter which language/framework!)






















