This question is in the context of the Beam VM and the capabilities that it provides, not in the general context of what a Turing complete language can do. I want to invest some time to learn either pure Erlang or Elixir. I get the basic differences between the two and I am leaning towards Elixir because of the macros, better syntax and faster development of the language this day.
My question is: if I choose Elixir, will I stumble on something that I cannot do in it, but can do in Erlang? Can I use all the OTP stuff, all the Erlang libraries, code reload, etc. with Elixir?
I am not asking for someone's preference between the two; just facts about the possibilities of the languages. Preferably from someone who used both in production.
Erlang was mainly used in the field of telecommunication, banking, ecommerce, etc. Elixir is a functional language that is meant for developing applications that are scalable in nature. They are mainly used in handling the distributed applications.
Here are Elixir's advantages over Erlang: Modern syntax. The syntax of Elixir is much easier to understand if you've already programmed in virtually any other popular programming language. It removes some amount of boilerplate code and can lead to higher developer productivity.
You have a highly experienced development team: You should choose Elixir. It offers greater freedom than Erlang, and experienced developers can utilize it to build powerful applications quicker. Since Elixir offers better documentation, programmers can find more help when they use powerful features.
It's a functional and dynamic language used for building scalable and maintainable web applications. Elixir has a reputation for being fun and easy to learn, and there's an active Elixir community where you can interact with other Elixir programmers.
You shouldn't stumble on anything you can do in one that you can't in the other, since you can freely call Elixir code from Erlang and vice-versa. You can even easily mix Erlang and Elixir files in one project.
In Elixir:
:erlang_module.erlang_function(args)
in Erlang:
'Elixir.ElixirModule':elixir_function(args)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With