On Tue, 2007-12-11 at 23:06 -0500, [EMAIL PROTECTED] wrote:
> 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?

(Not directed at gwern in particular)

I have a better idea.  Let's decide to do nothing.  The benefits of this
approach are: 1) it takes zero effort to implement, 2) the number of
people who immediately give up on Haskell from reading that is, I
suspect, neglible (actually I suspect it is zero; I think the number of
people who actually read that at all is probably negligible), and 3) it
accomplishes the same end as debating endlessly while creating much less
list traffic.

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

Reply via email to