Why People Aren't Using Haskell

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:

People are willing to learn a new programming language if it will help
them solve their problems.

People are willing to learn a new programming language with a different,
"weird" syntax.

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.

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".