En programación , la regla de menor poder es un principio de diseño que "sugiere elegir el lenguaje [de computadora] menos poderoso adecuado para un propósito dado". [1] Dicho alternativamente, dada la posibilidad de elegir entre lenguajes informáticos , cuyas clases van desde descriptivo (o declarativo ) hasta procedimental , cuanto menos procedimental, más descriptivo es el lenguaje que se elige, más se puede hacer con los datos almacenados en ese lenguaje.
Esta regla es una aplicación del principio de privilegio mínimo al diseño de protocolos. [2]
Razón fundamental
Originalmente propuesto como un axioma de buen diseño, el término es una extensión del principio KISS aplicado a la elección entre una variedad de idiomas que van desde
- los claramente descriptivos (como el contenido de la mayoría de las bases de datos o HTML ),
- lenguajes lógicos de lógica proposicional limitada (como listas de control de acceso ),
- lenguajes declarativos a punto de ser Turing-completos ,
- aquellos que son de hecho Turing-completos aunque uno no los usa de esa manera ( XSLT , SQL ),
- aquellos que son lenguajes de programación de propósito general funcionales y completos de Turing , para
- los que son "sin vergüenza imperativos ". [1]
Como lo explicó Tim Berners-Lee : [3]
La informática en las décadas de 1960 y 1980 dedicó un gran esfuerzo a crear lenguajes que fueran lo más potentes posible. Hoy en día tenemos que apreciar las razones para elegir no la solución más poderosa, sino la menos poderosa. La razón de esto es que cuanto menos poderoso sea el idioma, más podrá hacer con los datos almacenados en ese idioma. Si lo escribe en una forma declarativa simple, cualquiera puede escribir un programa para analizarlo de muchas maneras. La Web Semántica es un intento, en gran medida, de mapear grandes cantidades de datos existentes en un lenguaje común para que los datos puedan ser analizados de formas nunca soñadas por sus creadores. Si, por ejemplo, una página web con datos meteorológicos tiene RDF que describe esos datos, un usuario puede recuperarlos como una tabla, tal vez promediarlos, trazarlos, deducir cosas de ellos en combinación con otra información. En el otro extremo de la escala está la información meteorológica representada por el astuto subprograma de Java. Si bien esto podría permitir una interfaz de usuario muy interesante, no se puede analizar en absoluto. El motor de búsqueda que encuentre la página no tendrá idea de qué son los datos o de qué se tratan. La única forma de averiguar qué significa un subprograma de Java es hacer que se ejecute frente a una persona.
Referencias
- ^ a b W3C. "La regla del menor poder" . Consultado el 24 de febrero de 2016 .
- ^ Meredith L. Patterson (28 de diciembre de 2011). La ciencia de la inseguridad . 28º Congreso de Comunicación del Caos.
- ^ Berners-Lee, Tim . "Axiomas de la arquitectura web" . Consultado el 14 de enero de 2002 .
- The Rule of Least Power , W3C , TAG Finding 23 de febrero de 2006
- B. Carpenter, Editor: "Architectural Principles of the Internet", Internet Architecture Board, junio de 1996, RFC 1958