Remix.run Logo
asa400 2 days ago

Full disclosure: I started with Erlang, I get paid to work with Elixir every day, I love Erlang still.

Why someone might like Elixir:

  - slightly less crufty stdlib for a lot of the basic stuff (though we still use the Erlang stdlib all the time)
  - the Elixir community started off using binaries instead of charlists so everything uses binaries
  - great general collections libraries in the stdlib that operate on interfaces/protocols rather than concrete collections (Enum, Stream)
  - macros allow for default impls and a good deal less boilerplate, great libraries like Phoenix and Ecto, and the community seems to be pretty judicious with their use
  - protocols allow datatype polymorphism in a really nice way (I know about behaviours, they are also good)
  - very standard build tool/project layout/generators that have been there from the start (Erlang has caught up here with rebar, it seems)
  - a lot of high quality libraries for web stuff, specifically
  - convenience stuff around common OTP patterns like Task, Task.Supervisor, Agent, etc.
For me, I love the clarity and brevity of Erlang the language but I find Elixir a lot more pleasant to use day-to-day. This is just personal, I am not making a general statement saying Elixir is better.

> Last I checked, the debugging experience with elixir was pretty subpar.

Just curious, why is this? All of the Erlang debugging stuff seems to work.

klibertp 2 days ago | parent [-]

> Just curious, why is this? All of the Erlang debugging stuff seems to work.

But you'd see a decompiled Erlang-ish code in the (WX-based, graphical) debugger, no? Genuinely curious, I think it was like that last I checked, but that was in 2019.