No rebinding, better fits the grain of the OTP, no AST macros. Last I checked, the debugging experience with elixir was pretty subpar. Erlang is also a fundamentally nicer syntax that I find a great deal more readable. I'm not really sure what the appeal of Elixir as a language is actually supposed to be, outside of people who have spent a lot of time writing Ruby code.
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.
(Assuming you're not trolling: you chose to focus on features that can only be judged subjectively, and therefore can only be discussed as preferences. It's ok to have them, but actively displaying them is a bit pointless. Objectively measurable features of both languages put them very close together, with both having slight advantages over the other in different areas, on average making them almost equivalent. Especially compared to anything non-BEAM.)
Not to pick on you, but there are always posts like this in every Erlang thread. One is not strictly superior to the other, and the BEAM community benefits from the variety IMO.
johnnyjeans|7 months ago
asa400|7 months ago
Why someone might like Elixir:
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|7 months ago
Easy:
(Assuming you're not trolling: you chose to focus on features that can only be judged subjectively, and therefore can only be discussed as preferences. It's ok to have them, but actively displaying them is a bit pointless. Objectively measurable features of both languages put them very close together, with both having slight advantages over the other in different areas, on average making them almost equivalent. Especially compared to anything non-BEAM.)taure|7 months ago
This is more to have a smooth web framework similar to Phoenix but for Erlang.
You can also use Nova for elixir.
cmdrk|7 months ago
colecut|7 months ago