It has a unique combination of purity and practicality that is not found in other programming languages. It has a welcoming community and ever-improving documentation. There are definite drawbacks, but so far, I've seen nothing to compare.
I feel unqualified to make a statement like this, A) because I haven't been programming in Haskell and B) because I feel hard pressed to declare language superiority at all, but having grokked monads and what they do to the design of your program, Haskell is clearly hella awesome.
The claim that functional programming is not practical and is, by implication, not important in software is absolutely preposterous.
Function is the most central and fundamental idea in computing. To say that functions (and therefore functional programming) are not worth taking seriously is to say that it is not worth it to bother with these "computer" contraptions.
Particular implementations may not be practical for common applications, but that is a very different claim from saying that functional programming is not practical.
I disagree that function is the most central and fundamental idea. I think it's very important, but you place it at a pinnacle is doesn't deserve, or at least that it should share.
For example, Turing machines have no functions at all. I think they are more centrally relevant to computing than any construct that's essentially an engineering shorthand (albeit an indispensable one).
Of course, there's lambda calculus, which is an equivalent formulation of the same ideas as the Turing machine. But in lambda calculus the function is the most important entity.
So, at best I think functions share the position of being central and fundamental with turing machines. And the culture of software engineering has generally tended to favor the turing machine formulation over the lambda calculus one, though not overwhelmingly so or we wouldn't have scheme, lisp, Haskell, etc. all.
Discussion (9)
nothing practical about functional
Best for what purpose? Different tools are good for different purposes.
I just wish people (ahem, j3h) wouldn't make broad statements about what's better without backing them up.
I feel unqualified to make a statement like this, A) because I haven't been programming in Haskell and B) because I feel hard pressed to declare language superiority at all, but having grokked monads and what they do to the design of your program, Haskell is clearly hella awesome.
The claim that functional programming is not practical and is, by implication, not important in software is absolutely preposterous.
Function is the most central and fundamental idea in computing. To say that functions (and therefore functional programming) are not worth taking seriously is to say that it is not worth it to bother with these "computer" contraptions.
Particular implementations may not be practical for common applications, but that is a very different claim from saying that functional programming is not practical.
I disagree that function is the most central and fundamental idea. I think it's very important, but you place it at a pinnacle is doesn't deserve, or at least that it should share.
For example, Turing machines have no functions at all. I think they are more centrally relevant to computing than any construct that's essentially an engineering shorthand (albeit an indispensable one).
Of course, there's lambda calculus, which is an equivalent formulation of the same ideas as the Turing machine. But in lambda calculus the function is the most important entity.
So, at best I think functions share the position of being central and fundamental with turing machines. And the culture of software engineering has generally tended to favor the turing machine formulation over the lambda calculus one, though not overwhelmingly so or we wouldn't have scheme, lisp, Haskell, etc. all.
Claims inspired by this comment
Turing machines are easier to understand than lambda calculus, but lambda calculus is more elegant.I love how simple and neat small to medium sized programs are. Anything that makes much use of monads gets pretty scary pretty quickly.
Haskell might have been the best language in a world where befunge had never been invented.
You claim to ♥ λ, but then confuse this with Haskell.
The λ is, and always will, refer to Lisp more than any other programming language.
Claims inspired by this comment
λ is more strongly associated with Lisp than any other programming language