
Donn Cave wrote:
Quoth Ben Franksen
, 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