Isn't this article just stating the obvious fact that programs at some point do I/O, so no program can be purely functional?<p>Every Haskell tutorial seems to introduce the IO Monad to illustrate this distinction.
This isn't directly related, but if this person wants FP + Java ecosystem, why not use Clojure or Scala?<p>There are functional options for almost all of the big ecosystems now.
I think the essence of the point was made for me by reading "C is Purely Functional" <a href="http://conal.net/blog/posts/the-c-language-is-purely-functional" rel="nofollow">http://conal.net/blog/posts/the-c-language-is-purely-functio...</a><p>Functional and imperative are paradigms that can "encode" the other, so to speak.
I don't get this. Any program that interacts with the outside world isn't "pure", by this definition. What's wrong with using monads? With monads, you can still do all those side-effecting operations, but be encouraged to separate out the pure bits.
From the article:
The "Land of purity" lies above the "Dirty sea of data" .<p>Wouldn't "Dirty sea of state" be more appropriate?
Why do people, even obviously skilled and well-read people, conflate functional programming with pure programming?<p>You so not need to have pure code to have functional code. You don't even need to have pure code to use a monadic approach.
Why has this been upvoted? The author is a novice and provides no insight. This just reads like he finally got to the second page of your standard book on functional programming and somehow came to believe that everyone else is still on page one. What village is this guy from?