Hacker News new | ask | show | jobs
by z9znz 1497 days ago
Having used Rails mostly, Phoenix for a couple of projects, and Django now at my current startup.

I would absolutely not choose Django. I would recommend Rails, but I would choose Phoenix.

People choose Django because they only know Python, or they think they are an AI company (usually they are not), or they think the built-in admin/crud pages will save them a lot of time. On the last point, I think they are not at all worth the tradeoffs. The bad reputation that PHP devs used to have applies to Django development in my opinion. It is so common to see 100+ line methods, super tight coupling with the framework, and other amateur implementation practices which add technical debt with every pull request.

Phoenix is great, Elixir is great (especially for the functional behaviors you'll use), and the Erlang OTP foundation is incredible if you ever want to break things down and scale. But you'll have a harder time finding experienced devs at some point unless you're willing to train them or give them time to learn.

Rails is still very good, and Ruby is an incredibly consistent, well-designed language. There are lots of people who know Ruby and Rails, so when you do need to hire or contract some help, you'll find it pretty easily.

I would personally go with Phoenix and Elixir because I think it's an evolutionary step forward, and because it's fun. It's also fun to see views render lightning fast compared to Rails (where unfortunately you have to learn to NOT break things up into many logical partials because each partial adds render time overhead). Phoenix views are compiled, so they can be designed better and still be performant.