[Haskell-cafe] Re: Library survey results

John Hughes rjmh at cs.chalmers.se
Wed Mar 8 18:02:45 EST 2006

 >> 29% Parsec
 >> 19% wxHaskell
 >> 16% QuickCheck
 >> 16% haddock
 >> 12% Monadic Parser Combinators
 >> 11% Gtk2Hs
 >> 9% hs-plugins
 >> 8% HaXml
 >> 7% Data.*
 >> 7% Monad foundation classes
 >> 6% Arrows
 >> 6% HOpenGL
 >> The list includes all libraries named by more than 5% of respondents.
 >> Sure enough, wxHaskell and Gtk2Hs are more popular, but 6% naming
 >> HOpenGL as among the "most important" libraries is quite respectable.
 > Well, I've never said that it is among the "most important" 
libraries, but
 > OTOH I really much doubt that the way the survey was done delivers
 > anything
 > near reliable results. It heavily biases early entries, and I dare to
 > speculate that the people taking part in the survey were probably not 
 > near to a representative group, but a bunch of highly motivated,
 > experienced
 > non-Joe-Programmer kind of people who are actively participating on the
 > mailing lists etc.

It wasn't as bad as you think--over 580 replies, with less than a 
quarter of
those from academics (there were actually more replies from people working
in industry than from academics!). So I'd dispute that the survey tells us
mostly about what the research community in particular wants. I'd guess the
survey was pretty representative of KEEN Haskell users. It's a bit unclear
who we mean by "Joe Haskell-programmer" anyway--I bet that, apart from
students of course, the number of Haskell programmers who are using the
language "just because their boss tells them to" can be counted on the
fingers of one hand! I'd claim Joe Haskell programmer probably IS keen,
highly motivated, experienced and active. In fact, the one group that is
obviously underrepresented badly in my survey is just students--I got
replies from just under 300, while another survey of teachers shows that at
least 5-10,000 were taught Haskell last year. But maybe tools like hoogle
SHOULD be aimed at the most active users?

You're right that libraries mentioned earlier in the survey received more
"votes" as a result, but since I have a record of all responses *in time
order* I can see the difference, for each library, between pre- and post-
"first mention" behaviour. HOpenGL was mentioned in the 7th response,
wxHaskell in the first, and Gtk2Hs in the 17th, so they were in the
"previously mentioned" category for almost the entire survey, and the 
you're talking about was not significant for a comparison between those
three. Data.*, on the other hand, was first mentioned about half way 
the survey, which indicates that around 12% of respondents selected it as
among the "most important" libraries, when prompted to do so by seeing its
name. However, the proportion who name Data.* spontaneously is below 
that conclusion is statistically significant at the 99% level. 580 replies
is enough to say statistically significant things (about the population the
survey sampled, anyway). I feel quite inspired--when I have a spare moment,
I'll analyse the results more carefully and see what one actually CAN say
with a degree of certainty, taking into account when each library was first

 > Furthermore, some of the percentages above are extremely
 > strange, e.g. how can people use huge GUI toolkits with 30% while staying
 > largely away from something as fundamental as Data.*?

I don't find it so strange, really. Data.* implements lots of useful
standard datatypes, but you can import some of them in other ways (import
Maybe for example), and in many cases it's not too hard to roll your own.
OK, maybe with a worse result, but you're not *forced* to use Data.* -- so
if you're used to using something else, there's no 100% compelling 
reason to
change. Rolling your own wxHaskell or Gtk2Hs is prohibitively hard. So I'm
not at all surprised that GUI toolkits rated much higher--people's natural
conservatism gives them a big advantage, and even Haskell users can be
conservative sometimes!

Perhaps the most surprising thing here is that only 30% of keen Haskellers
think a GUI is important!


More information about the Haskell-Cafe mailing list