4 ms·
I recently spent a small amount of time diving down the functional programming rabbit hole (following SICP, poking at Haskell, and such). My general impression
by hobls 8y ago
I recently spent a small amount of time diving down the functional programming rabbit hole (following SICP, poking at Haskell, and such). My general impression is that the coolness of the languages is overshadowed by the poor ecosystem for a lot of use cases, exactly as the article suggests for data science.
It all seems possible to overcome, but you’d end up needing to deal with C/C++ bindings for many situations. Cryptography libraries, for example, appear to be mostly hobby projects, which would be clearly not trustworthy for serious uses, so now you’re writing/finding bindings.
Is that a fair assertion? I’m not at all an expert; I got kind of excited about the area and then a little disappointed when I considered doing some of my pet projects in a functional language and saw the immature ecosystem.
- ocfx 8y agoYeah I think this actually explains part of Elm's success a bit is that they provide a very straightforward approach to javascript interop which extends the type of functionality an Elm developer can rely on quite a bit.
- jimbokun 8y agoI think a wrinkle on what you're saying, though, is that many "mainstream" languages are adapting (or have adapted) functional programming features. Swift and Rust pull in a lot of functional programming features. Programming Java 8 feels surprisingly functional, in a lot of ways. Clojure allows you to experience even more of the functional programming experience (albeit with dynamic typing) on the JVM. "Javascript the Good Parts" showed that Javascript best practices generally follow a functional programming mindset. Having said that, if you want the full functional programming experience (first class functions, immutable data structures, isolated side effects, sum|union types, etc.) then yes, what you say is true. The amount of libraries and size of the community for Haskell and the ML family just don't compare to the more mainstream languages.
- nightski 8y agoThe most distinguishing factor of Haskell is not it's functional programming features, but rather it's very flexible and powerful type system. You won't see that pulled in by the mentioned languages any time soon.
- DonaldPShimoda 8y agoThe poor ecosystem is very real, I agree. I'm a huge fan of Haskell in particular, but I don't use it as my everyday language precisely because of lack of support in so many ways. Which is a shame, because the language really has so much to offer. If you're frustrated by the lack of IDE support in particular, I'd suggest checking out Racket. One of the language developers' primary accomplishments is a dedicated IDE called DrRacket which is designed to make using Racket easy. The books "How to Design Programs" [0] and "Programming Languages: Application and Interpretation" [1] use Racket and are available online for free, and you can find Matthew Flatt's course notes for his functional class here: [2] (he's one of the language's primary implementers). [0] http://www.htdp.org http://www.htdp.org [1] http://cs.brown.edu/~sk/Publications/Books/ProgLangs/ http://cs.brown.edu/~sk/Publications/Books/ProgLangs/ [2] https://pubweb.eng.utah.edu/~cs5510/ https://pubweb.eng.utah.edu/~cs5510/