Hacker News new | ask | show | jobs
by plinkplonk 5806 days ago
The point was, to make any language "win", just choose one of its strengths as a deciding criterion and take another language without that feature as a punching bag. So to make Haskell "win", All I have to do is state "monadic programming should be easy" or "effectful programming should be clearly distinguished from the pure functional core by the type system." or "Using typeclasses to structure my code should be trivial"

And Haskell "wins" by default over other languages.

That said, fwiw, in my experience the "sweet spot" of Haskell is in large + heavily algorithmic + complex code bases, where its powerful type system shines. It is very fast without sacrificing abstraction. I've built some large machine learning systems with it and I couldn't be happier.

I know other people who are building trading systems in it and they seem delighted too.

As I said, just my experience and I making no claim about how other languages are losers somehow because they have different goals.

2 comments

It is very fast without sacrificing abstraction.

This is what I use it for. My program ends up being as long as Perl, but as fast as C. For me, that's the best of both worlds.

For gluing libraries together, it's not the best, but in the last few months it's gotten quite good. There is hardly anything I want to do that would involve reinventing any wheels that I already have in $other_language.

"I've built some large machine learning systems with it and I couldn't be happier."

Does Haskell have good matrix libraries? That seems to be at the core of a lot of machine learning tasks, and when I briefly checked a few years back, I didn't see any Haskell native matrix libraries. I think there were LAPACK bindings, maybe.

"Does Haskell have good matrix libraries?"

Last I checked it didn't. But you can FFI bind to any C/Fortran library of your choice(which is what I did).