I feel this way about Haskell, and I understand why someone would feel this way about F#. No matter what language I use, I now constantly think about how to avoid side effects, how to minimize mutability, how to ensure my code flow is readable and not cluttered by irrelevancies (notice how the author keeps bringing up "noise"?). It's similar to the way that learning TDD led me to think about testability in every design regardless of language.
That's not to say that pure functional languages is the only way to these lessons, of course.
>I now constantly think about how to avoid side effects, how to minimize mutability, how to ensure my code flow is readable and not cluttered by irrelevancies (notice how the author keeps bringing up "noise"?)
Sure, but you would get that from pretty much any FP language. This article seems to be making claims for F# in particular.
That's not to say that pure functional languages is the only way to these lessons, of course.