Why People Aren't Using Haskell

by Dejan Jelovic

We have witnessed an amazing rise in popularity of scripting languages in the past few years. Perl, Python and Ruby have become immensely popular. This proves that:

  1. People are willing to learn a new programming language if it will help them solve their problems.
  2. People are willing to learn a new programming language with a different, "weird" syntax.
  3. Performance is not a critical factor.

So why aren't all these people using Haskell instead of Perl, Python and Ruby? After all, it is a better language.

Haskell has its theoretical underpinnings in the Lamba calculus, thus it uses the greek symbol Lambda for its logo.The fact that Perl, Python and Ruby have become popular while Haskell has stayed a marginal language is a failure of the Haskell community. The Haskell community has failed to build a useful distribution Haskell, and it has failed to position the language as something that people can use to solve their problems.

People learn a new language when they need to. For example, say you have a file and need to extract lines that contain a string that matches a regular expression. You've heard that you can use one of those scripting languages to do that very easily. So you want to check them out, select one, and solve your initial problem in it and thus get started with that language.

If you go to the Perl, Python or Ruby website, you will immediately learn that these languages are good at text manipulation. You will also learn that there is a wealth of libraries for them, for doing anything from text manipulation to serving web pages. All this is usually available in a single distribution for your platform. Just download it and you are ready to go.

Contrast that to the Haskell site which, in a way, mirrors the approach of the Haskell community. It sells you Haskell as a language instead of Haskell as a solution to your problems. There is no standard distribution containing a wealth of libraries for doing snazzy things. And there is an air of staleness: where new versions of these other languages appear frequently, the Haskell community is offering you Hugs98. 

What can be done about this? First and foremost the Haskell community must make a standard distribution of Haskell that contains enough libraries to be useful. That should include a regular expression library, an Internet protocol library, a library for dealing with standard internet data and encoding, a crypto library, a multimedia library and a GUI library.

Next, the Haskell community must step out of its research circles and start publicizing Haskell to the practicing programmers. Write articles in DDJ and similar publications. Publish real-world programs written in Haskell.

Is this a lot of work? Yes. But Perl, Python and Ruby are doing it. If Haskell doesn't do it will remain an obscure language used by "those research types".




Content of this site is Dejan Jelovic. All rights reserved.