>  *  Static typing, which increases robustness by allowing the
>     compiler to catch many common errors automatically.
>
>  *  Type inference, which deduces types automatically and frees
>     the programmer from writing superfluous type signatures.
>
>  *  Higher order functions, polymorphism, and lazy evaluation,
>     which enable higher levels of abstraction and more
>     compositional, thus more reusable code.

"frees the programmer from writing superfluous type signatures" is a weak (and dubious) advantage. I very often write "superfluous" type signatures first (to be sure I know what I'm asking my program to do) and only then let Haskell check it. Then I leave it in as good documentation.

Also, if you're going to stress the benefits for the casual or new reader, maybe you should spell them out explicitly:

 * Static typing

- Compiler automatically infers a static type for every expression, completely eliminating any potential for runtime type mismatch errors, and checks any programmer-supplied type annotation for correctness. The absence of silent typecasting also eliminates a whole class of hard-to-find program logic errors.

 * Higher-order functions and polymorphism

- Encourages higher-level abstraction and unshackles algorithm design from implementation details.

 * Lazy evaluation

- Separates the concerns of the called function ("what can I provide?") and the calling function ("how much do I need to know?") and facilitates "borrow-from-the-future" techniques where useful with infinite data structures or recursive algorithms.


Thomas Schilling wrote:
On Mon, 2007-11-26 at 20:31 -0800, David Fox wrote:

On Nov 26, 2007 11:38 AM, Thomas Schilling <[EMAIL PROTECTED]>
wrote:
Haskell is a general-purpose, pure functional programming
        languages
        that puts many interesting results from research into a
        practical
        programming language.  It's features include:
I think it is stronger to say "many powerful results" rather than
"many interesting results".

Yes, good!
Also it should be "its" rather than "it's", but I didn't want to reply
to my own message since it was meant as a draft to work with.

I'd like to turn this into a refinement of a concrete proposal.  I
skimmed the original thread and it pretty much diverged into experience
reports or meta-level discussions on what or how to advertise Haskell.
This has its place, but I think we can get to a description that is good
enough for now and addresses Don's issues mentioned in the
thread-starting message.

So, I would welcome more concrete adjustments to my proposal.

/ Thomas

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to