3 ms·
> Doesn't Elixir on Phoenix[1] provide the elegance of Ruby on Rails without its drawbacks? I'm not sure I would say elegance is the main feature of Rails, but
by bratsche 7y ago
> Doesn't Elixir on Phoenix[1] provide the elegance of Ruby on Rails without its drawbacks?
I'm not sure I would say elegance is the main feature of Rails, but I think productivity is. IMO nothing out there beats Rails in terms of productivity on a new project. Phoenix is clearly inspired by Rails, but if you'll permit me to pull a semi-random number out of my ass I don't think Phoenix will ever be able to do better than about 80% of Rails's productivity. Some things are just not as simple (for example, just due to the nature of things Ecto is not as simple to write with as ActiveRecord is).
That said, I've totally moved away from Ruby on Rails and over to Elixir/Phoenix for my stuff. I absolutely love Elixir. So far in my experience I'm finding it more performant, easier to maintain, but a little less productive to write in. But still plenty productive enough.
- krn 7y ago> I don't think Phoenix will ever be able to do better than about 80% of Rails's productivity. I haven't used Elixir/Phoenix myself, but my main issue with Ruby on Rails was how much of long-term productivity was sacrificed for short-term productivity gains. In other words, what made it extremely easy to create the first version of the application with Rails, also made it very hard to maintain and scale it later on. Therefore, I would consider it a win, if 20% decrease in short-term productivity provided an equal increase in long-term productivity, which is much harder to measure.
- Lio 7y agoI think you’ll have to spell out specifically what those things are that affect long term productivity if you’re going to use them as a argument against use of Rails. I not saying your wrong, just that a hand wavy “rails is bad in the long term” is not an argument.
- dnautics 7y ago> Phoenix will ever be able to do better than about 80% of Rails's productivity. It took me 4 hours to learn LiveView, 3 to get it up and running with Phoenix PubSub (which I didn't know before either), and another 2 to get Presence in there. So I now have a live dashboard for the backend of our service (and it will probably be similar to the frontend). The rest of the week was developing a system so that I could run acceptance tests concurrently (you have to shard your Registries and your Channels and use a secret erlang feature to track who's what). Everything "just worked". I think this 10 hour enterprise would have taken me at least a month to do with a standard RESTful interface and a backend off the shelf PubSub like RabbitMQ, and probably two months to do with an non-featureful backend websockets system (I find websockets confusing). It's hard for me to believe that any other system is as productive.