Wadler's Law

From HaskellWiki
Revision as of 17:33, 16 April 2012 by DonStewart (talk | contribs)
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