F# VS Haskell

F# was built from the most of the mature features of languages like Haskell and provides a huge number of practically-indispensable advantages in comparison:

  • F# runs on .NET which provides a concurrent garbage collector that can be used for GUI programming. Haskell has only non-concurrent GCs that incurs arbitrarily-long stalls, rendering it useless for real-world GUI programming.

  • F# inherits many great libraries from .NET. Haskell has poor libraries even among research languages.

  • F# is predictably performant whereas Haskell's performance and memory consumption is wildly unpredictable. For example, a recent benchmark showed that the humble hash table is 32x faster in F# than Haskell (!).

  • F# books are of much higher quality and are more pragmatic than Haskell books.

  • F# is much easier to get started with and use because it has modern IDE tools. Haskell has only an alpha release IDE with no type throwback, documentation throwback and no integrated REPL.

  • Despite being much newer, F# already has a much longer list of success stories such as Halo 3, AdCenter, F# for Visualization, F# for Numerics, .NET PDF toolkit and so on. Haskell had one success story that was version control software called Darcs but it was plagued with reliability and performance problems and its use is now in decline having only garnered a few thousand (primarily Haskell) users in its prime.

Assuming you are a practically-minded programmer, there is little reason to choose Haskell. If you want a functional language with excellent Linux and OS X support, lots of real-world users, better symbolic performance, lots of libraries and some great language features (like polymorphic variants, functors and structurally-typed OOP) then OCaml is the obvious choice and not Haskell.

你可能感兴趣的:(haskell)