I’ve seen some interesting responses to some other threads recently, which I actually found quite surprising, so I’m wondering, here in 2019, what are your top three features or aspects of Elixir/Erlang?
Let’s make it easy, and take community out of the equation (it’d probably (I hope!) come up in 99.9999999% of your lists anyway ).
Feel free to also add your top three features for Phoenix and Nerves
Other notable thing: my most proficient language is Python, and I love Django, and seeing something like Phoenix was really nice after trying out Clojure and not really finding anything Django tangent.
Coming from .NET, I appreciate some things that C# programmers doesn’t have.
Elixir:
Awesome tooling out of the box
Extensible via macros
Immutable by default
BEAM:
Fault tolerant
Highly concurrent
OTP
I know we have similar solutions / alternatives inside the .NET ecosystem, but I don’t want to go all in with Microsoft (they don’t hire me lol). F# is really nice, but it’s a great language within a questionable ecosystem, and eventually C# will inherit most of its relevant features.
despite my best efforts as a programmer, Let It Crash and OTP supervision trees restart and keep the stuff running so that I never get called out.
Almost pure message passing semantics make stuff easy to write, test, and refactor.
Most of the time, all the functionality I need is already in the runtime so there’s no need to cache, run an external DB, & so forth. This makes deployment and upgrades really really easy.