For context, I've been working for a couple years now with Rust, and, I have to say, the experience has been astoundingly pleasant. The language is both incredibly productive and meets each of my use cases and stipulations regarding speed, safety, and complexity. That said, I've come to beg the question, "what is the point of functional languages like Haskell?" To me, what seems attractive about Haskell is the inherent thread safety, and the added syntactic niceties of code written in the language. However, one must keep in mind, my experience with Haskell has been pretty limited, simply due to the massive learning curve that the language presents. Such a "learning curve" brings me to my central point: these days with languages like Rust which bring together the best from functional and imperative worlds, it seems like functional languages are becoming increasingly irrelevant. Let's face it: no sane person will choose to learn a functional language as their first language, outside of academia and mathematics, and OOP/OOP-like languages remain dominant in the space. So, why then, is Haskell any different? What benefit do languages like Haskell pose in the modern CS space that thread-safe, non-GC languages don't already provide?

  • 0
    I like it for its high level type hackery (stuff like the rank N types and the ST monad) and some of the stuff there that is just exceedingly pleasant to use (monad composition based design, software transactional memory, green threads etc).

    Also when hacking in Haskell I tend to focus more on the structure and behaviour of the problem itself and how it can be expressed in elegant ways, which is a cool way to do things. Its GC based, high level interfaces allow this.

    Haskell's focus on types is even more than Rust's and that makes it a cool way to do/think of things. Also the whole research and academic-y side of the language is refreshing. My uni has quite a few Haskell and FP compiler hackers in general and talking to them about stuff is just uber cool.

    That said I'd hesitate to use it in a real project without significant preparation.
  • 0
    Also the extreme flexibility of the language when you add TemplateHaskell to the mix (eg. lenses).
Add Comment