According to the TIOBE Index, approximately 0.298% of the world’s programmers are using Haskell (we think that this estimate may actually be high). Why do we advocate the use of such an unpopular language? We could simply quote the hockey great Wayne Gretzky: “I skate to where the puck is going to be, not where it has been.” Our actual position expands on this sentiment.
While Haskell is certainly different from many mainstream programming languages, a careful observer will note that the differences are primarily in areas that have been long-studied in Computer Science. Specifically, it contains a pragmatic type system which reduces errors and facilitates time-consuming and error-prone activities such as refactoring. It contains a core that is inspired by strong mathematical principles, and balanced by pragmatic experience.
While Haskell is undeniably different from languages such as Java and Ruby, we feel like the differences are ones that are important, and the characteristics of Haskell will increasingly form a foundation for the important programming languages of the future.
Many decisions about which programming language to use for a project are based on flawed reasoning - we choose the languages that are the most stable, and most popular. Instead, we want to choose the languages that are most likely to change in well-considered ways, backed by strong theoretical foundations. In that sense, Haskell is a better choice than many languages that we consider to be safe today.