And I think the burden of proof is on the language side. What drew me to Clojure away from C# was that I was experiencing extreme complexity due to mutability. I was doing metaprogramming and multithreaded code in C# and along comes Clojure and it says "here let's get rid of these headaches for you".
As someone who enjoys new languages, that's why I haven't put the time into Haskell yet...I don't see the payoff of the extreme functional purity and static types.
Erlang...yeah, I still salivate over their programming model at times. Prolog is awesome for lots of programs (until it isn't then its a nightmare). But I never got the "why" of Haskell. I understand the rationale, I just don't seem to have those problems.
I could learn Haskell and put time in it and become really good in it. But to do so, you have to be motivated. Clojure was fun from the start. I just don’t have the passion for Haskell like I do for Clojure.
I’m usually discouraged by boilerplate I see in Elm applications. In Haskell I’m usually demotivated by the boilerplate you have to write for trivial things like JSON.
Although if I could look past that, it may be worth the effort? I don’t know.
E.g. to update nested records, you’ll find stuff like this: https://stackoverflow.com/questions/42516064/modify-haskell-nested-record-by-value
but to master this you have to master lenses and various libs first
Big issue with haskell for me is that there are 250 ways to do the same thing, most of the time that includes littering your code with language extensions. Every couple of years people re-invent the "best" way to do x and as a result the ecosystem is a mess
it's a fun learning experience tho
erlang is beautiful indeed, I love it 🙂 it's very situation specific, far less general purpose than clojure but it's an incredible language/platform
I tried Elixir recently, and the pattern matching is simply delightful. Feels like using an ML with different opinions.
To celebrate the release of Kotlin 1.2, which includes kotlin.test
, I've updated boot-kotlinc
to add a -t
/ --test
option to support easier testing: https://github.com/seancorfield/boot-kotlinc