Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Message from discussion Haskell bashing (was Re: F# vs OCaml vs Python vs Haskell: hash table performance)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Adrian Hey  
View profile  
 More options Apr 14, 11:24 am
Newsgroups: comp.lang.functional
From: Adrian Hey <a...@NoSpicedHam.iee.org>
Date: Tue, 14 Apr 2009 16:24:04 +0100
Local: Tues, Apr 14 2009 11:24 am
Subject: Haskell bashing (was Re: F# vs OCaml vs Python vs Haskell: hash table performance)
Hello Jon,

Jon Harrop wrote:
> namekuseijin wrote:
>> I thought one of the ideas behind
>> Haskell and GHC was to try to achieve performance comparable to
>> imperative programs while remaining purely functional.

> Another part of the failed experiment that was Haskell.

Haskell is not a failed experiment! Even if all that's been achieved
is a demonstration of how not to design a "purely functional"
programming language, it's still a successful experiment :-)

Whilst I would aggree (after 10 years or so of using the language) that
Haskell has many serious problems, I think you're missing the point
somewhat in your critisism. Sucky hash table libs, or map libs, or even
sucky performance generally are the least of these problems IMO (and
for the most part easily fixable).

I think the hash table implementation is known to suck, but nobody cares
because nobody wants to use it anyway. The purely functional Data.Map is
also known to suck, but the community is stuck with it because it's been
elevated to the status of (quasi-)standard by being bundled with ghc.
For the less conservative users there are better performing alternatives
in Hackage.

Also, I think your statement about hash tables being the *only* way to
get a performant dictionary is wrong. Tries should offer comparable
(often better) performance and have some nice properties that hash
tables don't give you.

IMO by far the biggest problem with Haskell is that, for all it's
sophistication, it's still very difficult to use it to write *robust*
programs (as opposed to programs that are merely "correct" in an
academic sense). But often you can live with this, if all you're
using it for is to knock up quick and dirty "run once" programs
to get whatever answer you're looking for. As long as the program
terminates eventually (as it usually does), who cares about all those
space leaks or the sucky performance?

I suspect that most Haskell users use the language this way (as I kind
of super calculator or for private "in house" stuff). I do anyway. As
you have observed before, what might be regarded as "serious"
publicly available applications written in Haskell seem to be pretty
rare :-( (ghc,pugs,darcs,xmonad are about all I can think of off the top
of my head).

The second biggest problem with Haskell is..something I dare not mention
again (it's tabboo in the Haskell community).

But I think Haskellers can take heart from the knowledge that you can
always be certain you've achieved something significant when people take
the time to bash you. It's better than the fate that awaits most
experimental or DIY language implementors (being completely ignored).

Regards
--
Adrian Hey


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google