[Haskell-cafe] Re: A rant against the blurb on the Haskell front page

Ben Franksen ben.franksen at online.de
Sat Oct 16 11:22:05 EDT 2010


Donn Cave wrote:
> Quoth Ben Franksen <ben.franksen at online.de>,
>> Enough. I think I have made my point.
> 
> Yes, though possibly a little overstated it.  While it's easy to share
> your distaste for the blurb, if you take a generous attitude towards it,
> most of it is "true enough."

Sorry. I was not in a generous mood, when I wrote this yesterday night. I am
more so now, and I agree that I have overstated soem points. It was not my
intention to attack the people who wrote the blurb, though it may have
sounded like I did. Again, sorry for that.

I agree with the "most of it is true enough". Certainly, but that is not my
problem with it.

My problem with it is how it is expressed and that it misses out on
important characteristics.

> The implementation specific features are at least widely available to
> anyone who wants to use the language on the most popular computing
> platforms, so it's expedient, if a little cheesy, to say that Haskell
> supports those features.

I hate this sort of expediency. And it doesn't become the front page of a
language that excells in being principled. Haskell did *not* give in to
expedience when it came to IO and side effects. And what would we have now
it it had done so? Something far inferior and less interesting, I am sure.

That said, I have no problem with mentioning the excellent properties of
existing implementations, even in the first (or maybe second) paragraph.
But I want the text to be explicit and honest about this.

> We agree about "strong support for integration with other languages",
> but I wouldn't like to say "strong support for integration with C",
> either.  The FFI is mostly independent of C, per se - outside of the
> hsc macros, it just addresses a sort of platform standard for exposed
> library functionality, which happens to be commonly implemented in C.
> Someone might be able to think of a better way to put that.

Yes, this is difficult to state w/o going into details. Maybe talk
about 'binding to system libraries' or something like that.

> The point I liked best is the one you started with:
> 
>> This blurb should, IMO, give a concise description of what Haskell, the
>> programming language, is, what makes it different from other languages,
>> and why I should be interested in it.
> 
> ... and, we understand, you don't find that in this blurb.  "Lazy" and
> "statically typed" may not be universally understood, but they aren't
> buzz words.  Whether that's the right way to shed some light on what
> Haskell is like, it sure says a lot more on a technical level than
> "advanced purely functional programming language."  And while that
> phrase is linked to a longer exposition of "Functional programming",
> the latter is set in language-independent terms and is at best ambiguous
> about whether it's talking about Haskell or not.

Yes, we have to be careful what we directly link to from the front page, and
especially from the blurb. These documents are almost as important as the
blurb itself.

They should concisely explain the main features for someone unfamiliar with
them, maybe contain some small examples. They definitely should be about
Haskell, not something more general, and also not something more specific,
like ghc, except if explicitly stated.

> I'm trying to picture someone who might find Haskell useful, but would
> be spooked by description of the language in unfamiliar technical
> terms.  Forget Python, this is a little different proposition.  A couple
> days ago I was talking to a friend about Haskell, turned out he hadn't
> heard of it.  I suppose he may have found this blurb.  I hope he
> found the blurb that appears at the top of the Introduction page:
> 
> " Haskell is a computer programming language. In particular, it is a
>   polymorphically statically typed, lazy, purely functional language,
>   quite different from most other programming languages. The language
>   is named for Haskell Brooks Curry, whose work in mathematical logic
>   serves as a foundation for functional languages. Haskell is based
>   on the lambda calculus, hence the lambda we use as a logo."
> 
> This most succinctly expresses the points I tried to convey to him
> about Haskell, and I don't think it would be out of place on the
> main page.

Much better. Though I *do* think mentioning the main implementations and
their qualities is a good thing to o, right after this:

"Haskell can be interpreted or compiled. It has high quality, mature
implementations [link to a list of implementations], including optimizing
compilers, interactive interpreters, profilers and tools for debugging, and
a large and rapidly growing body of libraries [link to hackage]. The most
important Haskell implementation, ghc [like to ghc page], has served as a
test bed for practical application of cutting egde research into the
language as well as its compilation to efficiently executable code."

The text should go on and mention concurrency, parallelism, ffi, and
whatnot.

Cheers
Ben



More information about the Haskell-Cafe mailing list