1. 17

  2. -1

    I love the look of haskell, but damned if I can ever use it for more than a week.

    1. 3

      I’ve generally found that practically minded Haskell-inspired languages and/or frameworks hit a really good balance for my sanity. On the .NET side, for example, F# can be excellent (and its trivial escape valve to C# is perfect when you need a more typical way to reason about a problem). And even in pure C#, there’s always language-ext to give you ad hoc Haskell-like purism. On the JVM side, it’s a bit trickier: Kotlin would fill in nicely for C#, but I don’t know a good F# equivalent, and the Kotlin variant of language-ext is Arrow, which I absolutely loathe. But I’m sure there’s something equivalent you could do there, too. And I could point to similar libs for things like Ruby (the dry libraries), JavaScript (Immutable.js and the like), and so on.

      I’m otherwise with you, though: I’ve tired to use Haskell in anger many, many times, and the closest I ever get is being angry I ever tried to use Haskell.

      1. 2

        Care to elaborate on why you loathe Arrow?

        1. 2

          Docs are poor, upgrades have been rough, performance impact has been disproportionately high compared to something like language-ext, the way they use Kotlin destructuring for bind borders on syntax abuse…it basically feels like someone tried to staple-gun Haskell onto Kotlin and ended up with something that’s alien to both. (The recent push towards using the IO monad everywhere also makes it comparatively harder to use Arrow for only parts of our app, IMHO.)

          1. 1

            Thanks for elaborating! I haven’t used Kotlin, but based on what I know about the language it does seem a bit odd to pair it with Haskell.

        2. 2

          On the JVM side, it’s a bit trickier:

          A baby-step is to use the Atlassian’s library Fugue.

          A “head-dive” is to start using the Frege programming language.

          1. 1

            JVM has Scala