4 ms·
Considering both the language and the ecosystem/community, I'd recommend Elixir. Both the language and the community bear resemble my experience with Ruby. Lik
by mercer 9y ago
Considering both the language and the ecosystem/community, I'd recommend Elixir.
Both the language and the community bear resemble my experience with Ruby. Like Ruby, the language is relatively beginner-friendly, and the community is very welcoming and helpful.
The language is probably my favorite so far. For me it hits the pragmatic sweet spot between enforcing functional programming without being needlessly strict/pedantic about it, or overwhelming me with FP concepts. That can be considered a downside too, of course, but in my case it really helped me ease into functional programming in a way that other languages did not (Haskell was a bit too much, and Clojure felt too alien, for example).
The friendly community matters a lot when you're in the 'stupid questions' phase. More than once my undoubtedly very silly questions were answered promptly, often even by the creator of the language. My experience with quite a few other 'functional' communities is that there's an unfortunate tendency toward condescension, or a kind of academic elitism that made me avoid asking what I thought might be stupid questions.
Furthermore, people actively try to teach functional principles, and in particular the Phoenix web framework is great even just to see how things are done (I often add it to my projects just for reference). Dave Thomas, who is an excellent and prolific teacher/language enthusiast, has more than once expressed his affection for Elixir as a language to teach functional programming.
Another advantage is tooling. One of the explicit goals set by the creator (Jose Valim) was to make the language 'friendly'. So very often error messages give hints on how to do things instead, and there's an automatic formatter that 'fixes' stuff for you (proper indentation, idiomatic code style, etc.). The documentation for the language, packages and functions are probably my favorite ever, and it comes with other goodies like a testing framework, interactive code shell (REPL), a really nice package manager and probably some other stuff I forgot.
And finally, even though it's by no means a very popular language (yet), it's well on its way to being a 'mainstream' functional language, and it's something you can actually use for a lot of stuff (backend development, scripting, or to start a telephony company ;).
Btw, if anyone else is already playing around with Elixir, I can highly recommend searching for Dave Thomas' articles and videos. They're an excellent way to learn FP as well 'why' FP is interesting/important/worthwhile.