4 ms·
I would argue that Haskell lets you respond to nebulous requirements better than almost any other language, because refactoring is so much easier and safer. I
by darzu 7y ago
I would argue that Haskell lets you respond to nebulous requirements better than almost any other language, because refactoring is so much easier and safer.
I self identify much more with being pragmatic and goal-oriented than math-y and perfectionist, and I think for almost every programming domain we'd achieve our goals faster by moving more towards having strong static guarantees in an ergonomic, expressive language.
Finally, I would also put forth that debugging state corruption or randomly failing assertions is much harder than learning to avoid side-effects and leaning into immutability.
- KurtMueller 7y agoAlexis King, a professional Haskell coder, recently wrote an article on exactly that: https://lexi-lambda.github.io/blog/2020/01/19/no-dynamic-type-systems-are-not-inherently-more-open/ https://lexi-lambda.github.io/blog/2020/01/19/no-dynamic-typ...
- mumblemumble 7y agoIt's a very insightful article. It's clear and precise and lucidly written, and I'd recommend anyone who cares about these things read it. That said, I found the article unconvincing. The author's writing is perhaps too precise, to the point where the forest has been lost amidst the trees. I can draw the main reasons why I'm losing my religion w/r/t to static typing from out of the appendix portion of the article itself: > not only can statically-typed languages support structural typing, many dynamically-typed languages also support nominal typing. These axes have historically loosely correlated, but they are theoretically orthogonal The fact that they're theoretically orthogonal is small consolation. They are loosely correlated, but the looseness doesn't happen in a way that's particularly useful to me. The fact of the matter is, the only languages I'm aware of that have decent ergonomics for structural typing are either dynamically typed, or constrained to some fairly specific niches. If I want structural typing in a general-purpose language, I'm kind of stuck with Clojure or Python. The list of suggested languages that comes a paragraph later fails to disabuse me of that notion. As does this observation: > all mainstream, statically-typed OOP languages are even more nominal than Haskell!
- KurtMueller 7y agoScott Wlaschin, author of F# for Fun and Profit, has an excellent talk on using F# (an ML language) for domain driven design and business development: https://www.youtube.com/watch?v=Up7LcbGZFuo https://www.youtube.com/watch?v=Up7LcbGZFuo