I'll politely hijack this thread to ask for suggestions about what functional language to learn next.
I have no functional experience apart from dealing with similar, toned down concepts in JavaScript.
I was considering Clojure or Elixir depending on tooling, ecosystem, market worth and most importantly, what can it teach me.
The reason I got inclined to Elixir was to learn Phoenix/LiveView. The reason for Clojure was it's very much adored here and it seems a good starting language for FP.
Rust is in my list but maybe sometime later this year.
As someone pretty plugged-in to the Elixir community, I can fully endorse it. There are a lot of really exciting new developments happening on the regular, but it also has really solid foundation, being built on the BEAM (Erlang's VM).
As a language, the syntax is pragmatic and approachable like Ruby, but the VM scales super well since it's Actor model provides concurrency by default.
There are even projects working to enable GPU-accelerated numerical computations (Elixir Nx) and Jupiter Notebook style collaboration and code sharing.
If you're primary goal is to learn something fun that's also great for getting actual work done, you'll probably really like Elixir.
My recommended introduction would be installing it, and running through their official guide from the top:
I’m sympathetic to both Clojure and Elixir (or Gleam), but for easing into FP then I’d start with F# (or ReScript), just because they are both in the OCaml family of languages (best in class for pragmatic typed FP), and because of everything Jesse Warden writes:
Clojure is an excellent language for high productivity within small teams but is a very rough beginner experience. The language itself is elegant and a joy to use, but there are plenty of sharp edges in getting a productive developer environment working and interpreting obtuse stack traces.
My experience with Clojure was that it wasn’t especially beginner friendly. With elixir you can have a simple app running within a few minutes and there are a lot of up to date learning resources.
I have no functional experience apart from dealing with similar, toned down concepts in JavaScript.
I was considering Clojure or Elixir depending on tooling, ecosystem, market worth and most importantly, what can it teach me.
The reason I got inclined to Elixir was to learn Phoenix/LiveView. The reason for Clojure was it's very much adored here and it seems a good starting language for FP.
Rust is in my list but maybe sometime later this year.