Comparing Erlang and Elixir

Hello, forum friends!

While researching for an upcoming presentation, I have been trying to compile a list/summary of differences between Erlang and Elixir and how they relate to each other.

There are a few questions in particular that I find interesting:

  • What are the biggest differences between Erlang and Elixir?
  • As a true superset of Erlang, what does Elixir bring to the table in addition?
  • Does Elixir enable certain things which are not possible in Erlang, or vice-versa?
  • Are there certain things which are more difficult in Erlang than in Elixir, or vice-versa?
  • Would you ever choose to use Erlang over Elixir? If so, in which contexts and why?

I have some thoughts of my own on these subjects that I would like to share, but I would like to hear what you all think without priming/biasing your thoughts with my own from the onset.

2 Likes

I think we’ve had a few similar threads - I’m on my mobile atm, but here’s one I found :slight_smile:

2 Likes

Thanks! That thread didn’t show up in my results when I was checking for similar threads before posting. I’ve seen conversations about these topics in various talks and blog posts here and there and I thought it might be useful to gather all the relevant info in one thread/summary so that it is easier to find and consume.

1 Like

sounds like something that we should have a FAQ on

2 Likes

There is this official documentation that might help…

2 Likes

Funnily enough I was thinking whether we could have an FAQs tag or section… maybe in conjunction with something like this: https://elixirforum.com/t/do-you-think-we-need-a-glossary-section/12988 ?

2 Likes

That sounds like a great idea!

1 Like

A section or a tag tho? :101: :lol:

@zkessin If you fancy helping out, please check out this thread :003:

1 Like

Oh… yeah. Good question. In theory, if the tagging, navigation and search are doing their job, then I suppose an “FAQ section” shouldn’t be necessary. Sometimes (as in this case) I was searching for the wrong words and not finding the already existing threads on the same topic.

1 Like

I think you should be very careful when comparing syntax. What people think is a “nicer syntax” is often one which is similar to what they are used to, rather than one which is nicer/better in a more objective sense. There is nothing wrong with this but you should be aware of it.

For example, I think the elixir syntax is full of weirdness which I have not seen in the other languages I have used (and, yes, there have been quite a few) so I definitely don’t find it nicer. Also the erlang syntax is definitely simpler, more concise and more consistent as syntaxes go. Whether you find it nicer depends on your background and what you are used to.

And I do try to avoid syntax wars. :smiley:

5 Likes

Yes, I agree with that completely. Personally, I actually like Erlang’s syntax as well :slight_smile:

In this thread I was thinking to compare more than just syntax. As was pointed out in this other thread (which was specifically about syntax), syntax might be the least important factor to compare. I was hoping to broaden the discussion a bit to get an overview of more important differences.

Yes, syntax wars are seldom productive or fruitful.

2 Likes

It may be worth “mining” https://ferd.ca/ - in this context On Erlang’s Syntax.

1 Like

A couple years ago I wrote a series of blogs on various differences (some obvious, some quite subtle) that I found when working on a transpiler. Some syntax related (inasmuch as it relates to the corresponding ASTs), but also differences related to scoping, operators, guards, metaprogramming, etc. Might be of interest. http://daniel-azuma.com/articles/family-ties/

3 Likes