W3C home > Mailing lists > Public > www-tag@w3.org > August 2005

RE: Principle of Least Power, "Motherhood and Apple Pie"

From: <noah_mendelsohn@us.ibm.com>
Date: Tue, 2 Aug 2005 17:28:23 -0400
To: "Bullard, Claude L (Len)" <len.bullard@intergraph.com>
Cc: "'Dan Connolly'" <connolly@w3.org>, "Roy T. Fielding" <fielding@gbiv.com>, Norman Walsh <ndw@nwalsh.com>, www-tag@w3.org
Message-ID: <OFC58BF215.94B9298F-ON85257051.0074703E-85257051.0075F4D5@lotus.com>

Len Bullard writes:

> we know it was all for the sake of simplicity so
> the codeheads whose brave, valiant fearless
> efforts to make the world safer for stealing
> (ooops... sharing) photos, songs, code, and cold
> pizza could maybe get just a little more egoboo.

> I can stand the design lectures, but Dan, take the
> credit and accept the blame.

I think that tying these concerns to the Principle of Least Power (PLP) is 
really unfair.  If some of the design points of the Web or the Internet 
prove to be overly simplistic to serve their appopriate role in society, 
that is or would be a very serious concern.  It's a reasonable one to 
raise, given the tremendous importance of the Web in our lives.   I don't 
think it undercuts PLP at all.

In [1] Tim explains the PLP:

        "Computer Science in the 1960s to 80s spent 
         a lot of effort making languages which were 
         as powerful as possible. Nowadays we have 
         to appreciate the reasons for picking not the 
         most powerful solution but the least powerful. 
         The reason for this is that the less powerful the 
         language, the more you can do with the data stored 
         in that language."

First of all, I read this as talking directly about languages, and only 
indirectly about whole systems,  though I'd argue that the good advice 
applies somewhat to both. 

More importantly, it talks about designing "solutions" which means, 
somethat that really does meet your needs, security and all.   I don't see 
anything here that says:  design for simplicity even if the result doesn't 
have the characteristics you need.   It says, when two languages both 
provide "solutions" to your problem, choose the less powerful of the two. 
Declarative languages are preferred to imperative, and so on.  Years of 
experience suggests that this is excellent advice.

Even with respect to the concerns you raise, I think the principle offers 
useful advice.  If the architecture of the web were 100x more complex and 
powerful, then there's every chance that we'd have ever so much more 
trouble reasoning about what its security characteristics are.  You might 
not be able to tell whether your pizza was vulnerable to theft, because 
the whole thing would be too complex to grok.  Again: I don't think 
anyone's arguing for building naively simple systems. 

I suppose it's true that those who value simplicity maybe more at risk of 
designing inappropriately simple systems, and maybe that's the underlying 
point of your concern.  That's at best a more subtle issue, and I don't 
think it merits the sort of ascerbic attack that you sent to Dan.  I think 
we're all on the same side here, trying to do the right thing.


[1] http://www.w3.org/DesignIssues/Principles.html#PLP

Noah Mendelsohn 
IBM Corporation
One Rogers Street
Cambridge, MA 02142
Received on Tuesday, 2 August 2005 21:50:32 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:32:46 UTC