On 2007.12.12 03:29:13 +0100, Wolfgang Jeltsch <[EMAIL PROTECTED]> scribbled 
1.6K characters:
> Am Mittwoch, 12. Dezember 2007 03:12 schrieb [EMAIL PROTECTED]:
> > FWIW to the discussion about changing the main page, I was reading the CUFP
> > paper and I saw some germane comments (and the writer is apparently one
> > Noel Welsh, whose name I don't see in the thread); the context is a
> > discussion (pg 17) of various members or potential members of the Haskell
> > community and how supported they are:
> >
> >  "What are the needs of the potential programmer? People program to solve
> > prob- lems; so there had better be a clear statement of what kinds of
> > problem the language is good for. The Python community does a good job of
> > this on python.org: "Python is a dynamic object-oriented programming
> > language that can be used for many kinds of software development. It offers
> > strong support for integration with other languages and tools, comes with
> > extensive standard libraries, and can be learned in a few days."
> >
> >  Compare this with the equivalent from haskell.org: "Haskell is a
> >  general purpose, purely functional programming language featuring static
> >  typing, higher-order functions, polymorphism, type classes, and monadic
> >  effects. Haskell compilers are freely available for almost any computer."
> > If you understand all that, you don't need to be here: you're already a
> > Haskell programmer."
>
> Note however that also the Python slogan isn’t so much about solving problems.
> And it also contains technical terms: “dynamic object-oriented programming
> language” instead of “static typing, higher-order functions, polymorphism,
> type classes, and monadic effects”.
>
> Best wishes,
> Wolfgang

The Haskell one is dominated by the technical terms, while the Python one is by 
more generic features. Let's break them down:

> Python is a dynamic object-oriented programming language
> It can be used for many kinds of software development.
> It offers:
> > strong support for integration with other languages and tools,
> > comes with extensive standard libraries
> > and can be learned in a few days."

It uses two technical terms, one of which is extremely common and understood 
(or at least, they think they understand it) by the vast majority of 
programmers, and another which even if you don't know anything about 
static/dynamic, still sounds neat. Dynamic! Neato! *power* *bop* Leaping 
librarians Batman!

Of the rest of the description, it is all touchy-feely: it reassures you that 
it'll be able to do what you ask it to do; it'll play nice with your stuff; 
it's quick and easy to learn; and you won't have to mess around with installing 
stuff, it's brain-dead simple and 'all there'.

Now let's look at the Haskell one.

> "Haskell is a general purpose,

OK, that's good; it's not as emphatic or clear as "It can be used for many 
kinds of software development", but it does mean more or less the same thing.

> purely functional programming language

Oh dear. It's 'functional', and I've heard that means scary weird mathematical 
stuff (first technical term). But I wanted to learn something new, so let's 
look at something else. But Wait, what's this 'purely' business? If it's purely 
functional, doesn't that mean I won't be able to my usual stuff, which is 
presumably impure? (Technical term the second; parity achieved with Python 
description).

> > featuring:

Equivalent to "It offers"

> > static typing

Technical term the third. Mention of static typing is probably on balance bad: 
If you are the kind of sort of cutting-edge programmer, then you are more 
familiar with dynamic languages like Python and Ruby which liberated you from 
the horrors of languages like Java and C. And these Haskell guys are daring to 
suggest you might want to go *back*? If you aren't familiar, then static just 
sounds bad - inert, unbending, rigid and unpleasant. 'I stopped watching that 
show - its plot was just too static.'

It's probably too late now, but I think a better name would've been 'securely 
typed'. :)


> > higher-order functions,

Term the fourth. Even more obscure. Lispers might appreciate this entry though.

> > polymorphism,

Fifth term. This one is good: polymorphism is used elsewhere, and sounds 
friendly.

> > type classes,

Sixth.

OK, seriously, what group besides those who already understand Haskell would 
actually know what type classes are or care? If they have to be mentioned, 
might as well say something more useful (I dunno what, maybe something such as 
'they are like multiple inheritance or interfaces, but more powerful').

> > and monadic effects.

This actually sounds even more obscure and scary than just monads would be, and 
I've seen it oft remarked that monads should just be called soft fluffy 
things...

Seventh.

> > Haskell compilers are freely available for almost any computer."

If the reader is still interested and still takes Haskell seriously after 
puzzling over the foregoing, this would either be pointless or off-putting. 
Well, *of course* there are compilers for most computers. You aren't a serious 
general-purpose language in this day and age if there aren't compilers free for 
most computers. Such a line either tells the reader what they assume to be 
true, or strikes them as 'the lady doth protest too much, methinks'...

So, the Haskell one uses more than twice as many technical terms, uses more 
off-putting ones, offers less information, does not reassure as Python's does 
that switching costs are not high, and so on.

It needs to change.

Now, the Main Page on haskell.org is not protected, so I could just edit in one 
of the better descriptions proposed, but as in my Wikipedia editing, I like to 
have consensus especially for such visible changes.

How do you think the description could be improved?

--
gwern

Attachment: pgpHzgy1xvbhs.pgp
Description: PGP signature

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

Reply via email to