DEV Community

[Comment from a deleted post]
Collapse
 
bzitzow profile image
Brian Zitzow • Edited

I also went through a similar Journey. I wanted to learn a newer programming language as I think there is a lot of value in the innovations that the new languages offer. I was looking at Go vs Elixir. I'm also interested in concurrency and distributed systems. Go touts channels while Elixir is built on top of Erlangs OTP framework and the BEAM Virtual Machine which is based on The Actor Model.

Elixir is also a functional paradigm language and I have been trying to master thinking in the functional paradigm using JavaScript and Scala.

I was a little sad when you mentioned you may not be cut out for the functional line of thinking because it has made me such a better programmer - even in the object paradigm in Java.

There is too much to learn. You will pick a language and another one will come out. M.I.T. just released Julia. That's why I decided a few years ago I was going to stick with mastering the fundamentals. Learn about application architecture, OOP design, and the things that you can apply across any language. It has served me well so far, and enables me to learn new languages at an accelerated rate.

I ended up picking Elixir because I aim to master the functional paradigm. It's got immutable state built in, and pattern matching on function signatures will change your life! (Maybe F# can do this, I don't know).

The foundations under Elixir route the majority of all internet traffic (erlang and it's VM, the BEAM) so it has a proven history at scale, and I feel like the actor model more succicntly models reality than channels, so that is very interesting to me.

The philosophy behind Elixir is one of developer friendliness, productivity and it has a passionate open source community. The language spans domains from web applications, to embedded software (IoT).

Since I've made the decision, I have really enjoyed using it. Programming has become fun again :)

Anyways, my advice would be find the cross section between what you find interesting and what the language can be a vehicle for you to study the fundamentals underneath it. Then you can't really lose.

Cheers and good luck!