The Rule of Least Power is the notion that a programmer should use the least powerful programming language required to code for a given requirement.
Promoting reusability of code is one of the main ideas behind the Rule of Least Power as the code of less powerful languages is more descriptive and easier analyzed. More powerful languages that are better capable of approaching a range of problems are of a less transparent and more procedural nature. This makes the code easier to comprehend by humans or analyzed by programs and enables greater information sharing on the web. The principle is thought to favor declarative programming languages as they allow for more flexibility and adaptability than their procedural counterparts, imperative programming languages.
Another benefit of the descriptive nature of less powerful languages is that it is easy to understand what the program does and how it operates. This can ease analysis, and thereby security and debugging. It is often the case that with programs developed in more powerful languages, the only way to be sure of what the program will do is to run it. To debug it may require running through its functions manually or using with automation.