I'm not experienced enough to know, but it does feel like Haskell prioritizes "clever" code. Very beautiful, but hard to understand at a glance.
I'm not experienced enough to know, but it does feel like Haskell prioritizes "clever" code. Very beautiful, but hard to understand at a glance.
Testability does require some forethought but if your codebase always takes that into account then it's as easy as other languages.
There are ways to write quick n dirty Haskell. Actually a super-power of Haskell is how easy it is to refactor from "quick n dirty" to "reasonable quality" without introducing defects.
I call haskell "the language of maintainable spaghetti" in this spirit. It really is incredible how types can take 99% of the risk out of refactoring.
Indeed while I miss machine refactoring tools from Java, I've seen vanishingly few bugs result from manual refactoring in haskell.
I would argue that "Can people understand a unit of code without experience in that language/domain" is valuable, even if not the _most_ valuable aspect of a language. I also think dismissing this desire is usually an act of gatekeeping. "_I_ understand it so it's fine."