Hacker News new | ask | show | jobs
by sho 857 days ago
Come on. I am a huge phoenix/elixir fan - I am procrastinating from elixir dev writing this very comment - but this is not even close to true. It is a big learning curve. It's absolutely worth it, IMO, but there is no way it is as easy to get started with as rails. Not even close.

It's my framework of choice and a secret weapon indeed but let's not pretend it's rails-easy. It's just not.

1 comments

Difficulty with Elixir is logarithmic, with Python is exponential. As the product accretes features, Python/JS tends to require much more expertise to deal with all the corner cases. Elixir keeps it long term maintainable. If you wanna explode and sell out, go for the early ease. If you plan on owning it forever, I'd say the upfront investment is more than worth it.
I don't disagree. I agree it's worth the extra effort up front if you're expecting the code base to last. And the exponential complexity you mentioned, well, that's basically why I left Rails. It can be designed well.. but you're going against the grain, and unless the rest of your team is totally on board, it's a struggle.

That wasn't the question though. The question was, which is easier? And let me tell you, you can't beat User.first. Even typing this comment I'm proving my point as I can't remember how to do that in ecto. User |> first() |> Repo.one()? after importing and aliasing a bunch of mysterious (to the beginner) things?

Right tool for the job. If i was building a temporary app, i'd use rails and make very very sure everyone was on board with the idea that it was temporary. I might even sabotage it so it couldn't be used long term (us evil old rails devs have.. tricks). Proper long term infra? elixir.

I also don't disagree with anything you said, except the idea that difficulty is not time dependent. Easy short term and easy long term are different things and that's the point I'm trying to make. Elixir land documentation is top notch and having to look things up is not a bad thing. Why would memorizing how to get started on something be good unless you're greenfielding projects every other week?
Why remember, between the Elixir language tooling and code copilot, that sort of thing writes itself. Or you can even add a helper “one” function to handle that for you.