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