-------------------
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