Hacker News new | ask | show | jobs
by beckler 3049 days ago
I built a web app in Go recently, and while it was enjoyable, progress was pretty slow. I eventually decided to change gears and rebuild it in Elixir, and so far I have no regrets. Phoenix is pretty fast, awesome, and powerful. There are a few concepts you have to learn, but overall it's been a much simpler experience and way faster to prototype with.
2 comments

To counter this point, I knocked out a web app in Go recently in a few hours. I think the speed of development depends on your familiarity.

Having said that, I would suggest the GP try both. I'm keen to try my hand at Elixir soon.

I am also thinking about going the elixir way, what did you use to get started?
Honestly, I think the phoenix guides cover pretty much everything you would possibly need (https://hexdocs.pm/phoenix/overview.html). Docs for most popular libraries (including phoenix) are pretty high-quality. I would also brush up on the language syntax as well (https://elixir-lang.org/getting-started/introduction.html).

I don't think getting started is hard, but diving into the heavy concepts could be overwhelming. Macros can be weird, and I still have to think through a lot whenever I make a foreign table relation in Ecto, since you have to create the migration (which is a way to build your database with code) AND the changeset (which is basically an elixir object that maps to the table).

Anyways, Elixir is functional, which isn't that difficult. Javascript is partially functional, but if you're used to Java or C++ you'll want to approach it with an open mind. If you've ever used F#, or C# with LINQ before, then you'll be familiar waters.

I bought the Programming Phoenix book, and it does a pretty good job, but with Phoenix 1.3 it's already out-of-date. However, it's still good reference material for the underlying concepts.

This list of open-source phoenix apps has saved my ass a couple times as well. I probably look at changelog.com's source the most since it's by far the most active project here: https://github.com/droptheplot/awesome-phoenix

I know it's not the most helpful information, but truth be told there's no secret to learn it, you just gotta do it and fuck it up a few times to get it right.