
From: haskell-cafe-bounces@haskell.org [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Don Stewart
It was raised at CUFP today that while Python has: ... Note its all about how it can help you.
The Haskell website has the rather strange motivational text: ...
Can't we embrace the power of 'and'? It's wonderful that Haskell is seeing more practical use, but we shouldn't forget the foundations, either. Maybe we should put your second description first, and *then* have a paragraph saying, "and, for those who know what these are, polymorphism, monadic effects, etc."? Only describing Haskell in terms of software engineeering doesn't seem right to me.
Yes, I think that's the best step. Combine both why you'd use it, with what unique features enable this.
Well, wouldn't it be best to define your audience first? At the risk of alienating Pythonistas... The Python home page is very much snake oil (as Albert points out). But it appears that they're aiming squarely at the average gormless C/C++/VB/Java drone who's heard a bit about some exciting dynamic language called "python". And I think they do a pretty good job at marketing to this segment: the python.org website is certainly sexier than haskell.org, and the promotional text is in prime position, *in bold*. BTW, the Ruby website ( http://www.ruby-lang.org/en/ ) is quite similar in promotional style, and has an even sexier design. They're making the most of the attention ruby-on-rails has generated. So the question becomes: do you want to attract/seduce this kind of programmer? Let's assume the answer is yes :-) ... Then what sort of language should you use in your promotional paragraph? I don't think "polymorphism", "monads/monadic effects", "higher order functions", and even "type classes" should be used. These terms will be universally unfamiliar to the target audience, and will alienate them. I agree with Tim that Haskell's sound foundations are great and should be promoted; but perhaps in woolier language? Something to bear in mind is that if your reader does know what higher-order functions, type classes, and monads are, then it is likely that they already have a good idea of what Haskell is. Preaching to the converted.
Only describing Haskell in terms of software engineeering doesn't seem right to me.
If you assume the same target audience as above, to me it seems right to *only* use software engineeering terms, because they're about the only terms that will be understood. So here are some points I think we could make, in software engineering terms: - more concise, readable code (like other functional languages, such as Erlang, Scheme, Lisp) - sound theoretical foundation (language is well-defined and logical). Code with side-effects is separated from purely functional code. - more reliable (no pointers, static type checking) - static type system superior to Java, C++, and C# - type inference means it doesn't get in your way (I'd like to say something about how the type system can reduce the amount of code you have to write through good design of your data types and classes, but I don't know how...) - excellent integration with existing C code via one of the best FFI's around - excellent support for concurrent and parallel programming (forecasting the impending NDP implementation :-) - compilers generate fast code, in the same ballpark as C/C++ - advanced testing tools like Quickcheck, plus the familiar xUnit clone - general purpose: can be used for servers, web-apps, desktop apps, scripting Alistair ***************************************************************** Confidentiality Note: The information contained in this message, and any attachments, may contain confidential and/or privileged material. It is intended solely for the person(s) or entity to which it is addressed. Any review, retransmission, dissemination, or taking of any action in reliance upon this information by persons or entities other than the intended recipient(s) is prohibited. If you received this in error, please contact the sender and delete the material from any computer. *****************************************************************