Wadler's Law

From HaskellWiki
Jump to navigation Jump to search


Wadler's Law states that:

      In any language design, the total time spent discussing
      a feature in this list is proportional to two raised to
      the power of its position.
           0. Semantics
           1. Syntax
           2. Lexical syntax
           3. Lexical syntax of comments

The origins of this law are found in two emails:

Haskell mailing list, 1992

Found here

    Literate comments

    Date: Wed, 5 Feb 1992 09:14:00 +0000
    From: Philip Wadler <wadler@dcs.glasgow.ac.uk>
    Sender: haskell-request@dcs.glasgow.ac.uk
    To: haskell@dcs.glasgow.ac.uk
    Cc: hudak@yale.edu, simonpj@dcs.glasgow.ac.uk, wadler@dcs.glasgow.ac.uk
    Subject: Literate comments

    Despite Paul having ruled on the matter, the debate still rages, with
    about half saying that > is wonderful, and half saying it is awful.

    Under these circumstances, Paul's ruling seems right: it is pointless
    to legislate > as part of the language.

    On the other hand, the current circumstance is that the main
    implementations do all use the > convention.  It seems reasonable to
    say this in the report -- we should at least tell other implementors
    what the current implementors have settled upon.  This would also let
    Joe use the convention in presenting the standard prelude, as he says
    he would like to do.

    To be precise: I propose an additional chapter of the report, labeled
    `Literate comments' and no more than one page long, that states a
    convention for providing literate comments, notes that it is NOT part
    of Haskell but is supported by existing implementations, and mentions
    that the Prelude is presented with this convention in the report.  I
    volunteer to draft the page.

    Paul, as syntax honcho you should rule on this.  Cheers,  -- P

    PS:  Wadler's Law:
        The emotional intensity of debate on a language feature
        increases as one moves down the following scale:
            Semantics,
            Syntax,
            Lexical syntax,
            Comments.

Revised law, Thu, 19 Dec 1996

Found here

    From: Philip Wadler <wadler_at_research.bell-labs.com>
    Date: Thu, 19 Dec 1996 10:52:48 -0500

    > > Good point, and well worth stressing. Nonetheless, it still seems
    > > quite reasonable to say that Curry should contain all Haskell
    > > that eschew type classes and non-uniform pattern matching.
    >
    > I think this is a good remark and I can agree to it.

    I'm delighted to hear this.

    > Concerning uppercase/lowercase: of course, we can or should
    > use Haskell's *convention*, but I do not like to enforce it, ...

    Oh dear. I don't think we've gotten our point across.

    Yes, there are problems with enforcing a capitalisation convention.
    There are also problems with not enforcing one. Nothing unique to
    Curry here. The Haskell committee spent a lot of time hashing
    over this ground. I strongly urge you to leave this can of worms
    shut. Adopt the Haskell solution wherever possible, warts and all!

    You might be interested in the following scientific law, which
    has been verified by extensive emperical observation.

       WADLER'S LAW OF LANGUAGE DESIGN

       In any language design, the total time spent discussing
       a feature in this list is proportional to two raised to
       the power of its position.

            0. Semantics
            1. Syntax
            2. Lexical syntax
            3. Lexical syntax of comments

       (That is, twice as much time is spent discussing syntax
       than semantics, twice as much time is spent discussing
       lexical syntax than syntax, and twice as much time is
       spent discussing syntax of comments than lexical syntax.)

    With the exception of comments, I would say discussion so far
    conforms to this observation. -- P