[Haskell] Re: Newbie: what are the advantages of Haskell?
Derek Elkins
derek.a.elkins at gmail.com
Fri Apr 27 17:07:28 EDT 2007
Tony Morris wrote:
> mike clemow wrote:
>> Troy,
>>
>> As a Java chimp embarking on the Haskell journey myself, I'd be
>> interested in hearing about specific ways that learning Haskell has
>> changed the way you program Java. How do you employ the "very
>> interesting concepts" that you have learned through your study of
>> Haskell in your Java programming? Do you employ them at all? _Can_
>> they be employed in Java? Has it made you a better Java programmer?
>>
>> Cheers,
>> Mike
>
> I reinvented functional programming when I was using Java rather than
> Haskell making me use Java more succintly. I knew something was
> seriously wrong with imperative programming and Java's type system all
> those years I spent working on the implementation for IBM. I was pleased
> to learn that Haskell incorporated many of my ideas (and more) -
> validating my original suspicions. The fact that many of the concepts in
> Haskell I had already "invented" made the language easy for me to learn
> (as in, "oh yeah of course that makes perfect sense" in response to
> discover monads).
>
> I produced many Java projects in an attempt to demonstrate what I
> thought was wrong, but few of them remain due to loss of interest.
>
> http://jtiger.org/
> http://code.google.com/p/pure-functional-java/
>
> In regard to the original question, 'What are the mysterious "side
> effects" which are avoided by using Haskell, which everyone talks about?
> Null pointers?', my response is "yes".
>
> Looking at a NullPointerException (NPE), these exist because of the
> imperative nature of the code; with explicit order of evaluation and
> potential side-effects. In an attempt to highlight the absurdity of the
> fact that a NPE even exists, I like to tell people that "NPEs occur when
> you write a program that says, 'give me the something that is not there
> yet'".
[cut]
And then you come to Haskell and you -can- say, "Give me the something that is
not there yet."
More information about the Haskell
mailing list