I think you have it backward (it being “Functional programming’s smug cloud”). Every example of “smugness” you give is an example where you’re using concepts heavily embedded in the procedural paradigm and asking how they apply in the functional world. You’re not even speaking the same language.
But, what you forget is that these “smug” functional folks aren’t knocking on your door trying to sell you something; if they were, they’d have to speak your language. Instead, you’re knocking on their door, pleading with them to help you solve problems that your procedural paradigm has failed to solve. You know they have the answers, but now you’re whining because they expect you to learn their way of thinking rather than having their successful model broken by conforming to yours.
So, watch it with the “smug.” The Haskell community is one of the friendliest out there. Yes, figuring out monads is difficult; you’re going to have to learn a whole new approach. That’s the nature of the problem, not “smugness” on the part of the people who’ve solved it.
The Obi-Wan defense for Haskell
I understand that there can be some very vocal advocates who can come off as smug, (re: “Functional programming’s smug cloud”). but that is something you can find in any area of the software industry (especially when people want a panacea). In fact it is a matter of life that you will always find people like that.
I’m pretty new to the Haskell community, but the interactions I have had with them so far have been very warm. “This is my message to today’s functional programmers: You can either change the industry or you can be smugly elite. Choose one.”
“Only a Sith deals in absolutes.”