1 Haskell nowadays
This chapter covers:
- How functional programming with types and support for laziness makes it easier to write programs
- Which tools are available for Haskell development
- Problems Haskell is good for
The history of Haskell started more than 30 years ago, in 1987 (see haskell.cs.yale.edu/wp-content/uploads/2011/02/history.pdf for many exciting details).
Nowadays it is a mature programming language, full of features, with a stable implementation, a helpful and friendly community, and a big enough ecosystem.
Paraphrasing the Haskell 2010 Language Report (www.haskell.org/onlinereport/haskell2010/), which is an effective standard description of the Haskell Language, we can give it the following definition:
Definition
Haskell is a general-purpose, purely functional programming language featuring higher-order functions, non-strict semantics, static polymorphic typing, user-defined algebraic datatypes, pattern matching, a module system, a monadic I/O system, and a rich set of primitive datatypes (including lists, arrays, arbitrary- and fixed-precision integers, and floating-point numbers).
This definition is feature-centric, but gives a little information about how to use all this stuff professionally. Haskell is by far not the most popular programming language in the world, however, and there are two unfortunate myths that contribute to its limited adoption:
- It is hopeless to program in Haskell without PhD in math.
- Haskell is not ready/suitable for production.