[Haskell-cafe] Why Not Haskell?

Albert Lai trebla at vex.net
Tue Aug 8 17:36:17 EDT 2006

"Brian Hulley" <brianh at metamilk.com> writes:

> Also, the bottom line imho is that Haskell is a difficult language to
> understand, and this is compounded by the apparent cleverness of
> unreadable code like:
>      c = (.) . (.)
> when a normal person would just write:
>      c f g a b = f (g a b)

All mainstream languages are also difficult to understand, with
similarly clever, unreadable code.  Let's have a fun quiz!  Guess the
mainstream languages in question:

0. What language would allow

      4["hello world"]

   when a normal person would just write

      "hello world"[4]

   I first saw this in Dr. Dobb's Journal a decade ago; the author
   said that someone actually used it in interviews!

1. What language, supporting a kind of both parametric polymorphism
   and subclass polymorphism, allows and actually features such a class
   declaration as

     class Enum<T extends Enum<T>> { ... }

2. What language allows you to test primality in constant runtime?
   That is, move all the work to compile time, using its polymorphism.

*   *   *

I have programmed and watched programming for more than two decades.
I have observed that the rise and fall of popularity is, of course,
driven by many factors: cultural, social, economical, religious,
political, propagandic, ... but superiority is never one of them.
(Library abundance is, I say, less of a cause and more of an effect.
You have some popularity and then you have more contributors;
conversely you lose popularity and then you lose authors.  Yes there
is some feeding back, but the bootstrapping is more significant.  Perl
has a large library, but that's because it has got an impressive
following.  And where did that following come from?  Mostly economic
(there was a demand, a niche) and religious ("it's like natural

Recall that some decent technology that once attained as much as 49%
market share could still decline and vanish in less than a decade.  I
am referring to Betamax video tapes.  It lost to VHS video tapes, of
lesser picture quality and 51% market share.  What did Betamax miss?
Apparently, nothing.  It seems that the only difference you can put
your finger at - and even this is elusive - is price.  VHS was
slightly cheaper, and apparently that did it.

If you were born after Betamax had vanished, I congratulate you, on
two counts.  First, you skipped the dark age during which there was no
Haskell, no Gofer, not even Scheme; there was Lisp but even then not
all functions were first-class.  Second, don't feel bad about missing
the video war, as you will soon see an even better one, this time
between Blu-Ray and HD-DVD.  Any bet?

I am trying to say this, with much foregoing digression: we could
equip Haskell with the perfect library, the perfect IDEs and tools,
the perfect tutorials and examples, the license that pleases
everyone... every nice thing mentioned in this thread, and it may
still not become popular.  Betamax had everything and 49% market share
(if Haskell had 49% mind share, we would be really thrilled, right?),
and it could still vanish.

How to make Haskell more popular?  How to make anything at all more
popular?  I am inclined to think it's a purely social question.
Nothing short of a rigorous social science can answer it.  All the nice
things mentioned in this thread, we should strive to build for our own
sake of course, but they don't answer the question.

I have long stopped asking that question.  Once again, I say we should
strive to build all the missing things mentioned.  What impact will
they make to the grand scheme of things, we don't know.  If there will
be none, don't be surprised; it's life.  One day we may have a
rigorous social science that can explain it.  Until then, I share with
you a line a Greek friend puts in his .plan file:

  Man plans and God laughs.

*   *   *

Answers to quiz:
0. http://c-faq.com/aryptr/joke.html
1. http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid_1.html
2. http://homepage.mac.com/sigfpe/Computing/peano.html

More information about the Haskell-Cafe mailing list