
Jeremy Shaw schrieb:
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...
Before I knew Haskell I was used to Wirthian languages. I knew and appreciated static typing and saw that Haskell is statically typed simply by seeing example code like size :: Int size = 10 and thought that I should have a closer look at Haskell just because it is statically typed. I have also heard of lazy evaluation before, because that's the keyword used to describe C's || and && operators or OR and AND in Modula. I was interested in how this extends to the whole language.
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?)
Me too. Thus I do not think it is necessary to restrict the words in the introduction to the ones, everyone knows, because unknown words can make the reader curious. Unknown words with a link to an explanation are perfect for curious readers. I also think that not only the goals should be mentioned (safety), but also the used techniques (static typing), because every programming language designer has his own idea of how to achieve a goal. E.g. Perl programmers might consider their programming language also as safe, because there are established unit testing frameworks (I assume so). In my opinion there is no need to attract every kind of programmer, but just the ones, who can benefit from the Haskell language.