[Haskell-cafe] New slogan for haskell.org
derek.a.elkins at gmail.com
Tue Dec 11 23:36:55 EST 2007
On Tue, 2007-12-11 at 23:06 -0500, gwern0 at gmail.com wrote:
> On 2007.12.12 03:29:13 +0100, Wolfgang Jeltsch <g9ks157k at acme.softbase.org> scribbled 1.6K characters:
> > Am Mittwoch, 12. Dezember 2007 03:12 schrieb gwern0 at gmail.com:
> > > 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,
> 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...
> > > 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
More information about the Haskell-Cafe