
On 26 Nov 2007, at 15:15, Henning Thielemann wrote:
On Thu, 4 Oct 2007, Don Stewart wrote:
The Haskell website has the rather strange motivational text:
Haskell is a general purpose, purely functional programming language featuring static typing, higher order functions, polymorphism, type classes, and monadic effects. Haskell compilers are freely available for almost any computer.
To continue an old thread: What about turning the strange words like 'monadic effects' into links to glossary articles?
Btw. where is 'lazy' ?
I believe the point of this discussion was that anyone reading the Haskell webpage will currently get about as far as "featuring static typing", and go "this is all very nice, but what exactly does this language do for me? Why should I use it?". Take for example what the python website says: Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code. People can instantly go "great, lots of kinds of development, it may work for me; good integration with other languages, that'll be really good for working with my existing codebase; extensive standard libraries, excellent, I shouldn't have problems with finding the functions I need; can be learned in a few days, excellent, won't need to pay much to train the monkeys; high quality maintainable code, that's really good, that'll save me a bundle later". There's no such check list of "good stuff" with the Haskell slogan, instead, we've got a list of buzzwords, as bad as company webpages preaching that they offer "synergised solutions", but not actually telling anyone what they do. Sorry this has turned into a bit of a rant. I guess I should add something constructive. I think the key points that we should mention about Haskell are: • It's functional • It can be used for a lot of problems, most prominently compiler building and highly mathematical problems • There are freely available compilers that produce well optimised code competative with modern imperative lanugages (debian language shootout backs us up -- we use less memory and less CPU than C# amongst others) • Higher orderness allows for removing large amounts of boiler plate code, significantly simplifying programs • Static type checking gives us stronger guarentees about our program's behavior than most languages, while still providing a lot of flexibility. Perhaps something like this: Haskell is a functional programming language. It can be used for lots of kinds of development, and is particularly strong for writing parsers and mathematical algorithms. Freely available Haskell compilers can produce highly optimised code that is competative with modern imperative languages. Several language features like Higher order functions and static type checking help to encourage and enforce good programming techniques, and weed out common bugs. There's my 2¢ Tom Davie