W3C home > Mailing lists > Public > www-tag@w3.org > February 2006

Re: Principle of Least Power

From: Harry Halpin <hhalpin@ibiblio.org>
Date: Wed, 08 Feb 2006 22:05:25 +0000
Message-ID: <43EA6B25.4070907@ibiblio.org>
To: "Bullard, Claude L (Len)" <len.bullard@intergraph.com>
Cc: www-tag@w3.org

   Point was that it seems to me the "power" in this note isn't
Turing-completeness only, but that often less powerful languages give
you *more information* than more powerful ones. So I'm not sure if
ranking a bunch of things according to Turing-completeness is really all
that useful, although it helps!

So an XML Schema gives you more information (i.e. it has more types,
substitution groups, numeric ranges etc.) than a DTD, and you should use
XML Schemas instead of DTDs even if both can be implemented as regular
languages  (Now the RELAX NG question is a whole other post...). Same
with programming in Haskell versus C - although both languages are
Turing complete, Haskell would give you more information via its typing
system and pure functional architecture about itself, and is so more 
amendable to analysis without looking at the code or running the
program. I think this way of thinking about it help connects sections 2
and 3 to each other.

One example of this idea of information is Turing-completeness - if you
know a language  is Turing-complete, then you know whether it halts or
not, while for Turing complete languages "you don't and can't know" -
which translates into *less information* even if the formalism is *more
powerful.*

Ditto for traditional complexity computer science re Henry - if I tell
you a problem is of class L (solvable in logarithmic time), than if I
tell you it's solvable in P (polynomial), and even more than if I told
you if it was solvable in NP (non-deterministic polynomial time) , since
we don't know if P=NP, but we do have a pretty good idea what L is :)

I don't think this requires any major amendments to said document, maybe
a sentence or two about this as suggested earlier might help clarify
Henry's issues, which confused me as well when I first read it, as I
thought it was talking about only Turing-completeness - and so the
Haskell bit  seemed a bit weird, but in retrospect it makes sense.

                -harry

Bullard, Claude L (Len) wrote:

>Umm.. that's not exactly my concern, Harry.  Sorry if it 
>seemed that way from my posts.  It is more 
>along the lines of how to apply the principle given 
>some particular system decision.   This sort of thing 
>becomes a problem for someone procuring a technology and 
>the vendor that sells it to them.  See Sarbanes-Oxley. 
>We have contracts wonks here and in the Beltway and 
>its analog around the world who take the W3C very 
>seriously and cite this stuff without necessarily 
>doing due diligence technically.  Then it becomes my problem.
>
>Power to the user isn't my problem.  Selling water by the river is.
>
>Dan and Henry are doing a good job with this by exploring 
>the metrics.  At some point, it needs to translate to 
>something a proposal writer or consultant will understand, 
>but first, the technogeekery pass is needed.  (Maybe we 
>think programmers select technologies; that 
>is not nearly as common as one might want to believe 
>particularly as the system buys get bigger.)
>
>BTW:  the comparisons of XSD, RELAX, Schematron are alive 
>on the XML-Dev list simultaneously.  It is stated that RELAX 
>is a superset of XSD.  XSD is a superset of DTD. If I applied 
>the principle literally, I'd be writing DTDs as I did in the 
>SGML days.  So in some way, the finding must express 'adequate 
>to the job' and 'here's how you know if your language is 
>adequate but no more than that'.
>
>Wow.  This becomes the Peter Principle of Software.
>
>len
>
>-----Original Message-----
>From: www-tag-request@w3.org [mailto:www-tag-request@w3.org]
>
>And then to address Len's concerns, one could state something along the
>lines of "By power we do not mean the subjective feeling of power
>particular programming languages or data formats give their users, but
>the amount of information a particular language tells us about the
>programs or data expressed in that language. By setting constraints as
>to what can be expressed and making themselves capable of being
>analyzed, certain languages while being less powerful in terms of
>Turing-completeness or other forms of power, actually give the Web more
>information about themselves when they can guarantee certain behavior. "
>
>And everybody wants more information about everybody else :)
>
>  
>
Received on Wednesday, 8 February 2006 22:08:40 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:47:38 GMT