[Haskell-cafe] New slogan for haskell.org

Andrew Coppin andrewcoppin at btinternet.com
Wed Oct 10 17:43:01 EDT 2007


Henning Thielemann wrote:
>
> On Mon, 8 Oct 2007, Alistair Bayley wrote:
>
>> On 08/10/2007, Henning Thielemann <lemming at henning-thielemann.de> wrote:
>>>
>>> You cannot turn any programmer into a disciplined programmer just by
>>> giving him a well designed language. I you try so, they will not 
>>> like to
>>> use that language, will leave that language as soon as possible or they
>>> try to adapt the language to their style of programming.
>>
>> Well, I wasn't suggesting you'll create great programmers overnight,
>> but you might expect that their appreciation of good design might
>> improve after some Haskell exposure. Also, Haskell simply doesn't
>> support some of the things that are common causes of errors in the
>> enterprisey-language world. I recall reading something about one of
>> the most common causes of errors in novice programs being type errors
>> (presumably, once they'd got the program to compile i.e. there were no
>> syntactic errors). And I'm under the (possibly mistaken) impression
>> that some of the common errors non-novice programmers make are
>> aliasing bugs, and/or use of global variables. Does anyone have
>> references to studies confirming (or refuting) this?
>
> Thus, what happens today? People ask Haskell-Cafe how to implement 
> global variables and they are advised to use IORefs and 
> unsafePerformIO, although the better answer is: "Why do you want to do 
> this?" Even "Tackling the awkward squad" considers unsafePerformIO an 
> acceptable tool for handling global configuration files.

I know of lots of people who proclaim that "Linux sux" because it isn't 
Windoze. I can well imagine hords of impatient Java programmers decrying 
Haskell because it isn't Java. ("It's not even OO, man!")

Haskell is many things, but few would seriously claim it to be the 
silver bullet to effortlessly writing bug-free code.

(Indeed, the number of times my Haskell programs have locked up due to 
me accidentally writing let x = foo x...)



More information about the Haskell-Cafe mailing list