
On Sat, Oct 16, 2010 at 3:02 AM, Stephen Tetley
If a "functional language" doesn't mean anything significant then Haskell probably isn't the language you should be choosing.
People who don't know what 'functional language' means can still get all the benefits of functional programming if they choose to learn Haskell (and thereby learn what a functional language is). The blurb on the homepage can not be all things to all men. If the goal of the blurb is to get more people using Haskell then it needs to be targeted towards the largest group of people who have a need which can be fulfilled by Haskell, who are willing and able to use Haskell if it can solve their problem, and who do not already know how Haskell can help them. Now, I am guessing that the group of people who: 1. know what a lazy, statically type, functional program languages is 2. do not already know about Haskell is pretty small. So, targeting them seems rather futile. There is also a large group of people who ought to be able to benefit from Haskell, but for whatever reason, can't or won't use it. Clearly they are not of interest either. So, we are left with the (rather large?) group of people who do not know what Haskell is and probably do not really know what 'statically typed' or 'purely functional' really mean. In fact, I think that most non-haskell/ocaml/etc programmers view 'statically typed' as meaning 'C/C++ / java' style type systems -- and that is often considered a negative thing. You don't really know what it means to use Haskell's static type system unless you have used one of the other languages with a sane type system. And then, you are probably already in the group who knows what Haskell is... How can we present Haskell to these people in a way that they will think it *might* provide a solution worth investigating to a problem that is bothering them. The blurb is not going to completely enlighten people. It just needs to convince them that Haskell is something worth investigating, and get them to click the link that will get them investigating the part that is potentially useful to them. For some people the problem that pains them is the need to learn "cool", "advanced" stuff that will make them feel "smarter" than their peers. For these people, seeing unfamiliar terms like, "monads", "lazy", "purely functional", etc. will be exciting -- because it promises them the opportunity to learn something new, and potentially interesting, that other people do not know. So, for those people, those words are great! (I am one of those people -- perhaps many current Haskeller's are?) Other people may care about specific benefits of using Haskell which can be applied to their particular needs. Someone frustrated with parallel on concurrent programming might be really interested to find out that Haskell provides solutions in those domains that are (hopefully) better than what they have been dealing with. But, the claim that Haskell is better than what they already know needs to be back up with something that will make them want to dig deeper. If we simply say, "We do parallelism and concurrency better", people will respond, "yeah whatever, I've heard that before." If we say, "Haskell offers new and better ways of dealing with parallelism and concurrency that are only possible because Haskell is purely functional and has an advanced type system." -- then people might at least have the question, "What does purely functional mean? How could that result in better ways of writing parallel and concurrent code?" And, from there, they would hopefully be able to click on links which would address those questions in more detail, and convince them to invest the time to learn Haskell. I think value judgments are incredibly valuable. People are not going to be interested in learning more about Haskell unless they believe it is more valuable than what they are already using. I believe that is the #1 question in people's mind when they visit the site is, "Is this language in anyway more valuable to me than what I am already using." And they want to spend as little time as possible making that initial judgment. Once they have decided that it could be more valuable, then they will be willing to invest more time to determine if it really is or not. I think the key is that we need to provide a reason for each value judgment. In the blurb, the 'reason' does not need to be a proof, nor does the reader need to be able to fully comprehend it. They initially just want to see that we have some basis for making the claim. And, having a link that can more fully explain the value judgment will add further trust. - jeremy