[Haskell-cafe] Re: O LANGUAGE DESIGNER, REMEMBER THE POOR USER

2009-04-17 Thread Benjamin L . Russell
On Thu, 16 Apr 2009 19:04:43 -0500, Matt Morrow moonpa...@gmail.com
wrote:

This is interesting (and from 1990):

http://groups.google.co.uk/group/comp.lang.functional/msg/655bb7bbd0fd8586

(Not sure if this is well-known. It seems like it either is, or it should
be. Either way, I just stumbled across it.)

Regarding the following quoted portion:

USERS OF FUNCTIONAL LANGUAGES WILL HAVE SOME STRONG PRECONCEPTIONS ABOUT HOW
COMPUTATIONS ARE EXPRESSED.

... Since, if a functional language is to be successful, the great
body of its users can be expected to be drawn from the millions who have some
expierience of Ada, C or Pascal, the conventions pertaining in those languages
should have weight in the forms chosen for any functional language where they
do not conflict with the essential attributes of the functional language.

Sorry, but I do not agree with this view.

Essentially, this means that new functional languages should in some
way syntactically resemble Ada, C or Pascal.  However, many newcomers
to such functional languages as Haskell come from other languages (I
myself come from Scheme and T), and requiring Haskell to resemble Ada,
C or Pascal would risk alienating such other users.

Besides, regarding the premise of if a functional language is to be
succesful, why is it so important that a functional language ... be
successful in the first place?  Both Simon Peyton Jones and Alan
Perlis have disagreed on this issue.

According to [2] (see
http://research.microsoft.com/en-us/um/people/simonpj/papers/history-of-haskell/history.pdf)
(see page 10), there are definite reasons for striving to avoid
success at all costs, as follows:

The fact that Haskell has, thus far, managed the tension between
these two strands of development [as a mature language, and as a 
laboratory in which to explore advanced language design ideas] is 
perhaps due to an accidental virtue: Haskell has not become too 
successful. The trouble with runaway success, such as that of Java, 
is that you get too many users, and the language becomes bogged 
down in standards, user groups, and legacy issues. In contrast, the 
Haskell community is small enough, and agile enough, that it usually 
not only absorbs language changes but positively welcomes them: 
it’s like throwing red meat to hyenas.

Furthermore, to quote [1] below (see the dedication of SICP at
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-3.html), isn't
our role supposed to be to keep fun in computing?

``I think that it's extraordinarily important that we in computer science 
keep fun in computing. When it started out, it was an awful lot of fun. Of 
course, the paying customers got shafted every now and then, and after 
a while we began to take their complaints seriously. We began to feel as if 
we really were responsible for the successful, error-free perfect use of 
these machines. I don't think we are. I think we're responsible for stretching 
them, setting them off in new directions, and keeping fun in the house. I 
hope the field of computer science never loses its sense of fun. Above all, I 
hope we don't become missionaries. Don't feel as if you're Bible salesmen. 
The world has too many of those already. What you know about computing 
other people will learn. Don't feel as if the key to successful computing is 
only 
in your hands. What's in your hands, I think and hope, is intelligence: the 
ability to see the machine as more than when you were first led up to it, that 
you can make it more.''

Alan J. Perlis (April 1, 1922-February 7, 1990)

I had always thought that part of the advantage of Haskell was the
ability of being agile enough to experiment.  Robbing Haskell of that
advantage would seem to kick the fun out of the house.

-- Benjamin L. Russell

References

[1] Abelson, Harold and Sussman, Gerald Jay with Sussman, Julie.
_Structure and Interpretation of Computer Programs, Second Edition._
Cambridge, MA: The MIT Press and New York: McGraw-Hill, 1996.
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-3.html

[2] Hudak, Paul, Hughes, John, Peyton Jones, Simon, and Wadler,
Philip. A History of Haskell: Being Lazy With Class. San Diego,
California: _The Third ACM SIGPLAN History of Programming Languages
Conference (HOPL-III)_ (2007): 12-1 - 12-55, 2007.
http://research.microsoft.com/en-us/um/people/simonpj/papers/history-of-haskell/history.pdf
-- 
Benjamin L. Russell  /   DekuDekuplex at Yahoo dot com
http://dekudekuplex.wordpress.com/
Translator/Interpreter / Mobile:  +011 81 80-3603-6725
Furuike ya, kawazu tobikomu mizu no oto. 
-- Matsuo Basho^ 

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Re: O LANGUAGE DESIGNER, REMEMBER THE POOR USER

2009-04-16 Thread Matt Morrow
Here are some choice-quotes that are one of {insightful, controversial,
arguable}:

Starting with my favorite quote ;):

The ability to operate on the program as data is basic to the provision of
many desirable utilities, e.g. the Boyer-Moore theorem prover, and the
program
transformation work that was based on Hope, not to mention a compiler.
It seems unfortunate that recent functional languages are heteroousian in
the
sense that they are defined in the usual computer scientist's way of
specifying
a syntax, and not specifying a representation of a program as a
data-structure. This is a manifestation of the besetting vice of computer
scientists - they will insist in locking up goodies in a black box...

On Lisp:

There is a danger that this perspective will adversely affect the design of
a
language from the user's point of view. The most extreme case is that of
LISP,
which may be seen as a very flawed implementation of the Lambda Calculus,
which preserves the notation rather closely.

On Haskell syntax:

However, if the use of upper case is not permitted for
ordinary variables a conflict arises between the language conventions and
the
conventions of mathematics,
Haskell is also in conflict with established programming conventions in
that
it it uses double colon to denote membership of a type (e.g. x::Int) rather
than the single colon that those millions of existing programmers will be
familiar with,..

On Haskell arrays:

The Haskell array operation is a related construct, from which a instances
of
the application of the POP-11 newarray could be implemented - it does
however
suffer from one practical draw-back, namely it takes an association list as
argument, which makes it inefficient as a means of memoising a function,
unless a very smart compiler is used.

On purity:

I want a language that is not purely functional because functional
languages do not reflect the basic structure of computers. If you want to
write a matrix inversion algorithm it will be hard to do it efficiently
without assignment.

Matt


On Thu, Apr 16, 2009 at 7:04 PM, Matt Morrow moonpa...@gmail.com wrote:

 This is interesting (and from 1990):

 http://groups.google.co.uk/group/comp.lang.functional/msg/655bb7bbd0fd8586

 (Not sure if this is well-known. It seems like it either is, or it should
 be. Either way, I just stumbled across it.)


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe