Surprised not to find more mentions of FP in the archives.
I’ve tried haskell and scheme in the past but never got on with them
This past couple of weeks, I’ve been learning the latest hotness: elixir and this
I mostly use ruby these days (ruby rather than rails, though I know rails very well too, although I prefer sinatra + sequel) and I tend to write in a fairly functional style — hashes, collections, map, reduce/inject, immutables, etc. — albeit with objects, so elixir is coming to me fairly naturally, especially as it borrows heavily from ruby’s syntax. After all, its creator is #5 rails committer.
elixir is built on erlang’s engine (BEAM — equivalent to Java’s JVM) which offers some amazing benefits (e.g. inbuilt pubsub, concurrency, & distribution), and fits the current web development model like a glove. Where it really shines for an upstart language is both its tooling (very ruby/rake-like) and by making the commenting system a first class.
In addition, elixir has a rails-like framework called phoenix ready to go, which utilises a sane db mapper called ecto.
I’ve not had so much fun with a language since I found ruby all those years ago. Sure, you need to switch to FP thinking with its pattern matching, immutability, prevalence of lists and tuples, and recursion, but when you leverage erlang’s BEAM and spawn processes (not unix processes, but kind of threads without mutexs, so more like firing off things to an event bus) the sum of the parts is so much bigger than them.
Will I be using FP? Yup. Next project, I’m rolling out elixir + phoenix. It’s the only way to learn