-------------------
Elixir
2020-02-04
-------------------
In my professional career I mostly work in C#. It is a nice
language, and the design commitee does a great job making it better
with each version, not worse.
Last year I again had the urge to learn some new language, with
paradigms in which I am not well learned. After reading about it
for the nth time I decided to look into elixir [1]. It's a
functional, dynamically typed language. It runs on the BEAM virtual
machine, which has initially been developed for erlang.
My introduction was with the course [2] by Dave Thomas of ruby
fame. It's well put together, and for the asking price I can only
recommend it. I still haven't been able to finish it, life
intervened, like it so often does. I'm pretty certain that I won't
ever use elixir professionally (although that would be neat), and
also as a hobby it'll have a small role.
Nonetheless, being exposed to this entirely different world of
elixir and everything around it (mix [3] and hex [4] are great,
as is the on-board test framework [5]), has been a valuable
experience. It has again shown me the power of immutability and
pure functions. Over the last years I have tried to use these two
ideas as much as possible in my daily work. It makes reasoning
about and understanding complex code so much easier. Having dabbled
in elixir has reinforced my desire to adhere to some of the
functional principles more.
The language itself and the tooling is still being actively
developed, and I'm curious what features will be implemented in the
future.
If elixir sounds like it could be interesting to you, check it out!
-------------------
[1]:
https://elixir-lang.org/
[2]:
https://codestool.coding-gnome.com/courses/elixir-for-programmers
[3]:
https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html
[4]:
https://hex.pm/
[5]:
https://hexdocs.pm/ex_unit/ExUnit.html